Interface CyclicEventAdminSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession
All Known Subinterfaces:
CyclicEventBatchAdminSession

public interface CyclicEventAdminSession extends OsidSession

This session creates, updates, and deletes CyclicEvents . 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 CyclicEvent , a CyclicEventForm is requested using getCyclicEventFormForCreate() specifying the desired record Types or none if no record Types are needed. The returned CycllicEventForm 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 CyclicEventForm is submiited to a create operation, it cannot be reused with another create operation unless the first operation was unsuccessful. Each CyclicEventForm corresponds to an attempted transaction.

For updates, CycliccEventForms are requested to the CyclicEvent Id that is to be updated using getCyclicEventFormForUpdate() . Similarly, the CyclicEventForm has metadata about the data that can be updated and it can perform validation before submitting the update. The CyclicEventForm can only be used once for a successful update and cannot be reused.

The delete operations delete Cyclic Events . To unmap a CyclicEvent from the current Calendar , the CyclicEventCalendarAssignmentSession should be used. These delete operations attempt to remove the CyclicEvent itself thus removing it from all known Calendar catalogs.

This session includes an Id aliasing mechanism to assign an external Id to an internally assigned Id.

  • Method Details

    • getCalendarId

      Id getCalendarId()
      Gets the Calendar Id associated with this session.
      Returns:
      the Calendar Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getCalendar

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

      boolean canCreateCyclicEvents()
      Tests if this user can create CyclicEvents . A return of true does not guarantee successful authorization. A return of false indicates that it is known creating a CyclicEvent will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer create operations to an unauthorized user.
      Returns:
      false if CyclicEvent creation is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • canCreateCyclicEventWithRecordTypes

      boolean canCreateCyclicEventWithRecordTypes(Type[] cyclicEventRecordTypes)
      Tests if this user can create a single CyclicEvent using the desired record types. While CalendaringCycleManager.getCyclicEventRecordTypes() can be used to examine which records are supported, this method tests which record(s) are required for creating a specific CyclicEvent . Providing an empty array tests if a CyclicEvent can be created with no records.
      Parameters:
      cyclicEventRecordTypes - array of cyclic event record types
      Returns:
      true if CyclicEvent creation using the specified record Types is supported, false otherwise
      Throws:
      NullArgumentException - cyclicEventRecordTypes is null
      Compliance:
      mandatory - This method must be implemented.
    • getCyclicEventFormForCreate

      CyclicEventForm getCyclicEventFormForCreate(Type[] cyclicEventRecordTypes) throws OperationFailedException, PermissionDeniedException
      Gets the cyclic event form for creating new cyclic events. A new form should be requested for each create transaction.
      Parameters:
      cyclicEventRecordTypes - array of cyclic event record types
      Returns:
      the cyclic event form
      Throws:
      NullArgumentException - cyclicEventRecordTypes is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      UnsupportedException - unable to get form for requested record types
      Compliance:
      mandatory - This method must be implemented.
    • createCyclicEvent

      Creates a new CyclicEvent .
      Parameters:
      cyclicEventForm - the form for this CyclicEvent
      Returns:
      the new CyclicEvent
      Throws:
      IllegalStateException - cyclicEventForm already used in a create transaction
      InvalidArgumentException - one or more of the form elements is invalid
      NullArgumentException - cyclicEventForm is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      UnsupportedException - cyclicEventForm did not originate from getCyclicEventFormForCreate()
      Compliance:
      mandatory - This method must be implemented.
    • canUpdateCyclicEvents

      boolean canUpdateCyclicEvents()
      Tests if this user can update CyclicEvents . A return of true does not guarantee successful authorization. A return of false indicates that it is known updating a CyclicEvent will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer update operations to an unauthorized user.
      Returns:
      false if cyclic event modification is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • getCyclicEventFormForUpdate

      CyclicEventForm getCyclicEventFormForUpdate(Id cyclicEventId) throws NotFoundException, OperationFailedException, PermissionDeniedException
      Gets the cyclic event form for updating an existing cyclic event. A new event form should be requested for each update transaction.
      Parameters:
      cyclicEventId - the Id of the CyclicEvent
      Returns:
      the cyclic event form
      Throws:
      NotFoundException - cyclicEventId is not found
      NullArgumentException - cyclicEventId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • updateCyclicEvent

      void updateCyclicEvent(CyclicEventForm cyclicEventForm) throws OperationFailedException, PermissionDeniedException
      Updates an existing cyclic event.
      Parameters:
      cyclicEventForm - the form containing the elements to be updated
      Throws:
      IllegalStateException - cyclicEventForm already used in an update transaction
      InvalidArgumentException - the form contains an invalid value
      NullArgumentException - cyclicEventForm is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      UnsupportedException - cyclicEventForm did not originate from getCyclicEventFormForUpdate()
      Compliance:
      mandatory - This method must be implemented.
    • canDeleteCyclicEvents

      boolean canDeleteCyclicEvents()
      Tests if this user can delete CyclicEvents . A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting a CyclicEvent will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer delete operations to an unauthorized user.
      Returns:
      false if CyclicEvent deletion is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • deleteCyclicEvent

      void deleteCyclicEvent(Id cyclicEventId) throws NotFoundException, OperationFailedException, PermissionDeniedException
      Deletes the CyclicEvent identified by the given Id .
      Parameters:
      cyclicEventId - the Id of the CyclicEvent to delete
      Throws:
      NotFoundException - a CyclicEvent was not found identified by the given Id
      NullArgumentException - cyclicEventId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canManageCyclicEventAliases

      boolean canManageCyclicEventAliases()
      Tests if this user can manage Id aliases for CyclicEvents . A return of true does not guarantee successful authorization. A return of false indicates that it is known changing an alias will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer alias operations to an unauthorized user.
      Returns:
      false if CyclicEvent aliasing is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • aliasCyclicEvent

      void aliasCyclicEvent(Id cyclicEventId, Id aliasId) throws AlreadyExistsException, NotFoundException, OperationFailedException, PermissionDeniedException
      Adds an Id to a CyclicEvent for the purpose of creating compatibility. The primary Id of the CyclicEvent is determined by the provider. The new Id performs as an alias to the primary Id . If the alias is a pointer to another cyclic event, it is reassigned to the given cyclic event Id .
      Parameters:
      cyclicEventId - the Id of a CyclicEvent
      aliasId - the alias Id
      Throws:
      AlreadyExistsException - aliasId is already assigned
      NotFoundException - cyclicEventId not found
      NullArgumentException - cyclicEventId or aliasId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.