/* The contents of this file are subject to the license and copyright terms
* detailed in the license directory at the root of the source tree (also
* available online at http://fedora-commons.org/license/).
*/
package org.fcrepo.server.management;
import org.fcrepo.server.Context;
import org.fcrepo.server.errors.ServerException;
import org.fcrepo.server.messaging.PName;
import org.fcrepo.server.storage.types.Datastream;
import org.fcrepo.server.storage.types.RelationshipTuple;
import org.fcrepo.server.storage.types.Validation;
import java.io.InputStream;
import java.util.Date;
import javax.ws.rs.core.StreamingOutput;
/**
* The management subsystem interface.
*
* @author Chris Wilper
* @version $Id$
*/
public interface Management {
public String ingest(@PName("context") Context context,
@PName("serialization") InputStream serialization,
@PName("logMessage") String logMessage,
@PName("format") String format,
@PName("encoding") String encoding,
@PName("pid") String pid) throws ServerException;
public Date modifyObject(@PName("context") Context context,
@PName("pid") String pid,
@PName("state") String state,
@PName("label") String label,
@PName("ownerID") String ownerID,
@PName("logMessage") String logMessage,
@PName("lastModifiedDate") Date lastModifiedDate) throws ServerException;
public InputStream getObjectXML(@PName("context") Context context, @PName("pid") String pid,
@PName("encoding") String encoding)
throws ServerException;
public InputStream export(@PName("context") Context context,
@PName("pid") String pid,
@PName("format") String format,
@PName("exportContext") String exportContext,
@PName("encoding") String encoding) throws ServerException;
public StreamingOutput stream(@PName("context") Context context,
@PName("pid") String pid,
@PName("format") String format,
@PName("exportContext") String exportContext,
@PName("encoding") String encoding) throws ServerException;
public Date purgeObject(@PName("context") Context context,
@PName("pid") String pid,
@PName("logMessage") String logMessage) throws ServerException;
public String addDatastream(@PName("context") Context context,
@PName("pid") String pid,
@PName("dsID") String dsID,
@PName("altIDs") String[] altIDs,
@PName("dsLabel") String dsLabel,
@PName("versionable") boolean versionable,
@PName("mimeType") String mimeType,
@PName("formatURI") String formatURI,
@PName("dsLocation") String dsLocation,
@PName("controlGroup") String controlGroup,
@PName("dsState") String dsState,
@PName("checksumType") String checksumType,
@PName("checksum") String checksum,
@PName("logMessage") String logMessage) throws ServerException;
public Date modifyDatastreamByReference(@PName("context") Context context,
@PName("pid") String pid,
@PName("dsID") String dsID,
@PName("altIDs") String[] altIDs,
@PName("dsLabel") String dsLabel,
@PName("mimeType") String mimeType,
@PName("formatURI") String formatURI,
@PName("dsLocation") String dsLocation,
@PName("checksumType") String checksumType,
@PName("checksum") String checksum,
@PName("logMessage") String logMessage,
@PName("lastModifiedDate") Date lastModifiedDate)
throws ServerException;
public Date modifyDatastreamByValue(@PName("context") Context context,
@PName("pid") String pid,
@PName("dsID") String dsID,
@PName("altIDs") String[] altIDs,
@PName("dsLabel") String dsLabel,
@PName("mimeType") String mimeType,
@PName("formatURI") String formatURI,
@PName("dsContent") InputStream dsContent,
@PName("checksumType") String checksumType,
@PName("checksum") String checksum,
@PName("logMessage") String logMessage,
@PName("lastModifiedDate") Date lastModifiedDate) throws ServerException;
public Date[] purgeDatastream(@PName("context") Context context,
@PName("pid") String pid,
@PName("dsID") String dsID,
@PName("startDT") Date startDT,
@PName("endDT") Date endDT,
@PName("logMessage") String logMessage) throws ServerException;
public Datastream getDatastream(@PName("context") Context context,
@PName("pid") String pid,
@PName("dsID") String dsID,
@PName("asOfDateTime") Date asOfDateTime) throws ServerException;
public Datastream[] getDatastreams(@PName("context") Context context,
@PName("pid") String pid,
@PName("asOfDateTime") Date asOfDateTime,
@PName("dsState") String dsState) throws ServerException;
public Datastream[] getDatastreamHistory(@PName("context") Context context,
@PName("pid") String pid,
@PName("dsID") String dsID)
throws ServerException;
public String putTempStream(@PName("context") Context context, @PName("in") InputStream in)
throws ServerException;
public InputStream getTempStream(@PName("id") String id) throws ServerException;
public Date setDatastreamState(@PName("context") Context context,
@PName("pid") String pid,
@PName("dsID") String dsID,
@PName("dsState") String dsState,
@PName("logMessage") String logMessage) throws ServerException;
public Date setDatastreamVersionable(@PName("context") Context context,
@PName("pid") String pid,
@PName("dsID") String dsID,
@PName("versionable") boolean versionable,
@PName("logMessage") String logMessage)
throws ServerException;
public String compareDatastreamChecksum(@PName("context") Context context,
@PName("pid") String pid,
@PName("dsID") String dsID,
@PName("asOfDateTime") Date asOfDateTime)
throws ServerException;
public String[] getNextPID(@PName("context") Context context, @PName("numPIDs") int numPIDs,
@PName("namespace") String namespace)
throws ServerException;
public RelationshipTuple[] getRelationships(@PName("context") Context context,
@PName("subject") String subject,
@PName("relationship") String relationship)
throws ServerException;
public boolean addRelationship(@PName("context") Context context,
@PName("subject") String subject,
@PName("relationship") String relationship,
@PName("object") String object,
@PName("isLiteral") boolean isLiteral,
@PName("datatype") String datatype) throws ServerException;
public boolean purgeRelationship(@PName("context") Context context,
@PName("subject") String subject,
@PName("relationship") String relationship,
@PName("object") String object,
@PName("isLiteral") boolean isLiteral,
@PName("datatype") String datatype) throws ServerException;
public Validation validate(@PName("context") Context context,
@PName("pid") String pid,
@PName("asOfDateTime") Date asOfDateTime) throws ServerException;
}