org.fcrepo.server.management
Class DefaultManagement

java.lang.Object
  extended by org.fcrepo.server.management.DefaultManagement
All Implemented Interfaces:
Constants, Management, ManagementDelegate

public class DefaultManagement
extends Object
implements Constants, Management, ManagementDelegate

Implements API-M without regard to the transport/messaging protocol.

Version:
$Id$
Author:
Chris Wilper

Nested Class Summary
 class DefaultManagement.DatastreamDateComparator
           
 
Nested classes/interfaces inherited from interface org.fcrepo.common.Constants
Constants.FedoraHome
 
Field Summary
 
Fields inherited from interface org.fcrepo.common.Constants
ACCESS, ACTION, API, ATOM_APIM1_0, ATOM_ZIP1_1, ATOM1_1, AUDIT, AUDIT1_0, BATCH_MODIFY, BATCH_MODIFY1_1, BE_SECURITY, BE_SECURITY1_0, BINDING_SPEC, DATASTREAM, DC, DISSEMINATOR, DS_COMPOSITE_MODEL, DS_COMPOSITE_MODEL1_0, DS_INPUT_SPEC1_0, DS_INPUT_SPEC1_1, ENVIRONMENT, FCFG, FEDORA, FEDORA_APP_CONTEXT_NAME, FEDORA_DEFAULT_APP_CONTEXT, FEDORA_HOME, FOXML, FOXML1_0, FOXML1_0_LEGACY, FOXML1_1, HTTP_REQUEST, MANAGEMENT, METHOD_MAP, METS, METS_EXT, METS_EXT1_0, METS_EXT1_0_LEGACY, METS_EXT1_1, MODEL, MULGARA, OAI_DC, OAI_DC2_0, OAI_FRIENDS, OAI_FRIENDS2_0, OAI_IDENTIFIER, OAI_IDENTIFIER2_0, OAI_PMH, OAI_PMH2_0, OAI_PROV, OAI_PROV2_0, OBJ_DATASTREAMS1_0, OBJ_HISTORY1_0, OBJ_ITEMS1_0, OBJ_METHODS1_0, OBJ_PROFILE1_0, OBJ_VALIDATION1_0, OBJECT, OLD_XLINK, PID_LIST1_0, RDF, RDF_XSD, RECOVERY, RELS_EXT, RELS_EXT1_0, RELS_INT1_0, REPO_DESC1_0, RESOURCE, SDEF, SDEF_METHOD_MAP1_0, SDEP, SDEP_METHOD_MAP1_0, SDEP_METHOD_MAP1_1, SERVICE_PROFILE, SOAP, SOAP_ENC, SUBJECT, TYPES, VIEW, WSDL, WSDL_HTTP, WSDL_MIME, XACML_POLICY, XACML_POLICY1_0, XLINK, XML_XSD, XMLNS, XSI
 
Constructor Summary
DefaultManagement(Authorization authz, DOManager doMgr, ExternalContentManager ecMgr, int uploadMinutes, int lastId, File tempDir, Hashtable<String,Long> uploadStartTime, long purgeDelayInMillis)
           
 
Method Summary
 String addDatastream(Context context, String pid, String dsID, String[] altIDs, String dsLabel, boolean versionable, String MIMEType, String formatURI, String dsLocation, String controlGroup, String dsState, String checksumType, String checksum, String logMessage)
           
 boolean addRelationship(Context context, String subject, String relationship, String object, boolean isLiteral, String datatype)
           
 String compareDatastreamChecksum(Context context, String pid, String datastreamID, Date versionDate)
           
 InputStream export(Context context, String pid, String format, String exportContext, String encoding)
           
 Datastream getDatastream(Context context, String pid, String datastreamID, Date asOfDateTime)
           
 Datastream[] getDatastreamHistory(Context context, String pid, String datastreamID)
           
 Datastream[] getDatastreams(Context context, String pid, Date asOfDateTime, String state)
           
 String[] getNextPID(Context context, int numPIDs, String namespace)
           
 InputStream getObjectXML(Context context, String pid, String encoding)
           
 RelationshipTuple[] getRelationships(Context context, String subject, String relationship)
           
 InputStream getTempStream(String id)
           
 String ingest(Context context, InputStream serialization, String logMessage, String format, String encoding, String pid)
           
 Date modifyDatastreamByReference(Context context, String pid, String datastreamId, String[] altIDs, String dsLabel, String mimeType, String formatURI, String dsLocation, String checksumType, String checksum, String logMessage, Date lastModifiedDate)
           
 Date modifyDatastreamByValue(Context context, String pid, String datastreamId, String[] altIDs, String dsLabel, String mimeType, String formatURI, InputStream dsContent, String checksumType, String checksum, String logMessage, Date lastModifiedDate)
           
 Date[] modifyDatastreamControlGroup(Context context, String pid, String dsID, String controlGroup, boolean addXMLHeader, boolean reformat, boolean setMIMETypeCharset)
          Migrate the datastream from one control group to another, returning list of versions migrated.
 Date modifyObject(Context context, String pid, String state, String label, String ownerId, String logMessage, Date lastModifiedDate)
           
 Date[] purgeDatastream(Context context, String pid, String datastreamID, Date startDT, Date endDT, String logMessage)
           
 Date purgeObject(Context context, String pid, String logMessage)
           
 boolean purgeRelationship(Context context, String subject, String relationship, String object, boolean isLiteral, String datatype)
           
 String putTempStream(Context context, InputStream in)
           
 Date setDatastreamState(Context context, String pid, String datastreamID, String dsState, String logMessage)
           
 Date setDatastreamVersionable(Context context, String pid, String datastreamID, boolean versionable, String logMessage)
           
 Validation validate(Context context, String pid, Date asOfDateTime)
          Validate the object against the datacontracts from the objects content model.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultManagement

