Interface CategoryLookupSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface CategoryLookupSession extends OsidSession

This session defines methods for retrieving categories.

This lookup session defines several views:

  • comparative view: elements may be silently omitted or re-ordered
  • plenary view: provides a complete result set or is an error condition
  • isolated business view: All category methods in this session operate, retrieve and pertain to categories defined explicitly in the current business. Using an isolated view is useful for managing Categories with the CategoryAdminSession .
  • federated business view: All category lookup methods in this session operate, retrieve and pertain to all categories defined in this business and any other categories implicitly available in this business through business inheritence.

The methods useFederatedBusinessView() and useIsolatedBusinessView() behave as a radio group and one should be selected before invoking any lookup methods.

Categories may have an additional records indicated by their respective record types. The record may not be accessed through a cast of the Category .

  • Method Details

    • getBusinessId

      Id getBusinessId()
      Gets the Business Id associated with this session.
      Returns:
      the Business Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getBusiness

      Gets the Business associated with this session.
      Returns:
      the business
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canLookupCategories

      boolean canLookupCategories()
      Tests if this user can perform Category lookups. A return of true does not guarantee successful authorization. A return of false indicates that it is known all methods in this session will result in a PERMISSION_DENIED . This is intended as a hint to an application that may not offer lookup operations to unauthorized users.
      Returns:
      false if lookup methods are not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • useComparativeCategoryView

      void useComparativeCategoryView()
      The returns from the lookup methods may omit or translate elements based on this session, such as authorization, and not result in an error. This view is used when greater interoperability is desired at the expense of precision.
      Compliance:
      mandatory - This method is must be implemented.
    • usePlenaryCategoryView

      void usePlenaryCategoryView()
      A complete view of the Category returns is desired. Methods will return what is requested or result in an error. This view is used when greater precision is desired at the expense of interoperability.
      Compliance:
      mandatory - This method is must be implemented.
    • useFederatedBusinessView

      void useFederatedBusinessView()
      Federates the view for methods in this session. A federated view will include categories in catalogs which are children of this catalog in the business hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedBusinessView

      void useIsolatedBusinessView()
      Isolates the view for methods in this session. An isolated view restricts retrievals to this business only.
      Compliance:
      mandatory - This method is must be implemented.
    • getCategory

      Gets the Category specified by its Id . In plenary mode, the exact Id is found or a NOT_FOUND results. Otherwise, the returned Category may have a different Id than requested, such as the case where a duplicate Id was assigned to a Category and retained for compatibility.
      Parameters:
      categoryId - the Id of the Category to retrieve
      Returns:
      the returned Category
      Throws:
      NotFoundException - no Category found with the given Id
      NullArgumentException - categoryId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • getCategoriesByIds

      Gets a CategoryList corresponding to the given IdList . In plenary mode, the returned list contains all of the categories specified in the Id list, in the order of the list, including duplicates, or an error results if an Id in the supplied list is not found or inaccessible. Otherwise, inaccessible Categories may be omitted from the list and may present the elements in any order including returning a unique set.
      Parameters:
      categoryIds - the list of Ids to retrieve
      Returns:
      the returned Category list
      Throws:
      NotFoundException - an Id was not found
      NullArgumentException - categoryIds is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • getCategoriesByGenusType

      CategoryList getCategoriesByGenusType(Type categoryGenusType) throws OperationFailedException, PermissionDeniedException
      Gets a CategoryList corresponding to the given category genus Type which does not include categories of types derived from the specified Type .In plenary mode, the returned list contains all known categories or an error results. Otherwise, the returned list may contain only those categories that are accessible through this session.
      Parameters:
      categoryGenusType - a category genus type
      Returns:
      the returned Category list
      Throws:
      NullArgumentException - categoryGenusType is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • getCategoriesByParentGenusType

      CategoryList getCategoriesByParentGenusType(Type categoryGenusType) throws OperationFailedException, PermissionDeniedException
      Gets a CategoryList corresponding to the given category genus Type and include any additional categories with genus types derived from the specified Type .In plenary mode, the returned list contains all known categories or an error results. Otherwise, the returned list may contain only those categories that are accessible through this session.
      Parameters:
      categoryGenusType - a category genus type
      Returns:
      the returned Category list
      Throws:
      NullArgumentException - categoryGenusType is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • getCategoriesByRecordType

      CategoryList getCategoriesByRecordType(Type categoryRecordType) throws OperationFailedException, PermissionDeniedException
      Gets a CategoryList containing the given category record Type . In plenary mode, the returned list contains all known categories or an error results. Otherwise, the returned list may contain only those categories that are accessible through this session.
      Parameters:
      categoryRecordType - a category record type
      Returns:
      the returned Category list
      Throws:
      NullArgumentException - categoryRecordType is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • getCategories

      Gets all Categories . In plenary mode, the returned list contains all known categories or an error results. Otherwise, the returned list may contain only those categories that are accessible through this session.
      Returns:
      a list of Categories
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.