package org.fcrepo.client; import java.math.BigInteger; import java.util.HashMap; import java.util.List; 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.FedoraAPIM { /** The wrapped instance */ private final org.fcrepo.server.management.FedoraAPIM m_instance; public APIMStubWrapper(org.fcrepo.server.management.FedoraAPIM instance) { m_instance = instance; } @Override public String ingest(final byte[] 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 byte[] getObjectXML(final String pid){ String buf = "Get object XML"; // Run the method in a SwingWorker thread SwingWorker<byte[]> worker = new SwingWorker<byte[]>() { @Override public byte[] construct() { // call wrapped method return m_instance.getObjectXML(pid); } }; return SwingWorker.waitForResult(worker, buf); } @Override public byte[] export(final String pid, final String format, final String context){ String buf = "Export"; // Run the method in a SwingWorker thread SwingWorker<byte[]> worker = new SwingWorker<byte[]>() { @Override public byte[] 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 byte[] 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(java.lang.String pid, java.lang.String asOfDateTime, java.lang.String dsState){ String buf = "Get datastreams"; HashMap<String,String> PARMS = new HashMap<String,String>(3); PARMS.put("pid", pid); PARMS.put("asOfDateTime", asOfDateTime); PARMS.put("dsState", dsState); // Run the method in a SwingWorker thread SwingWorker<List<Datastream>> worker = new SwingWorker<List<Datastream>>(PARMS) { @Override public List<Datastream> construct() { // call wrapped method return m_instance.getDatastreams((java.lang.String) parms .get("pid"), (java.lang.String) parms .get("asOfDateTime"), (java.lang.String) parms .get("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 java.lang.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(java.lang.String pid, java.lang.String relationship, java.lang.String object, boolean isLiteral, java.lang.String datatype){ String buf = "Add relationship"; HashMap<String,Object> PARMS = new HashMap<String,Object>(); PARMS.put("pid", pid); PARMS.put("relationship", relationship); PARMS.put("object", object); PARMS.put("isLiteral", new Boolean(isLiteral)); PARMS.put("datatype", datatype); // Run the method in a SwingWorker thread SwingWorker<Boolean> worker = new SwingWorker<Boolean>(PARMS) { @Override public Boolean construct() { // call wrapped method return m_instance.addRelationship((java.lang.String) parms .get("pid"), (java.lang.String) parms .get("relationship"), (java.lang.String) parms .get("object"), ((Boolean) parms.get("isLiteral")) .booleanValue(), (java.lang.String) parms .get("datatype")); } }; return SwingWorker.waitForResult(worker, buf); } @Override public boolean purgeRelationship(java.lang.String pid, java.lang.String relationship, java.lang.String object, boolean isLiteral, java.lang.String datatype){ String buf = "Purge relationship"; HashMap<String,Object> PARMS = new HashMap<String, Object>(); PARMS.put("pid", pid); PARMS.put("relationship", relationship); PARMS.put("object", object); PARMS.put("isLiteral", new Boolean(isLiteral)); PARMS.put("datatype", datatype); // Run the method in a SwingWorker thread SwingWorker<Boolean> worker = new SwingWorker<Boolean>(PARMS) { @Override public Boolean construct() { // call wrapped method return m_instance .purgeRelationship((java.lang.String) parms .get("pid"), (java.lang.String) parms .get("relationship"), (java.lang.String) parms .get("object"), ((Boolean) parms .get("isLiteral")) .booleanValue(), (java.lang.String) parms .get("datatype")); } }; return SwingWorker.waitForResult(worker, buf); } @Override public Validation validate(java.lang.String pid, java.lang.String asOfDateTime){ String buf = "Validate"; HashMap<String,String> PARMS = new HashMap<String,String>(2); PARMS.put("pid", pid); PARMS.put("asOfDateTime", asOfDateTime); // Run the method in a SwingWorker thread SwingWorker<Validation> worker = new SwingWorker<Validation>(PARMS) { @Override public Validation construct() { // call wrapped method return m_instance.validate((java.lang.String) parms .get("pid"), (java.lang.String) parms .get("asOfDateTime")); } }; return SwingWorker.waitForResult(worker, buf); } }