public DefaultManagement(Authorization authz,
                         DOManager doMgr,
                         ExternalContentManager ecMgr,
                         int uploadMinutes,
                         int lastId,
                         File tempDir,
                         Hashtable<String,Long> uploadStartTime,
                         long purgeDelayInMillis)
Parameters:
purgeDelayInMillis - milliseconds to delay before removing old uploaded files
Method Detail

ingest

public String ingest(Context context,
                     InputStream serialization,
                     String logMessage,
                     String format,
                     String encoding,
                     String pid)
              throws ServerException
Specified by:
ingest in interface Management
Throws:
ServerException

modifyObject

public Date modifyObject(Context context,
                         String pid,
                         String state,
                         String label,
                         String ownerId,
                         String logMessage,
                         Date lastModifiedDate)
                  throws ServerException
Specified by:
modifyObject in interface Management
Throws:
ServerException

getObjectXML

public InputStream getObjectXML(Context context,
                                String pid,
                                String encoding)
                         throws ServerException
Specified by:
getObjectXML in interface Management
Throws:
ServerException

export

public InputStream export(Context context,
                          String pid,
                          String format,
                          String exportContext,
                          String encoding)
                   throws ServerException
Specified by:
export in interface Management
Throws:
ServerException

purgeObject

public Date purgeObject(Context context,
                        String pid,
                        String logMessage)
                 throws ServerException
Specified by:
purgeObject in interface Management
Throws:
ServerException

addDatastream

public String addDatastream(Context context,
                            String pid,
                            String dsID,
                            String[] altIDs,
                            String dsLabel,
                            boolean versionable,
                            String MIMEType,
                            String formatURI,
                            String dsLocation,
                            String controlGroup,
                            String dsState,
                            String checksumType,
                            String checksum,
                            String logMessage)
                     throws ServerException
Specified by:
addDatastream in interface Management
Throws:
ServerException

modifyDatastreamByReference

public Date modifyDatastreamByReference(Context context,
                                        String pid,
                                        String datastreamId,
                                        String[] altIDs,
                                        String dsLabel,
                                        String mimeType,
                                        String formatURI,
                                        String dsLocation,
                                        String checksumType,
                                        String checksum,
                                        String logMessage,
                                        Date lastModifiedDate)
                                 throws ServerException
Specified by:
modifyDatastreamByReference in interface Management
Throws:
ServerException

modifyDatastreamByValue

public Date modifyDatastreamByValue(Context context,
                                    String pid,
                                    String datastreamId,
                                    String[] altIDs,
                                    String dsLabel,
                                    String mimeType,
                                    String formatURI,
                                    InputStream dsContent,
                                    String checksumType,
                                    String checksum,
                                    String logMessage,
                                    Date lastModifiedDate)
                             throws ServerException
Specified by:
modifyDatastreamByValue in interface Management
Throws:
ServerException

purgeDatastream

public Date[] purgeDatastream(Context context,
                              String pid,
                              String datastreamID,
                              Date startDT,
                              Date endDT,
                              String logMessage)
                       throws ServerException
