/** * Returns true if the supplied {@code dcp} contains a Manifestation File that references {@code target}. Returns * false otherwise. * * @param dcp the dcp * @param target the target of a manifestation file reference * @return true if the dcp contains a manifestation file referencing target. */ public boolean hasManifestationFile(Dcp dcp, String target) { for (DcsManifestation man : dcp.getManifestations()) { for (DcsManifestationFile mf : man.getManifestationFiles()) { if (mf.getRef().getRef().equals(target)) { return true; } } } return false; }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final DcsManifestationFile mf = new DcsManifestationFile(); // in <manifestationFile> if (!isEmptyOrNull(reader.getAttribute(A_REF))) { mf.setRef(new DcsFileRef(reader.getAttribute(A_REF))); } while (reader.hasMoreChildren()) { reader.moveDown(); final String name = getElementName(reader); //reader.getNodeName(); if (name.equals(E_PATH)) { final String value = reader.getValue(); if (!isEmptyOrNull(value)) { mf.setPath(value); } } if (name.equals(E_REL)) { final DcsRelation rel = (DcsRelation)context.convertAnother(mf, DcsRelation.class); if (rel != null) { mf.addRel(rel); } } reader.moveUp(); } return mf; }
/** * Copy constructor for a DcsManifestationFile. The state of <code>toCopy</code> is copied * to this. * * @param toCopy the dcs manifestation file to copy */ public DcsManifestationFile(DcsManifestationFile toCopy) { this.path = toCopy.getPath(); this.ref = toCopy.getRef(); this.relSet = toCopy.getRelSet(); }
public DcsManifestation createManifestation(String du, List<DcsFile> files) { DcsManifestation man = new DcsManifestation(); man.setId(nextid()); man.setDeliverableUnit(du); man.setDateCreated(DateUtility.toIso8601(DateUtility.now())); man.setMetadata(createMetadataSet(rand.nextInt(3))); man.setMetadataRef(createMetadataRefSet(rand.nextInt(2))); int numfiles = rand.nextInt(10); for (int i = 0; i < numfiles; i++) { DcsManifestationFile manfile = new DcsManifestationFile(); DcsFile file = createFile(); files.add(file); manfile.setRef(new DcsFileRef(file.getId())); manfile.setPath(randomString(10, false)); if (rand.nextBoolean()) { manfile.setRelSet(createRelations(rand.nextInt(2))); } man.addManifestationFile(manfile); } return man; }
final DcsManifestationFile dataSetMdMetadataManFile = new DcsManifestationFile(); dataSetMdMetadataManFile.setPath("/" + dataSetMd.getName()); dataSetMdMetadataManFile.setRef(new DcsFileRef(dataSetMd.getId())); final DcsManifestation dataSetMdManifestation = new DcsManifestation(); dataSetMdManifestation.setId(UUID.randomUUID().toString());
public DcsFile uploadFile(String path, String... manifestations) { if (manifestations.length == 0 && dcp.getManifestations().size() == 1) { return uploadFile(path, dcp.getManifestations().iterator().next() .getId()); } else if (manifestations.length == 0) { throw new IllegalStateException("Cannot add a file if there are no manifestations"); } DcsFile file = newFile(); uploadFile(file, path); for (String m : manifestations) { DcsManifestation manifestation = getManifestation(m); DcsManifestationFile dmf = new DcsManifestationFile(); dmf.setRef(new DcsFileRef(file.getId())); manifestation.addManifestationFile(dmf); saveManifestation(manifestation); } return file; }
public Set<DcsManifestationFile> getManifestationFiles() { final Set<DcsManifestationFile> mf = new HashSet<DcsManifestationFile>(this.manifestationFiles.size()); for (DcsManifestationFile manFile : this.manifestationFiles) { mf.add(new DcsManifestationFile(manFile)); } return mf; }
/** * Relationships that this manifestation file asserts. This overwrites any existing relationships. * * @param relSet a set of DcsRelations, must not be <code>null</code> */ public void setRelSet(Set<DcsRelation> relSet) { Assertion.notNull(relSet); this.relSet = new HashSet<DcsRelation>(); for (DcsRelation rel : relSet) { addRel(rel); } }
DcsManifestationFile mf = new DcsManifestationFile(); mf.setRef(new DcsFileRef(file.getId())); mf.setPath("/");
public DcsFile referenceFile(String path, String... manifestations) { if (manifestations.length == 0 && dcp.getManifestations().size() == 1) { return referenceFile(path, dcp.getManifestations().iterator() .next().getId()); } else if (manifestations.length == 0) { throw new IllegalStateException("Cannot add a file if there are no manifestations"); } DcsFile file = newFile(); URI pathUri = getUri(path); file.setSource(pathUri.toASCIIString()); file.setName(getFileName(pathUri)); for (String m : manifestations) { DcsManifestation manifestation = getManifestation(m); DcsManifestationFile dmf = new DcsManifestationFile(); dmf.setRef(new DcsFileRef(file.getId())); manifestation.addManifestationFile(dmf); saveManifestation(manifestation); } return file; }
public void setManifestationFiles(Set<DcsManifestationFile> manifestationFiles) { Assertion.notNull(manifestationFiles); this.manifestationFiles = new HashSet<DcsManifestationFile>(manifestationFiles.size()); for (DcsManifestationFile mf : manifestationFiles) { Assertion.notNull(mf); this.manifestationFiles.add(new DcsManifestationFile(mf)); } }
DcsManifestationFile mf = new DcsManifestationFile(); mf.setRef(new DcsFileRef(file.getId())); mf.setPath("/");
private DcsFile getFirstFileOf(Dcp dcp, DcsManifestation man) { for (DcsFile test : dcp.getFiles()) { for (DcsManifestationFile mf : man.getManifestationFiles()) { if (mf.getRef().getRef().equals(test.getId())) { return test; } } } return null; }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final DcsManifestationFile mf = new DcsManifestationFile(); // in <manifestationFile> if (!isEmptyOrNull(reader.getAttribute(A_REF))) { mf.setRef(new DcsFileRef(reader.getAttribute(A_REF))); } while (reader.hasMoreChildren()) { reader.moveDown(); final String name = getElementName(reader); //reader.getNodeName(); if (name.equals(E_PATH)) { final String value = reader.getValue(); if (!isEmptyOrNull(value)) { mf.setPath(value); } } if (name.equals(E_REL)) { final DcsRelation rel = (DcsRelation)context.convertAnother(mf, DcsRelation.class); if (rel != null) { mf.addRel(rel); } } reader.moveUp(); } return mf; }
DcsManifestationFile mf = new DcsManifestationFile(); DcsFile file = new DcsFile(); mf.setRef(new DcsFileRef(file.getId())); man.addManifestationFile(mf); man.addTechnicalEnvironment(XSTREAM_TECHNICAL_ENV);
@Override public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { super.marshal(source, writer, context); final DcsManifestationFile mf = (DcsManifestationFile) source; if (mf.getRef() != null) { writer.addAttribute(A_REF, mf.getRef().getRef()); } if (!isEmptyOrNull(mf.getPath())) { writer.startNode(E_PATH); writer.setValue(mf.getPath()); writer.endNode(); } if (!isNull(mf.getRelSet()) && !mf.getRelSet().isEmpty()) { for (DcsRelation rel : mf.getRelSet()) { writer.startNode(E_REL); context.convertAnother(rel); writer.endNode(); } } }