/* 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 fedora.server.management; import java.io.InputStream; import java.util.Date; import fedora.server.Context; import fedora.server.errors.ServerException; import fedora.server.messaging.PName; import fedora.server.storage.types.Datastream; import fedora.server.storage.types.RelationshipTuple; /** * 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("newPid")boolean newPid) 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) 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 Date purgeObject(@PName("context")Context context, @PName("pid")String pid, @PName("logMessage")String logMessage, @PName("force")boolean force) 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("force")boolean force) 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("force")boolean force) 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, @PName("force")boolean force) 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; }