Specified by:
purgeDatastream in interface Management
Throws:
ServerException

getDatastream

public Datastream getDatastream(Context context,
                                String pid,
                                String datastreamID,
                                Date asOfDateTime)
                         throws ServerException
Specified by:
getDatastream in interface Management
Throws:
ServerException

getDatastreams

public Datastream[] getDatastreams(Context context,
                                   String pid,
                                   Date asOfDateTime,
                                   String state)
                            throws ServerException
Specified by:
getDatastreams in interface Management
Throws:
ServerException

getDatastreamHistory

public Datastream[] getDatastreamHistory(Context context,
                                         String pid,
                                         String datastreamID)
                                  throws ServerException
Specified by:
getDatastreamHistory in interface Management
Throws:
ServerException

getNextPID

public String[] getNextPID(Context context,
                           int numPIDs,
                           String namespace)
                    throws ServerException
Specified by:
getNextPID in interface Management
Throws:
ServerException

putTempStream

public String putTempStream(Context context,
                            InputStream in)
                     throws StreamWriteException,
                            AuthzException
Specified by:
putTempStream in interface Management
Throws:
StreamWriteException
AuthzException

getTempStream

public InputStream getTempStream(String id)
                          throws StreamReadException
Specified by:
getTempStream in interface Management
Throws:
StreamReadException

setDatastreamState

public Date setDatastreamState(Context context,
                               String pid,
                               String datastreamID,
                               String dsState,
                               String logMessage)
                        throws ServerException
Specified by:
setDatastreamState in interface Management
Throws:
ServerException

setDatastreamVersionable

public Date setDatastreamVersionable(Context context,
                                     String pid,
                                     String datastreamID,
                                     boolean versionable,
                                     String logMessage)
                              throws ServerException
Specified by:
setDatastreamVersionable in interface Management
Throws:
ServerException

compareDatastreamChecksum

public String compareDatastreamChecksum(Context context,
                                        String pid,
                                        String datastreamID,
                                        Date versionDate)
                                 throws ServerException
Specified by:
compareDatastreamChecksum in interface Management
Throws:
ServerException

getRelationships

public RelationshipTuple[] getRelationships(Context context,
                                            String subject,
                                            String relationship)
                                     throws ServerException
Specified by:
getRelationships in interface Management
Throws:
ServerException

addRelationship

public boolean addRelationship(Context context,
                               String subject,
                               String relationship,
                               String object,
                               boolean isLiteral,
                               String datatype)
                        throws ServerException
Specified by:
addRelationship in interface Management
Throws:
ServerException

purgeRelationship

public boolean purgeRelationship(Context context,
                                 String subject,
                                 String relationship,
                                 String object,
                                 boolean isLiteral,
                                 String datatype)
                          throws ServerException
Specified by:
purgeRelationship in interface Management
Throws:
ServerException

validate

public Validation validate(Context context,
                           String pid,
                           Date asOfDateTime)
                    throws ServerException
Validate the object against the datacontracts from the objects content model. This method just delegates the validation to EcmValidator

Specified by:
validate in interface Management
Parameters:
context - the call context
pid - the pid of the object to validate
asOfDateTime - the datetime to get to object as
Returns:
The result of the validation
Throws:
ServerException
See Also:
EcmValidator

modifyDatastreamControlGroup

public Date[] modifyDatastreamControlGroup(Context context,
                                           String pid,
                                           String dsID,
                                           String controlGroup,
                                           boolean addXMLHeader,
                                           boolean reformat,
                                           boolean setMIMETypeCharset)
                                    throws ServerException
Migrate the datastream from one control group to another, returning list of versions migrated. Only supports migration from X (inline) to M (managed content). Returns an array of date/times of the datastream versions migrated (empty if datastream already had the desired control group). Throws ObjectNotFoundException/DatastreamNotFoundException if object or datastream does not exist.

Parameters:
context -
pid -
dsID -
controlGroup - - new Control Group for datastream
ignoreAlreadyDone - - if true don't return an error if datastream already has desired control group
addXMLHeader - - add an XML header declaring UTF-8 character encoding to datastream content
reformat - - reformat the XML (in the same format as used for inline XML)
setMIMETypeCharset - - add charset declaration (UTF-8) to the MIMEType, and add text/xml MIMEType if no MIMEType is set
Returns:
array of versions migrated
Throws:
ServerException


Copyright © 2011 DuraSpace. All Rights Reserved.