Interface ShipmentAdminSession

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

public interface ShipmentAdminSession extends OsidSession

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

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

The delete operations delete Shipments . To unmap a Shipment from the current Warehouse , the ShipmentWarehouseAssignmentSession should be used. These delete operations attempt to remove the Shipment itself thus removing it from all known Warehouse catalogs.

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

  • Method Details

    • getWarehouseId

      Id getWarehouseId()
      Gets the Warehouse Id associated with this session.
      Returns:
      the Warehouse Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getWarehouse

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

      boolean canCreateShipments()
      Tests if this user can create Shipments . A return of true does not guarantee successful authorization. A return of false indicates that it is known creating a Shipment 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 Shipment creation is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • canCreateShipmentWithRecordTypes

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

      ShipmentForm getShipmentFormForCreate(Type[] shipmentRecordTypes) throws OperationFailedException, PermissionDeniedException
      Gets the shipment form for creating new shipments. A new form should be requested for each create transaction.
      Parameters:
      shipmentRecordTypes - array of shipment record types
      Returns:
      the shipment form
      Throws:
      NullArgumentException - shipmentRecordType 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.
    • createShipment

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

      boolean canUpdateShipments()
      Tests if this user can update Shipments . A return of true does not guarantee successful authorization. A return of false indicates that it is known updating a Shipment 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 Shipment modification is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • getShipmentFormForUpdate

      Gets the shipment form for updating an existing shipment. A new shipment form should be requested for each update transaction.
      Parameters:
      shipmentId - the Id of the Shipment
      Returns:
      the shipment form
      Throws:
      NotFoundException - shipmentId is not found
      NullArgumentException - shipmentId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • updateShipment

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

      boolean canDeleteShipments()
      Tests if this user can delete Shipments . A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting a Shipment 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 Shipment deletion is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • deleteShipment

      void deleteShipment(Id shipmentId) throws NotFoundException, OperationFailedException, PermissionDeniedException
      Deletes a Shipment .
      Parameters:
      shipmentId - the Id of the Shipment to remove
      Throws:
      NotFoundException - shipmentId not found
      NullArgumentException - shipmentId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canManageShipmentAliases

      boolean canManageShipmentAliases()
      Tests if this user can manage Id aliases for Shipments . 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 Shipment aliasing is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • aliasShipment

      Adds an Id to a Shipment for the purpose of creating compatibility. The primary Id of the Shipment is determined by the provider. The new Id performs as an alias to the primary Id . If the alias is a pointer to another shipment, it is reassigned to the given shipment Id .
      Parameters:
      shipmentId - the Id of a Shipment
      aliasId - the alias Id
      Throws:
      AlreadyExistsException - aliasId is in use as a primary Id
      NotFoundException - shipmentId not found
      NullArgumentException - shipmentId or aliasId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canCreateEntries

      boolean canCreateEntries()
      Tests if this user can create Entries . A return of true does not guarantee successful authorization. A return of false indicates that it is known creating an Entry 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 Entry creation is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • canCreateEntriesWithRecordTypes

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

      EntryForm getEntryFormForCreate(Id shipmentId, Type[] entryRecordTypes) throws NotFoundException, OperationFailedException, PermissionDeniedException
      Gets the entry form for creating new entries. A new form should be requested for each create transaction.
      Parameters:
      shipmentId - a shipment Id
      entryRecordTypes - array of entry record types
      Returns:
      the entry form
      Throws:
      NotFoundException - shipmentId is not found
      NullArgumentException - entryRecordTypes or shipmentId 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.
    • createEntry

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

      boolean canUpdateEntries()
      Tests if this user can update Entries . A return of true does not guarantee successful authorization. A return of false indicates that it is known updating an Entry 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 Entry modification is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • getEntryFormForUpdate

      Gets the entry form for updating an existing entry. A new entry form should be requested for each update transaction.
      Parameters:
      entryId - the Id of the Entry
      Returns:
      the entry form
      Throws:
      NotFoundException - entryId is not found
      NullArgumentException - entryId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • updateEntry

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

      boolean canDeleteEntries()
      Tests if this user can delete Entries . A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting an Entry 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 Entry deletion is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • deleteEntry

      Deletes an Entry .
      Parameters:
      entryId - the Id of the Entry to remove
      Throws:
      NotFoundException - entryId not found
      NullArgumentException - entryId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canManageEntryAliases

      boolean canManageEntryAliases()
      Tests if this user can manage Id aliases for Entries . 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 Entry aliasing is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • aliasEntry

      Adds an Id to an Entry for the purpose of creating compatibility. The primary Id of the Entry is determined by the provider. The new Id performs as an alias to the primary Id . If the alias is a pointer to another entry, it is reassigned to the given entry Id .
      Parameters:
      entryId - the Id of an Entry
      aliasId - the alias Id
      Throws:
      AlreadyExistsException - aliasId is in use as a primary Id
      NotFoundException - entryId not found
      NullArgumentException - entryId or aliasId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.