protected static DcsEntity fromSolr(SolrDocument doc) throws IOException { String type = get(doc, EntityField.TYPE); if (type == null) { throw new IOException("Missing field: " + EntityField.TYPE.solrName()); } if (type.equals(EntityTypeValue.COLLECTION.solrValue())) { return getCollection(doc); } else if (type.equals(EntityTypeValue.DELIVERABLE_UNIT.solrValue())) { return getDeliverableUnit(doc); } else if (type.equals(EntityTypeValue.FILE.solrValue())) { return getFile(doc); } else if (type.equals(EntityTypeValue.MANIFESTATION.solrValue())) { return getManifestation(doc); } else if (type.equals(EntityTypeValue.EVENT.solrValue())) { return getEvent(doc); } else { throw new IOException("Unknown type: " + type); } }
private static SolrInputDocument toSolr(DcsManifestation man, ArchiveStore store) throws IOException { SolrInputDocument doc = new SolrInputDocument(); add(doc, EntityField.ID, man.getId()); add(doc, EntityField.TYPE, EntityTypeValue.MANIFESTATION.solrValue()); add(doc, ManifestationField.DELIVERABLE_UNIT, man.getDeliverableUnit()); add(doc, CoreMetadataField.TYPE, man.getType()); add(doc, ManifestationField.DATE_CREATED, man.getDateCreated()); addMetadataSet(doc, man.getMetadata()); addManifestationFileSet(doc, man.getManifestationFiles(), store); addMetadataRefSet(doc, man.getMetadataRef(), EntityField.METADATA_REF, store); addStrings(doc, man.getTechnicalEnvironment(), ManifestationField.TECH); addResourceIdentifierSet(doc, man.getAlternateIds()); return doc; }