@CTAware @ProviderType @Transactional(isolation=PORTAL, rollbackFor={com.liferay.portal.kernel.exception.PortalException.class,com.liferay.portal.kernel.exception.SystemException.class}) public interface DDMStructureLayoutLocalService extends com.liferay.portal.kernel.service.BaseLocalService, com.liferay.portal.kernel.service.change.tracking.CTService<DDMStructureLayout>, com.liferay.portal.kernel.service.PersistedModelLocalService
DDMStructureLayoutLocalServiceUtil
Modifier and Type | Method and Description |
---|---|
DDMStructureLayout |
addDDMStructureLayout(DDMStructureLayout ddmStructureLayout)
Adds the ddm structure layout to the database.
|
DDMStructureLayout |
addStructureLayout(long userId,
long groupId,
long structureVersionId,
DDMFormLayout ddmFormLayout,
com.liferay.portal.kernel.service.ServiceContext serviceContext)
Deprecated.
As of Athanasius (7.3.x), replaced by
addStructureLayout(long, long, long, String, long,
DDMFormLayout, ServiceContext) |
DDMStructureLayout |
addStructureLayout(long userId,
long groupId,
long classNameId,
java.lang.String structureLayoutKey,
long structureVersionId,
DDMFormLayout ddmFormLayout,
com.liferay.portal.kernel.service.ServiceContext serviceContext) |
DDMStructureLayout |
addStructureLayout(long userId,
long groupId,
long classNameId,
java.lang.String structureLayoutKey,
long structureVersionId,
java.util.Map<java.util.Locale,java.lang.String> name,
java.util.Map<java.util.Locale,java.lang.String> description,
java.lang.String definition,
com.liferay.portal.kernel.service.ServiceContext serviceContext) |
DDMStructureLayout |
createDDMStructureLayout(long structureLayoutId)
Creates a new ddm structure layout with the primary key.
|
com.liferay.portal.kernel.model.PersistedModel |
createPersistedModel(java.io.Serializable primaryKeyObj) |
DDMStructureLayout |
deleteDDMStructureLayout(DDMStructureLayout ddmStructureLayout)
Deletes the ddm structure layout from the database.
|
DDMStructureLayout |
deleteDDMStructureLayout(long structureLayoutId)
Deletes the ddm structure layout with the primary key from the database.
|
void |
deleteDDMStructureLayouts(long classNameId,
DDMStructureVersion ddmStructureVersion) |
com.liferay.portal.kernel.model.PersistedModel |
deletePersistedModel(com.liferay.portal.kernel.model.PersistedModel persistedModel) |
void |
deleteStructureLayout(DDMStructureLayout structureLayout) |
void |
deleteStructureLayout(long structureLayoutId) |
<T> T |
dslQuery(com.liferay.petra.sql.dsl.query.DSLQuery dslQuery) |
int |
dslQueryCount(com.liferay.petra.sql.dsl.query.DSLQuery dslQuery) |
com.liferay.portal.kernel.dao.orm.DynamicQuery |
dynamicQuery() |
<T> java.util.List<T> |
dynamicQuery(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
Performs a dynamic query on the database and returns the matching rows.
|
<T> java.util.List<T> |
dynamicQuery(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery,
int start,
int end)
Performs a dynamic query on the database and returns a range of the matching rows.
|
<T> java.util.List<T> |
dynamicQuery(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery,
int start,
int end,
com.liferay.portal.kernel.util.OrderByComparator<T> orderByComparator)
Performs a dynamic query on the database and returns an ordered range of the matching rows.
|
long |
dynamicQueryCount(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
Returns the number of rows matching the dynamic query.
|
long |
dynamicQueryCount(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery,
com.liferay.portal.kernel.dao.orm.Projection projection)
Returns the number of rows matching the dynamic query.
|
DDMStructureLayout |
fetchDDMStructureLayout(long structureLayoutId) |
DDMStructureLayout |
fetchDDMStructureLayoutByUuidAndGroupId(java.lang.String uuid,
long groupId)
Returns the ddm structure layout matching the UUID and group.
|
DDMStructureLayout |
fetchStructureLayout(long structureLayoutId) |
DDMStructureLayout |
fetchStructureLayout(long groupId,
long classNameId,
java.lang.String structureLayoutKey) |
com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery |
getActionableDynamicQuery() |
com.liferay.portal.kernel.service.persistence.change.tracking.CTPersistence<DDMStructureLayout> |
getCTPersistence() |
DDMStructureLayout |
getDDMStructureLayout(long structureLayoutId)
Returns the ddm structure layout with the primary key.
|
DDMStructureLayout |
getDDMStructureLayoutByUuidAndGroupId(java.lang.String uuid,
long groupId)
Returns the ddm structure layout matching the UUID and group.
|
java.util.List<DDMStructureLayout> |
getDDMStructureLayouts(int start,
int end)
Returns a range of all the ddm structure layouts.
|
java.util.List<DDMStructureLayout> |
getDDMStructureLayoutsByUuidAndCompanyId(java.lang.String uuid,
long companyId)
Returns all the ddm structure layouts matching the UUID and company.
|
java.util.List<DDMStructureLayout> |
getDDMStructureLayoutsByUuidAndCompanyId(java.lang.String uuid,
long companyId,
int start,
int end,
com.liferay.portal.kernel.util.OrderByComparator<DDMStructureLayout> orderByComparator)
Returns a range of ddm structure layouts matching the UUID and company.
|
int |
getDDMStructureLayoutsCount()
Returns the number of ddm structure layouts.
|
com.liferay.portal.kernel.dao.orm.ExportActionableDynamicQuery |
getExportActionableDynamicQuery(com.liferay.exportimport.kernel.lar.PortletDataContext portletDataContext) |
com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery |
getIndexableActionableDynamicQuery() |
java.lang.Class<DDMStructureLayout> |
getModelClass() |
java.lang.String |
getOSGiServiceIdentifier()
Returns the OSGi service identifier.
|
com.liferay.portal.kernel.model.PersistedModel |
getPersistedModel(java.io.Serializable primaryKeyObj) |
DDMStructureLayout |
getStructureLayout(long structureLayoutId) |
DDMStructureLayout |
getStructureLayout(long groupId,
long classNameId,
java.lang.String structureLayoutKey) |
DDMStructureLayout |
getStructureLayoutByStructureVersionId(long structureVersionId) |
DDMFormLayout |
getStructureLayoutDDMFormLayout(DDMStructureLayout structureLayout) |
java.util.List<DDMStructureLayout> |
getStructureLayouts(long groupId,
int start,
int end) |
java.util.List<DDMStructureLayout> |
getStructureLayouts(long groupId,
long classNameId,
int start,
int end,
com.liferay.portal.kernel.util.OrderByComparator<DDMStructureLayout> orderByComparator) |
java.util.List<DDMStructureLayout> |
getStructureLayouts(long groupId,
long classNameId,
long structureVersionId) |
java.util.List<DDMStructureLayout> |
getStructureLayouts(long groupId,
long classNameId,
long structureVersionId,
int start,
int end,
com.liferay.portal.kernel.util.OrderByComparator<DDMStructureLayout> orderByComparator) |
int |
getStructureLayoutsCount(long groupId) |
int |
getStructureLayoutsCount(long groupId,
long classNameId) |
int |
getStructureLayoutsCount(long groupId,
long classNameId,
long structureVersionId) |
java.util.List<DDMStructureLayout> |
search(long companyId,
long[] groupIds,
long classNameId,
java.lang.String keywords,
int start,
int end,
com.liferay.portal.kernel.util.OrderByComparator<DDMStructureLayout> orderByComparator) |
int |
searchCount(long companyId,
long[] groupIds,
long classNameId,
java.lang.String keywords) |
DDMStructureLayout |
updateDDMStructureLayout(DDMStructureLayout ddmStructureLayout)
Updates the ddm structure layout in the database or adds it if it does not yet exist.
|
DDMStructureLayout |
updateStructureLayout(long structureLayoutId,
DDMFormLayout ddmFormLayout,
com.liferay.portal.kernel.service.ServiceContext serviceContext) |
DDMStructureLayout |
updateStructureLayout(long structureLayoutId,
long structureVersionId,
java.util.Map<java.util.Locale,java.lang.String> name,
java.util.Map<java.util.Locale,java.lang.String> description,
java.lang.String definition,
com.liferay.portal.kernel.service.ServiceContext serviceContext) |
<R,E extends java.lang.Throwable> |
updateWithUnsafeFunction(com.liferay.petra.function.UnsafeFunction<com.liferay.portal.kernel.service.persistence.change.tracking.CTPersistence<DDMStructureLayout>,R,E> updateUnsafeFunction) |
@Indexable(type=REINDEX) DDMStructureLayout addDDMStructureLayout(DDMStructureLayout ddmStructureLayout)
Important: Inspect DDMStructureLayoutLocalServiceImpl for overloaded versions of the method. If provided, use these entry points to the API, as the implementation logic may require the additional parameters defined there.
ddmStructureLayout
- the ddm structure layout@Deprecated DDMStructureLayout addStructureLayout(long userId, long groupId, long structureVersionId, DDMFormLayout ddmFormLayout, com.liferay.portal.kernel.service.ServiceContext serviceContext) throws com.liferay.portal.kernel.exception.PortalException
addStructureLayout(long, long, long, String, long,
DDMFormLayout, ServiceContext)
com.liferay.portal.kernel.exception.PortalException
DDMStructureLayout addStructureLayout(long userId, long groupId, long classNameId, java.lang.String structureLayoutKey, long structureVersionId, DDMFormLayout ddmFormLayout, com.liferay.portal.kernel.service.ServiceContext serviceContext) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Indexable(type=REINDEX) DDMStructureLayout addStructureLayout(long userId, long groupId, long classNameId, java.lang.String structureLayoutKey, long structureVersionId, java.util.Map<java.util.Locale,java.lang.String> name, java.util.Map<java.util.Locale,java.lang.String> description, java.lang.String definition, com.liferay.portal.kernel.service.ServiceContext serviceContext) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Transactional(enabled=false) DDMStructureLayout createDDMStructureLayout(long structureLayoutId)
structureLayoutId
- the primary key for the new ddm structure layoutcom.liferay.portal.kernel.model.PersistedModel createPersistedModel(java.io.Serializable primaryKeyObj) throws com.liferay.portal.kernel.exception.PortalException
createPersistedModel
in interface com.liferay.portal.kernel.service.PersistedModelLocalService
com.liferay.portal.kernel.exception.PortalException
@Indexable(type=DELETE) DDMStructureLayout deleteDDMStructureLayout(DDMStructureLayout ddmStructureLayout)
Important: Inspect DDMStructureLayoutLocalServiceImpl for overloaded versions of the method. If provided, use these entry points to the API, as the implementation logic may require the additional parameters defined there.
ddmStructureLayout
- the ddm structure layout@Indexable(type=DELETE) DDMStructureLayout deleteDDMStructureLayout(long structureLayoutId) throws com.liferay.portal.kernel.exception.PortalException
Important: Inspect DDMStructureLayoutLocalServiceImpl for overloaded versions of the method. If provided, use these entry points to the API, as the implementation logic may require the additional parameters defined there.
structureLayoutId
- the primary key of the ddm structure layoutcom.liferay.portal.kernel.exception.PortalException
- if a ddm structure layout with the primary key could not be foundvoid deleteDDMStructureLayouts(long classNameId, DDMStructureVersion ddmStructureVersion) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.model.PersistedModel deletePersistedModel(com.liferay.portal.kernel.model.PersistedModel persistedModel) throws com.liferay.portal.kernel.exception.PortalException
deletePersistedModel
in interface com.liferay.portal.kernel.service.PersistedModelLocalService
com.liferay.portal.kernel.exception.PortalException
@SystemEvent(type=1) void deleteStructureLayout(DDMStructureLayout structureLayout)
void deleteStructureLayout(long structureLayoutId) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Transactional(propagation=SUPPORTS, readOnly=true) <T> T dslQuery(com.liferay.petra.sql.dsl.query.DSLQuery dslQuery)
@Transactional(propagation=SUPPORTS, readOnly=true) int dslQueryCount(com.liferay.petra.sql.dsl.query.DSLQuery dslQuery)
@Transactional(propagation=SUPPORTS, readOnly=true) com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery()
@Transactional(propagation=SUPPORTS, readOnly=true) <T> java.util.List<T> dynamicQuery(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
dynamicQuery
- the dynamic query@Transactional(propagation=SUPPORTS, readOnly=true) <T> java.util.List<T> dynamicQuery(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start, int end)
Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from com.liferay.dynamic.data.mapping.model.impl.DDMStructureLayoutModelImpl
.
dynamicQuery
- the dynamic querystart
- the lower bound of the range of model instancesend
- the upper bound of the range of model instances (not inclusive)@Transactional(propagation=SUPPORTS, readOnly=true) <T> java.util.List<T> dynamicQuery(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start, int end, com.liferay.portal.kernel.util.OrderByComparator<T> orderByComparator)
Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from com.liferay.dynamic.data.mapping.model.impl.DDMStructureLayoutModelImpl
.
dynamicQuery
- the dynamic querystart
- the lower bound of the range of model instancesend
- the upper bound of the range of model instances (not inclusive)orderByComparator
- the comparator to order the results by (optionally null
)@Transactional(propagation=SUPPORTS, readOnly=true) long dynamicQueryCount(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
dynamicQuery
- the dynamic query@Transactional(propagation=SUPPORTS, readOnly=true) long dynamicQueryCount(com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, com.liferay.portal.kernel.dao.orm.Projection projection)
dynamicQuery
- the dynamic queryprojection
- the projection to apply to the query@Transactional(propagation=SUPPORTS, readOnly=true) DDMStructureLayout fetchDDMStructureLayout(long structureLayoutId)
@Transactional(propagation=SUPPORTS, readOnly=true) DDMStructureLayout fetchDDMStructureLayoutByUuidAndGroupId(java.lang.String uuid, long groupId)
uuid
- the ddm structure layout's UUIDgroupId
- the primary key of the groupnull
if a matching ddm structure layout could not be found@Transactional(propagation=SUPPORTS, readOnly=true) DDMStructureLayout fetchStructureLayout(long structureLayoutId)
@Transactional(propagation=SUPPORTS, readOnly=true) DDMStructureLayout fetchStructureLayout(long groupId, long classNameId, java.lang.String structureLayoutKey)
@Transactional(propagation=SUPPORTS, readOnly=true) com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery getActionableDynamicQuery()
@Transactional(propagation=SUPPORTS, readOnly=true) DDMStructureLayout getDDMStructureLayout(long structureLayoutId) throws com.liferay.portal.kernel.exception.PortalException
structureLayoutId
- the primary key of the ddm structure layoutcom.liferay.portal.kernel.exception.PortalException
- if a ddm structure layout with the primary key could not be found@Transactional(propagation=SUPPORTS, readOnly=true) DDMStructureLayout getDDMStructureLayoutByUuidAndGroupId(java.lang.String uuid, long groupId) throws com.liferay.portal.kernel.exception.PortalException
uuid
- the ddm structure layout's UUIDgroupId
- the primary key of the groupcom.liferay.portal.kernel.exception.PortalException
- if a matching ddm structure layout could not be found@Transactional(propagation=SUPPORTS, readOnly=true) java.util.List<DDMStructureLayout> getDDMStructureLayouts(int start, int end)
Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from com.liferay.dynamic.data.mapping.model.impl.DDMStructureLayoutModelImpl
.
start
- the lower bound of the range of ddm structure layoutsend
- the upper bound of the range of ddm structure layouts (not inclusive)@Transactional(propagation=SUPPORTS, readOnly=true) java.util.List<DDMStructureLayout> getDDMStructureLayoutsByUuidAndCompanyId(java.lang.String uuid, long companyId)
uuid
- the UUID of the ddm structure layoutscompanyId
- the primary key of the company@Transactional(propagation=SUPPORTS, readOnly=true) java.util.List<DDMStructureLayout> getDDMStructureLayoutsByUuidAndCompanyId(java.lang.String uuid, long companyId, int start, int end, com.liferay.portal.kernel.util.OrderByComparator<DDMStructureLayout> orderByComparator)
uuid
- the UUID of the ddm structure layoutscompanyId
- the primary key of the companystart
- the lower bound of the range of ddm structure layoutsend
- the upper bound of the range of ddm structure layouts (not inclusive)orderByComparator
- the comparator to order the results by (optionally null
)@Transactional(propagation=SUPPORTS, readOnly=true) int getDDMStructureLayoutsCount()
@Transactional(propagation=SUPPORTS, readOnly=true) com.liferay.portal.kernel.dao.orm.ExportActionableDynamicQuery getExportActionableDynamicQuery(com.liferay.exportimport.kernel.lar.PortletDataContext portletDataContext)
@Transactional(propagation=SUPPORTS, readOnly=true) com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery getIndexableActionableDynamicQuery()
java.lang.String getOSGiServiceIdentifier()
@Transactional(propagation=SUPPORTS, readOnly=true) com.liferay.portal.kernel.model.PersistedModel getPersistedModel(java.io.Serializable primaryKeyObj) throws com.liferay.portal.kernel.exception.PortalException
getPersistedModel
in interface com.liferay.portal.kernel.service.PersistedModelLocalService
com.liferay.portal.kernel.exception.PortalException
@Transactional(propagation=SUPPORTS, readOnly=true) DDMStructureLayout getStructureLayout(long structureLayoutId) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Transactional(propagation=SUPPORTS, readOnly=true) DDMStructureLayout getStructureLayout(long groupId, long classNameId, java.lang.String structureLayoutKey) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Transactional(propagation=SUPPORTS, readOnly=true) DDMStructureLayout getStructureLayoutByStructureVersionId(long structureVersionId) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Transactional(propagation=SUPPORTS, readOnly=true) DDMFormLayout getStructureLayoutDDMFormLayout(DDMStructureLayout structureLayout)
@Transactional(propagation=SUPPORTS, readOnly=true) java.util.List<DDMStructureLayout> getStructureLayouts(long groupId, int start, int end) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Transactional(propagation=SUPPORTS, readOnly=true) java.util.List<DDMStructureLayout> getStructureLayouts(long groupId, long classNameId, int start, int end, com.liferay.portal.kernel.util.OrderByComparator<DDMStructureLayout> orderByComparator)
@Transactional(propagation=SUPPORTS, readOnly=true) java.util.List<DDMStructureLayout> getStructureLayouts(long groupId, long classNameId, long structureVersionId)
@Transactional(propagation=SUPPORTS, readOnly=true) java.util.List<DDMStructureLayout> getStructureLayouts(long groupId, long classNameId, long structureVersionId, int start, int end, com.liferay.portal.kernel.util.OrderByComparator<DDMStructureLayout> orderByComparator)
@Transactional(propagation=SUPPORTS, readOnly=true) int getStructureLayoutsCount(long groupId)
@Transactional(propagation=SUPPORTS, readOnly=true) int getStructureLayoutsCount(long groupId, long classNameId)
@Transactional(propagation=SUPPORTS, readOnly=true) int getStructureLayoutsCount(long groupId, long classNameId, long structureVersionId)
@Transactional(propagation=SUPPORTS, readOnly=true) java.util.List<DDMStructureLayout> search(long companyId, long[] groupIds, long classNameId, java.lang.String keywords, int start, int end, com.liferay.portal.kernel.util.OrderByComparator<DDMStructureLayout> orderByComparator) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Transactional(propagation=SUPPORTS, readOnly=true) int searchCount(long companyId, long[] groupIds, long classNameId, java.lang.String keywords) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Indexable(type=REINDEX) DDMStructureLayout updateDDMStructureLayout(DDMStructureLayout ddmStructureLayout)
Important: Inspect DDMStructureLayoutLocalServiceImpl for overloaded versions of the method. If provided, use these entry points to the API, as the implementation logic may require the additional parameters defined there.
ddmStructureLayout
- the ddm structure layoutDDMStructureLayout updateStructureLayout(long structureLayoutId, DDMFormLayout ddmFormLayout, com.liferay.portal.kernel.service.ServiceContext serviceContext) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Indexable(type=REINDEX) DDMStructureLayout updateStructureLayout(long structureLayoutId, long structureVersionId, java.util.Map<java.util.Locale,java.lang.String> name, java.util.Map<java.util.Locale,java.lang.String> description, java.lang.String definition, com.liferay.portal.kernel.service.ServiceContext serviceContext) throws com.liferay.portal.kernel.exception.PortalException
com.liferay.portal.kernel.exception.PortalException
@Transactional(enabled=false) com.liferay.portal.kernel.service.persistence.change.tracking.CTPersistence<DDMStructureLayout> getCTPersistence()
getCTPersistence
in interface com.liferay.portal.kernel.service.change.tracking.CTService<DDMStructureLayout>
@Transactional(enabled=false) java.lang.Class<DDMStructureLayout> getModelClass()
getModelClass
in interface com.liferay.portal.kernel.service.change.tracking.CTService<DDMStructureLayout>
@Transactional(rollbackFor=java.lang.Throwable.class) <R,E extends java.lang.Throwable> R updateWithUnsafeFunction(com.liferay.petra.function.UnsafeFunction<com.liferay.portal.kernel.service.persistence.change.tracking.CTPersistence<DDMStructureLayout>,R,E> updateUnsafeFunction) throws E extends java.lang.Throwable
updateWithUnsafeFunction
in interface com.liferay.portal.kernel.service.change.tracking.CTService<DDMStructureLayout>
E extends java.lang.Throwable