private String findTfPackagePayload(DigitalObject digitalObject) { for (String payloadId : digitalObject.getPayloadIdList()) { if (payloadId.endsWith("tfpackage")) { return payloadId; } } return null; }
/** * For the given digital object, find the Fascinator package inside. * * @param object : The object with a package * @return String : The payload ID of the package, NULL if not found * @throws Exception if any errors occur */ private String getPackagePid(DigitalObject object) throws Exception { for (String pid : object.getPayloadIdList()) { if (pid.endsWith(".tfpackage")) { return pid; } } return null; }
/** * For the given digital object, find the Fascinator package inside. * * @param object The object with a package * @return String The payload ID of the package, NULL if not found * @throws Exception if any errors occur */ private String getPackagePid(DigitalObject object) throws Exception { for (String pid : object.getPayloadIdList()) { if (pid.endsWith(".tfpackage")) { return pid; } } return null; }
private String findTFPackageId(String storageId) throws StorageException { DigitalObject object = storage.getObject(storageId); if (object.getPayload("metadata.tfpackage") != null) { return "metadata.tfpackage"; } for (String payloadId : object.getPayloadIdList()) { if (payloadId.endsWith(".tfpackage")) { return payloadId; } } return "metadata.tfpackage"; }
/** * Get the data payload (ending in '.tfpackage') from the provided object. * * @param object * The digital object holding our payload * @return Payload The payload requested * @throws StorageException * if an errors occurs or the payload is not found */ private Payload getDataPayload(DigitalObject object) throws StorageException { for (String pid : object.getPayloadIdList()) { if (pid.endsWith(DATA_PAYLOAD_SUFFIX)) { return object.getPayload(pid); } } throw new StorageException("Data payload not found on storage!"); }
/** * Update the data payload (ending in '.tfpackage') in the provided object. * * @param object * The digital object holding our payload * @param input * The String to store * @throws StorageException * if an errors occurs or the payload is not found */ private void updateDataPayload(DigitalObject object, String input) throws StorageException { try { for (String pid : object.getPayloadIdList()) { if (pid.endsWith(DATA_PAYLOAD_SUFFIX)) { InputStream inStream = new ByteArrayInputStream( input.getBytes("UTF-8")); object.updatePayload(pid, inStream); return; } } throw new StorageException("Data payload not found on storage!"); } catch (Exception ex) { throw new StorageException("Error storing payload data!", ex); } } }
@Override public void removeObject(String oid) throws StorageException { // log.debug("removeObject(" + oid + ")"); File objHome = getPath(oid); if (objHome.exists()) { DigitalObject object = new FileSystemDigitalObject(objHome, oid); String[] oldManifest = {}; oldManifest = object.getPayloadIdList().toArray(oldManifest); for (String pid : oldManifest) { try { object.removePayload(pid); } catch (StorageException ex) { log.error("Error deleting payload", ex); } } try { object.close(); FileUtils.deleteDirectory(objHome); } catch (IOException ex) { throw new StorageException("Error deleting object", ex); } } else { throw new StorageException("oID '" + oid + "' doesn't exist in storage : " + objHome.getPath()); } }
/** * Index an object and all of its payloads * * @param oid : The identifier of the object * @throws IndexerException if there were errors during indexing */ @Override public void index(String oid) throws IndexerException { try { DigitalObject object = storage.getObject(oid); // Some workflow actions create payloads, so we can't iterate // directly against the object. String[] oldManifest = {}; oldManifest = object.getPayloadIdList().toArray(oldManifest); for (String payloadId : oldManifest) { Payload payload = object.getPayload(payloadId); index(object, payload); } } catch (StorageException ex) { throw new IndexerException(ex); } }
try { for (String payloadId : in.getPayloadIdList()) { if (payloadId.endsWith(source)) { source = payloadId;
@SuppressWarnings("unchecked") @ApiOperation(value = "List datastreams in an object", tags = "datastream") @ApiResponses({ @ApiResponse(code = 200, message = "The datastreams are listed"), @ApiResponse(code = 500, message = "Oid does not exist in storage", response = StorageException.class) }) @Get("json") public JsonRepresentation getDatastreamList() throws StorageException, IOException { Storage storage = (Storage) ApplicationContextProvider.getApplicationContext().getBean("fascinatorStorage"); String oid = getAttribute("oid"); DigitalObject digitalObject = StorageUtils.getDigitalObject(storage, oid); JsonObject responseObject = getSuccessResponse(oid); JSONArray dataStreamIds = new JSONArray(); dataStreamIds.addAll(digitalObject.getPayloadIdList()); responseObject.put("datastreamIds", dataStreamIds); return new JsonRepresentation(new JsonSimple(responseObject).toString(true)); }