/** * Copy constructor for a DcsManifestation. The state of <code>toCopy</code> is copied * to this. * * @param toCopy the dcs manifestation to copy */ public DcsManifestation(DcsManifestation toCopy) { super(toCopy); this.deliverableUnit = toCopy.getDeliverableUnit(); this.metadata = toCopy.getMetadata(); this.manifestationFiles = toCopy.getManifestationFiles(); this.metadataRef = toCopy.getMetadataRef(); this.technicalEnvironment = toCopy.getTechnicalEnvironment(); this.type = toCopy.getType(); this.dateCreated = toCopy.getDateCreated(); }
if (idMap.containsKey(m.getDeliverableUnit())) { m.setDeliverableUnit(idMap.get(m.getDeliverableUnit())); for (DcsManifestationFile mf : m.getManifestationFiles()) { final String originalFileId = mf.getRef().getRef(); if (idMap.containsKey(originalFileId)) { m.setManifestationFiles(updatedMfs);
private static DcsManifestation getManifestation(SolrDocument doc) { DcsManifestation man = new DcsManifestation(); man.setId(getFirst(doc, EntityField.ID)); if (has(doc, ManifestationField.DELIVERABLE_UNIT)) { man.setDeliverableUnit(getFirst(doc, ManifestationField.DELIVERABLE_UNIT)); } man.setMetadata(getMetadataSet(doc)); man.setMetadataRef(getMetadataRefSet(doc, EntityField.METADATA_REF)); man.setManifestationFiles(getManifestationFileSet(doc)); if (has(doc, CoreMetadataField.TYPE)) { man.setType(getFirst(doc, CoreMetadataField.TYPE)); } man.setTechnicalEnvironment(getStringSet(doc, ManifestationField.TECH)); if (has(doc, ManifestationField.DATE_CREATED)) { man.setDateCreated(DateUtility.toIso8601(((Date) doc .getFirstValue(ManifestationField.DATE_CREATED.solrName())) .getTime())); } man.setAlternateIds(getResourceIdentifierSet(doc)); return man; }
private void updateManifestationAncestry( Map<String, List<String>> ancestrymap, Collection<DcsManifestation> set) throws IOException, SolrServerException { for (DcsManifestation man : set) { List<String> ancestors = new ArrayList<String>(2); ancestrymap.put(man.getId(), ancestors); updateAncestry(ancestrymap, man.getId(), man.getDeliverableUnit()); for (DcsManifestationFile mf : man.getManifestationFiles()) { updateAncestry(ancestrymap, mf.getRef(), man.getId()); } for (DcsMetadataRef ref : man.getMetadataRef()) { updateAncestry(ancestrymap, ref, man.getId()); } } }
protected DcsManifestation getFirstManifestationOf(Dcp dcp, DcsDeliverableUnit du, String man_type) { for (DcsManifestation test : dcp.getManifestations()) { if (test.getDeliverableUnit().equals(du.getId()) && test.getType().equals(man_type)) { return test; } } return null; }
dataSetMdMetadataManFile.setPath("/" + dataSetMd.getName()); dataSetMdMetadataManFile.setRef(new DcsFileRef(dataSetMd.getId())); final DcsManifestation dataSetMdManifestation = new DcsManifestation(); dataSetMdManifestation.setId(UUID.randomUUID().toString()); dataSetMdManifestation.addTechnicalEnvironment(DATASET_METADATA_TECHENV); dataSetMdManifestation.addManifestationFile(dataSetMdMetadataManFile); dataSetMdManifestation.setDeliverableUnit(dataSetStateDu.getId());
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final DcsManifestation m = new DcsManifestation(); m.setId(reader.getAttribute(A_ID)); m.setDateCreated(reader.getAttribute(A_DATE_CREATED)); m.setDeliverableUnit(reader.getAttribute(A_REF)); context.convertAnother(m, DcsManifestationFile.class); if (mf != null) { m.addManifestationFile(mf); final DcsMetadataRef mdRef = (DcsMetadataRef) context.convertAnother(m, DcsMetadataRef.class); if (mdRef != null) { m.addMetadataRef(mdRef); m.addMetadata(md); final String value = reader.getValue(); if (!isEmptyOrNull(value)) { m.addTechnicalEnvironment(value); final String value = reader.getValue(); if (!isEmptyOrNull(value)) { m.setType(value);
while (manItr.hasNext() && man == null) { DcsManifestation candidateMan = manItr.next(); if (du.getId().equals(candidateMan.getDeliverableUnit()) && candidateMan.getTechnicalEnvironment().size() > 0 && candidateMan.getTechnicalEnvironment().iterator().next().startsWith(METADATASCHEME_REGISTRY_ENTRY_TYPE)) { man = candidateMan; while (fileItr.hasNext() && file == null) { DcsFile candidateFile = fileItr.next(); for (DcsManifestationFile mf : man.getManifestationFiles()) { if (mf.getRef().getRef().equals(candidateFile.getId()) && candidateFile.getName().equals("schema-source")) {
if (candidate.getDeliverableUnit().equals(du.getId()) && candidate.getType().equals(SCHEME_FILE_MAN_TYPE)) { man = candidate; break; if (candidate.getDeliverableUnit().equals(du.getId()) && candidate.getType().equals(SCHEME_SERIALIZATION_MAN_TYPE)) { serializationMan = candidate; break; DcsFile serializationFile = (DcsFile) DcpUtil.asMap(dcp).get(serializationMan.getManifestationFiles().iterator().next().getRef().getRef()); DcsFile file = (DcsFile) DcpUtil.asMap(dcp).get(man.getManifestationFiles().iterator().next().getRef().getRef());
private Set<String> getManifestationRefs(DcsEntity manifestation) { Set<String> rels = new HashSet<String>(); DcsManifestation m = (DcsManifestation) manifestation; for (DcsEntityReference ref : m.getMetadataRef()) { rels.add(ref.getRef()); } for (DcsManifestationFile file : m.getManifestationFiles()) { rels.add(file.getRef().getRef()); } if (m.getDeliverableUnit() != null) { rels.add(m.getDeliverableUnit()); } return rels; } }
DcsManifestation man = (DcsManifestation) entity; if (man.getDeliverableUnit() != null && man.getDeliverableUnit().equals(parent.getId())) { result.add(entity); add_descendants(entity, entities, result); DcsFileRef file_ref = new DcsFileRef(entity.getId()); for (DcsManifestationFile mf : ((DcsManifestation) parent).getManifestationFiles()) { if (mf.getRef() != null && mf.getRef().equals(file_ref)) { result.add(entity);
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; }
resultMap.get(currentManifestation.getDeliverableUnit()); flattenEventsHashMap.get(currentManifestation.getId()); .getManifestationFiles()) {
if (test.getTechnicalEnvironment() != null) { if (DATA_SET_METADATA_TECH_ENV.evaluate(test.getTechnicalEnvironment(), CollectionMatchStrategy.AT_LEAST_ONE)) { dataItemMan = test; break; if (test.getType().equals(DATASET_STATE_TYPE) && dataItemMan.getDeliverableUnit().equals(test.getId())) { return test;
/** * 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; }
private Set<String> getManifestationEntities(String entityId, InputStream content, Metadata md, boolean initial) { Set<String> entities = new HashSet<String>(); entities.add(entityId); try { DcsManifestation man = builder.buildManifestation(content); /* * A manifestation's metadata files are significantly related */ for (DcsEntityReference ref : man.getMetadataRef()) { entities.add(ref.getRef()); } /* A manifestation's files are significantly related */ for (DcsManifestationFile f : man.getManifestationFiles()) { entities.add(f.getRef().getRef()); } } catch (InvalidXmlException e) { throw new RuntimeException(e); } finally { try { content.close(); } catch (Exception e) { } } /* A manifestation's events are significantly related */ addRelated(md, entities, EVENT); return entities; }
for (DcsManifestationFile mf: man.getManifestationFiles()) { DcsEntityReference target_ref = mf.getRef(); ancestors.add(man.getId()); List<String> man_ancestors = ancestrymap.get(man.getId());
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; }
private DcsManifestation getManifestation(String id) { for (DcsManifestation m : dcp.getManifestations()) { if (m.getId().equals(id)) { return m; } } throw new IllegalStateException("No manifestation present with id " + id); }
public Set<DcsManifestation> getManifestations() { final Set<DcsManifestation> manifestations = new HashSet<DcsManifestation>(this.manifestations.size()); for (DcsManifestation man : this.manifestations) { manifestations.add(new DcsManifestation(man)); } return manifestations; }