/* 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.journal.managementmethods;
import fedora.common.Constants;
import fedora.server.errors.ServerException;
import fedora.server.journal.entry.JournalEntry;
import fedora.server.management.ManagementDelegate;
/**
* Adapter class for Management.addDatastream()
*
* @author Jim Blake
*/
public class AddDatastreamMethod
extends ManagementMethod {
public AddDatastreamMethod(JournalEntry parent) {
super(parent);
}
@Override
public Object invoke(ManagementDelegate delegate) throws ServerException {
String datastreamId =
delegate.addDatastream(parent.getContext(), parent
.getStringArgument(ARGUMENT_NAME_PID), parent
.getStringArgument(ARGUMENT_NAME_DS_ID), parent
.getStringArrayArgument(ARGUMENT_NAME_ALT_IDS), parent
.getStringArgument(ARGUMENT_NAME_DS_LABEL), parent
.getBooleanArgument(ARGUMENT_NAME_VERSIONABLE), parent
.getStringArgument(ARGUMENT_NAME_MIME_TYPE), parent
.getStringArgument(ARGUMENT_NAME_FORMAT_URI), parent
.getStringArgument(ARGUMENT_NAME_LOCATION), parent
.getStringArgument(ARGUMENT_NAME_CONTROL_GROUP), parent
.getStringArgument(ARGUMENT_NAME_DS_STATE), parent
.getStringArgument(ARGUMENT_NAME_CHECKSUM_TYPE), parent
.getStringArgument(ARGUMENT_NAME_CHECKSUM), parent
.getStringArgument(ARGUMENT_NAME_LOG_MESSAGE));
// Store the Datastream ID for writing to the journal.
parent.setRecoveryValue(Constants.RECOVERY.DATASTREAM_ID.uri,
datastreamId);
return datastreamId;
}
}