package org.fcrepo.client.mtom;
import java.math.BigInteger;
import java.util.List;
import javax.activation.DataHandler;
import org.fcrepo.client.SwingWorker;
import org.fcrepo.server.types.gen.ArrayOfString;
import org.fcrepo.server.types.gen.Datastream;
import org.fcrepo.server.types.gen.RelationshipTuple;
import org.fcrepo.server.types.gen.Validation;
public class APIMStubWrapper
implements org.fcrepo.server.management.FedoraAPIMMTOM {
/** The wrapped instance */
private final org.fcrepo.server.management.FedoraAPIMMTOM m_instance;
public APIMStubWrapper(org.fcrepo.server.management.FedoraAPIMMTOM instance) {
m_instance = instance;
}
@Override
public String ingest(final DataHandler objectXML,
final String format,
final String logMessage){
String buf = "Ingest";
// Run the method in a SwingWorker thread
SwingWorker<String> worker = new SwingWorker<String>() {
@Override
public String construct() {
// call wrapped method
return m_instance.ingest(objectXML,
format,
logMessage);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public String modifyObject(final String pid,
final String state,
final String label,
final String ownerId,
final String logMessage){
String buf = "Modify object";
// Run the method in a SwingWorker thread
SwingWorker<String> worker = new SwingWorker<String>() {
@Override
public String construct() {
// call wrapped method
return m_instance.modifyObject(pid,
state,
label,
ownerId,
logMessage);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public DataHandler getObjectXML(final String pid){
String buf = "Get object XML";
// Run the method in a SwingWorker thread
SwingWorker<DataHandler> worker = new SwingWorker<DataHandler>() {
@Override
public DataHandler construct() {
// call wrapped method
return m_instance.getObjectXML(pid);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public DataHandler export(final String pid,
final String format,
final String context){
String buf = "Export";
// Run the method in a SwingWorker thread
SwingWorker<DataHandler> worker = new SwingWorker<DataHandler>() {
@Override
public DataHandler construct() {
// call wrapped method
return m_instance.export(pid,
format,
context);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public String purgeObject(final String pid,
final String logMessage,
final boolean force){
String buf = "Purge object";
// Run the method in a SwingWorker thread
SwingWorker<String> worker = new SwingWorker<String>() {
@Override
public String construct() {
// call wrapped method
return m_instance
.purgeObject(pid,
logMessage,
force);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public String addDatastream(final String pid,
final String dsID,
final ArrayOfString altIDs,
final String dsLabel,
final boolean versionable,
final String MIMEType,
final String formatURI,
final String dsLocation,
final String controlGroup,
final String dsState,
final String checksumType,
final String checksum,
final String logMessage){
String buf = "Add datastream";
// Run the method in a SwingWorker thread
SwingWorker<String> worker = new SwingWorker<String>() {
@Override
public String construct() {
// call wrapped method
return m_instance
.addDatastream(pid,
dsID,
altIDs,
dsLabel,
versionable,
MIMEType,
formatURI,
dsLocation,
controlGroup,
dsState,
checksumType,
checksum,
logMessage);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public String modifyDatastreamByReference(final String pid,
final String dsID,
final ArrayOfString altIDs,
final String dsLabel,
final String MIMEType,
final String formatURI,
final String dsLocation,
final String checksumType,
final String checksum,
final String logMessage,
final boolean force){
String buf = "Modify datastream by reference";
// Run the method in a SwingWorker thread
SwingWorker<String> worker = new SwingWorker<String>() {
@Override
public String construct() {
// call wrapped method
return m_instance
.modifyDatastreamByReference(pid,
dsID,
altIDs,
dsLabel,
MIMEType,
formatURI,
dsLocation,
checksumType,
checksum,
logMessage,
force);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public String modifyDatastreamByValue(final String pid,
final String dsID,
final ArrayOfString altIDs,
final String dsLabel,
final String MIMEType,
final String formatURI,
final DataHandler dsContent,
final String checksumType,
final String checksum,
final String logMessage,
final boolean force){
String buf = "Modify datastream by value";
// Run the method in a SwingWorker thread
SwingWorker<String> worker = new SwingWorker<String>() {
@Override
public String construct() {
// call wrapped method
return m_instance
.modifyDatastreamByValue(pid,
dsID,
altIDs,
dsLabel,
MIMEType,
formatURI,
dsContent,
checksumType,
checksum,
logMessage,
force);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public String setDatastreamState(final String pid,
final String dsID,
final String dsState,
final String logMessage){
String buf = "Set datastream state";
// Run the method in a SwingWorker thread
SwingWorker<String> worker = new SwingWorker<String>() {
@Override
public String construct() {
return m_instance
.setDatastreamState(pid, dsID, dsState, logMessage);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public String setDatastreamVersionable(final String pid,
final String dsID,
final boolean versionable,
final String logMessage){
String buf = "Set datastream versionable";
// Run the method in a SwingWorker thread
SwingWorker<String> worker = new SwingWorker<String>() {
@Override
public String construct() {
// call wrapped method
return m_instance
.setDatastreamVersionable(pid,
dsID,
versionable,
logMessage);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public String compareDatastreamChecksum(final String pid,
final String dsID,
final String versionDate){
String buf = "Compare datastream checksum";
// Run the method in a SwingWorker thread
SwingWorker<String> worker = new SwingWorker<String>() {
@Override
public String construct() {
// call wrapped method
return m_instance
.compareDatastreamChecksum(pid, dsID, versionDate);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public Datastream getDatastream(final String pid,
final String dsID,
final String asOfDateTime){
String buf = "Get datastream";
// Run the method in a SwingWorker thread
SwingWorker<Datastream> worker = new SwingWorker<Datastream>() {
@Override
public Datastream construct() {
// call wrapped method
return m_instance
.getDatastream(pid,
dsID,
asOfDateTime);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public List<Datastream> getDatastreams(final String pid,
final String asOfDateTime,
final String dsState){
String buf = "Get datastreams";
// Run the method in a SwingWorker thread
SwingWorker<List<Datastream>> worker =
new SwingWorker<List<Datastream>>() {
@Override
public List<Datastream> construct() {
// call wrapped method
return m_instance.getDatastreams(pid, asOfDateTime, dsState);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public List<Datastream> getDatastreamHistory(final String pid,
final String dsID){
String buf = "Get datastream history";
// Run the method in a SwingWorker thread
SwingWorker<List<Datastream>> worker =
new SwingWorker<List<Datastream>>() {
@Override
public List<Datastream> construct() {
// call wrapped method
return m_instance
.getDatastreamHistory(pid, dsID);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public List<String> purgeDatastream(final String pid,
final String dsID,
final String startDT,
final String endDT,
final String logMessage,
final boolean force){
String buf = "Purge datastream";
// Run the method in a SwingWorker thread
SwingWorker<List<String>> worker =
new SwingWorker<List<String>>() {
@Override
public List<String> construct() {
// call wrapped method
return m_instance
.purgeDatastream(pid, dsID, startDT, endDT,
logMessage, force);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public List<String> getNextPID(final BigInteger numPIDs,
final String pidNamespace){
String buf = "Get next PID";
// Run the method in a SwingWorker thread
SwingWorker<List<String>> worker =
new SwingWorker<List<String>>() {
@Override
public List<String> construct() {
// call wrapped method
return m_instance
.getNextPID(numPIDs, pidNamespace);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public List<RelationshipTuple> getRelationships(final String pid,
final String relationship){
String buf = "Get relationships";
// Run the method in a SwingWorker thread
SwingWorker<List<RelationshipTuple>> worker =
new SwingWorker<List<RelationshipTuple>>() {
@Override
public List<RelationshipTuple> construct() {
// call wrapped method
return m_instance.getRelationships(pid, relationship);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public boolean addRelationship(final String pid,
final String relationship,
final String object,
final boolean isLiteral,
final String datatype){
String buf = "Add relationship";
// Run the method in a SwingWorker thread
SwingWorker<Boolean> worker = new SwingWorker<Boolean>() {
@Override
public Boolean construct() {
// call wrapped method
return m_instance.addRelationship(pid,
relationship, object, isLiteral, datatype);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public boolean purgeRelationship(final String pid,
final String relationship,
final String object,
final boolean isLiteral,
final String datatype){
String buf = "Purge relationship";
// Run the method in a SwingWorker thread
SwingWorker<Boolean> worker = new SwingWorker<Boolean>() {
@Override
public Boolean construct() {
// call wrapped method
return m_instance
.purgeRelationship(pid,
relationship,
object,
isLiteral,
datatype);
}
};
return SwingWorker.waitForResult(worker, buf);
}
@Override
public Validation validate(final String pid,
final String asOfDateTime){
String buf = "Validate";
// Run the method in a SwingWorker thread
SwingWorker<Validation> worker = new SwingWorker<Validation>() {
@Override
public Validation construct() {
// call wrapped method
return m_instance.validate(pid, asOfDateTime);
}
};
return SwingWorker.waitForResult(worker, buf);
}
}