Interface CatalogAdminSession
- All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession
This session creates, updates, and deletes Catalogs . The data
for create and update is provided by the consumer via the form object.
OsidForms are requested for each create or update and may not be
reused.
Create and update operations differ in their usage. To create a
Catalog , a CatalogForm is requested using
getCatalogFormForCreate() specifying the desired record Types or
none if no record Types are needed. The returned
CatalogForm will indicate that it is to be used with a create operation
and can be used to examine metdata or validate data prior to creation.
Once the CatalogForm is submiited to a create operation, it cannot
be reused with another create operation unless the first operation was
unsuccessful. Each CatalogForm corresponds to an attempted
transaction.
For updates, CatalogForms are requested to the Catalog
Id that is to be updated using getCatalogFormForUpdate() .
Similarly, the CatalogForm has metadata about the data that can be
updated and it can perform validation before submitting the update. The
CatalogForm can only be used once for a successful update and
cannot be reused.
The delete operations delete Catalogs .
This session includes an Id aliasing mechanism to assign an
external Id to an internally assigned Id.
-
Method Summary
Modifier and TypeMethodDescriptionvoidaliasCatalog(Id catalogId, Id aliasId) Adds anIdto aCatalogfor the purpose of creating compatibility.booleanTests if this user can createCatalogs.booleancanCreateCatalogWithRecordTypes(Type[] catalogRecordTypes) Tests if this user can create a singleCatalogusing the desired record types.booleanTests if this user can deleteCatalogs.booleanTests if this user can manageIdaliases forCatalogs.booleanTests if this user can updateCatalogs.createCatalog(CatalogForm catalogForm) Creates a newCatalog.voiddeleteCatalog(Id catalogId) Deletes aCatalog.getCatalogFormForCreate(Type[] catalogRecordTypes) Gets the catalog form for creating new catalogs.getCatalogFormForUpdate(Id catalogId) Gets the catalog form for updating an existing catalog.voidupdateCatalog(CatalogForm catalogForm) Updates an existing catalog.Methods inherited from interface OsidSession
closeMethods inherited from interface OsidSession
getAuthenticatedAgent, getAuthenticatedAgentId, getClockRate, getDate, getEffectiveAgent, getEffectiveAgentId, getFormatType, getLocale, isAuthenticated, startTransaction, supportsTransactionsModifier and TypeMethodDescriptionGets the agent authenticated to this session.Gets theIdof the agent authenticated to this session.Gets the rate of the service clock.getDate()Gets the service date which may be the current date or the effective date in which this session exists.Gets the effective agent in use by this session.Gets theIdof the effective agent in use by this session.Gets theDisplayTextformatTypepreference in effect for this session.Gets the locale indicating the localization preferences in effect for this session.booleanTests if an agent is authenticated to this session.Starts a new transaction for this sesson.booleanTests for the availability of transactions.
-
Method Details
-
canCreateCatalogs
boolean canCreateCatalogs()Tests if this user can createCatalogs. A return of true does not guarantee successful authorization. A return of false indicates that it is known creating aCatalogwill result in aPERMISSION_DENIED. This is intended as a hint to an application that may not wish to offer create operations to unauthorized users.- Returns:
falseifCatalogcreation is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
canCreateCatalogWithRecordTypes
Tests if this user can create a singleCatalogusing the desired record types. WhileCatalogingManager.getCatalogRecordTypes()can be used to examine which records are supported, this method tests which record(s) are required for creating a specificCatalog. Providing an empty array tests if aCatalogcan be created with no records.- Parameters:
catalogRecordTypes- array of catalog record types- Returns:
trueifCatalogcreation using the specified recordTypesis supported,falseotherwise- Throws:
NullArgumentException-catalogRecordTypesisnull- Compliance:
mandatory- This method must be implemented.
-
getCatalogFormForCreate
CatalogForm getCatalogFormForCreate(Type[] catalogRecordTypes) throws OperationFailedException, PermissionDeniedException Gets the catalog form for creating new catalogs. A new form should be requested for each create transaction.- Parameters:
catalogRecordTypes- array of catalog record types- Returns:
- the catalog form
- Throws:
NullArgumentException-catalogRecordTypesisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException- unable to get form for requested record types- Compliance:
mandatory- This method must be implemented.
-
createCatalog
Catalog createCatalog(CatalogForm catalogForm) throws OperationFailedException, PermissionDeniedException Creates a newCatalog.- Parameters:
catalogForm- the form for thisCatalog- Returns:
- the new
Catalog - Throws:
IllegalStateException-catalogFormalready used in a create transactionInvalidArgumentException- one or more of the form elements is invalidNullArgumentException-catalogFormisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException-catalogFormdid not originate fromgetCatalogFormForCreate()- Compliance:
mandatory- This method must be implemented.
-
canUpdateCatalogs
boolean canUpdateCatalogs()Tests if this user can updateCatalogs. A return of true does not guarantee successful authorization. A return of false indicates that it is known updating aCatalogwill result in aPERMISSION_DENIED. This is intended as a hint to an application that may not wish to offer update operations to unauthorized users.- Returns:
falseifCatalogmodification is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
getCatalogFormForUpdate
CatalogForm getCatalogFormForUpdate(Id catalogId) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets the catalog form for updating an existing catalog. A new catalog form should be requested for each update transaction.- Parameters:
catalogId- theIdof theCatalog- Returns:
- the catalog form
- Throws:
NotFoundException-catalogIdis not foundNullArgumentException-catalogIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
updateCatalog
void updateCatalog(CatalogForm catalogForm) throws OperationFailedException, PermissionDeniedException Updates an existing catalog.- Parameters:
catalogForm- the form containing the elements to be updated- Throws:
IllegalStateException-catalogFormalready used in an update transactionInvalidArgumentException- the form contains an invalid valueNullArgumentException-catalogFormisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException-catalogFormdid not originate fromgetCatalogFormForUpdate()- Compliance:
mandatory- This method must be implemented.
-
canDeleteCatalogs
boolean canDeleteCatalogs()Tests if this user can deleteCatalogs. A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting aCatalogwill result in aPERMISSION_DENIED. This is intended as a hint to an application that may not wish to offer delete operations to unauthorized users.- Returns:
falseifCatalogdeletion is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
deleteCatalog
void deleteCatalog(Id catalogId) throws NotFoundException, OperationFailedException, PermissionDeniedException Deletes aCatalog.- Parameters:
catalogId- theIdof theCatalogto remove- Throws:
NotFoundException-catalogIdnot foundNullArgumentException-catalogIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
canManageCatalogAliases
boolean canManageCatalogAliases()Tests if this user can manageIdaliases forCatalogs. A return of true does not guarantee successful authorization. A return of false indicates that it is known changing an alias will result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer alias operations to an unauthorized user.- Returns:
falseifCatalogaliasing is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
aliasCatalog
void aliasCatalog(Id catalogId, Id aliasId) throws AlreadyExistsException, NotFoundException, OperationFailedException, PermissionDeniedException Adds anIdto aCatalogfor the purpose of creating compatibility. The primaryIdof theCatalogis determined by the provider. The newIdperforms as an alias to the primaryId. If the alias is a pointer to another catalog, it is reassigned to the given catalogId.- Parameters:
catalogId- theIdof aCatalogaliasId- the aliasId- Throws:
AlreadyExistsException-aliasIdis already assignedNotFoundException-catalogIdnot foundNullArgumentException-catalogIdoraliasIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-