Class EmbargoServiceImpl

java.lang.Object
org.dspace.embargo.EmbargoServiceImpl
All Implemented Interfaces:
EmbargoService

public class EmbargoServiceImpl extends Object implements EmbargoService
Public interface to the embargo subsystem.

Configuration properties: (with examples) # DC metadata field to hold the user-supplied embargo terms embargo.field.terms = dc.embargo.terms # DC metadata field to hold computed "lift date" of embargo embargo.field.lift = dc.date.available # String to indicate indefinite (forever) embargo in terms embargo.terms.open = Indefinite # implementation of embargo setter plugin plugin.single.org.dspace.embargo.EmbargoSetter = edu.my.Setter # implementation of embargo lifter plugin plugin.single.org.dspace.embargo.EmbargoLifter = edu.my.Lifter

Author:
Larry Stone, Richard Rodgers
  • Field Details

    • terms_schema

      protected String terms_schema
    • terms_element

      protected String terms_element
    • terms_qualifier

      protected String terms_qualifier
    • lift_schema

      protected String lift_schema
    • lift_element

      protected String lift_element
    • lift_qualifier

      protected String lift_qualifier
    • setter

      protected EmbargoSetter setter
    • lifter

      protected EmbargoLifter lifter
    • itemService

      @Autowired(required=true) protected ItemService itemService
    • configurationService

      @Autowired(required=true) protected ConfigurationService configurationService
    • pluginService

      @Autowired(required=true) protected PluginService pluginService
  • Constructor Details

    • EmbargoServiceImpl

      protected EmbargoServiceImpl()
  • Method Details

    • setEmbargo

      public void setEmbargo(Context context, Item item) throws SQLException, AuthorizeException
      Description copied from interface: EmbargoService
      Put an Item under embargo until the specified lift date. Calls EmbargoSetter plugin to adjust Item access control policies.
      Specified by:
      setEmbargo in interface EmbargoService
      Parameters:
      context - the DSpace context
      item - the item to embargo
      Throws:
      SQLException - An exception that provides information on a database access error or other errors.
      AuthorizeException - Exception indicating the current user of the context does not have permission to perform a particular action.
    • getEmbargoTermsAsDate

      public DCDate getEmbargoTermsAsDate(Context context, Item item) throws SQLException, AuthorizeException
      Description copied from interface: EmbargoService
      Get the embargo lift date for an Item, if any. This looks for the metadata field configured to hold embargo terms, and gives it to the EmbargoSetter plugin's method to interpret it into an absolute timestamp. This is intended to be called at the time the Item is installed into the archive.

      Note that the plugin is *always* called, in case it gets its cue for the embargo date from sources other than, or in addition to, the specified field.

      Specified by:
      getEmbargoTermsAsDate in interface EmbargoService
      Parameters:
      context - the DSpace context
      item - the item to embargo
      Returns:
      lift date on which the embargo is to be lifted, or null if none
      Throws:
      SQLException - An exception that provides information on a database access error or other errors.
      AuthorizeException - Exception indicating the current user of the context does not have permission to perform a particular action.
    • liftEmbargo

      public void liftEmbargo(Context context, Item item) throws SQLException, AuthorizeException, IOException
      Description copied from interface: EmbargoService
      Lift the embargo on an item which is assumed to be under embargo. Call the plugin to manage permissions in its own way, then delete the administrative metadata fields that dictated embargo date.
      Specified by:
      liftEmbargo in interface EmbargoService
      Parameters:
      context - the DSpace context
      item - the item on which to lift the embargo
      Throws:
      SQLException - An exception that provides information on a database access error or other errors.
      AuthorizeException - Exception indicating the current user of the context does not have permission to perform a particular action.
      IOException - A general class of exceptions produced by failed or interrupted I/O operations.
    • init

      public void init() throws Exception
      Initialize the bean (after dependency injection has already taken place). Ensures the configurationService is injected, so that we can get plugins and MD field settings from config. Called by "init-method" in Spring config.
      Throws:
      Exception - on generic exception
    • getSchemaOf

      protected String getSchemaOf(String field)
    • getElementOf

      protected String getElementOf(String field)
    • getQualifierOf

      protected String getQualifierOf(String field)
    • recoverEmbargoDate

      protected DCDate recoverEmbargoDate(Item item)
    • checkEmbargo

      public void checkEmbargo(Context context, Item item) throws SQLException, IOException, AuthorizeException
      Specified by:
      checkEmbargo in interface EmbargoService
      Throws:
      SQLException
      IOException
      AuthorizeException
    • getLiftMetadata

      public List<MetadataValue> getLiftMetadata(Context context, Item item)
      Specified by:
      getLiftMetadata in interface EmbargoService
    • findItemsByLiftMetadata

      public Iterator<Item> findItemsByLiftMetadata(Context context) throws SQLException, IOException, AuthorizeException
      Specified by:
      findItemsByLiftMetadata in interface EmbargoService
      Throws:
      SQLException
      IOException
      AuthorizeException