private static SeadDataLocation getPrimaryDataLocation(SolrDocument doc) { SeadDataLocation primaryDataLocation = new SeadDataLocation(); primaryDataLocation.setName(getFirst(doc, SeadSolrField.PrimaryDataLocationField.NAME)); primaryDataLocation.setType(getFirst(doc, SeadSolrField.PrimaryDataLocationField.TYPE)); primaryDataLocation.setLocation(getFirst(doc, SeadSolrField.PrimaryDataLocationField.LOCATION)); return primaryDataLocation; }
private static void addSecondaryDataLocationSet( SolrInputDocument doc, Set<SeadDataLocation> set) { if (set == null || set.size() == 0) { return; } for (SeadDataLocation dl : set) { setadd(doc, SeadSolrField.DataLocationField.NAME, dl.getName()); setadd(doc, SeadSolrField.DataLocationField.TYPE, dl.getType()); setadd(doc, SeadSolrField.DataLocationField.LOCATION, dl.getLocation()); } }
private static Set<SeadDataLocation> getSecondaryDataLocationSet(SolrDocument doc) { Set<SeadDataLocation> locSet = new HashSet<SeadDataLocation>(); String[] name = setgetAll(doc, SeadSolrField.DataLocationField.NAME); String[] types = setgetAll(doc, SeadSolrField.DataLocationField.TYPE); String[] locations = setgetAll(doc, SeadSolrField.DataLocationField.LOCATION); for (int i = 0; i < locations.length; i++) { SeadDataLocation dataLocation = new SeadDataLocation(); dataLocation.setName(name[i]); dataLocation.setType(types[i]); dataLocation.setLocation(locations[i]); locSet.add(dataLocation); } return locSet; }
private static SolrInputDocument toSolr(SeadFile file, ArchiveStore store) throws IOException { SolrInputDocument doc = new SolrInputDocument(); add(doc, EntityField.ID, file.getId()); add(doc, EntityField.TYPE, EntityTypeValue.FILE.solrValue()); add(doc, FileField.NAME, file.getName()); add(doc, FileField.SOURCE, file.getSource()); add(doc, FileField.SIZE, file.getSizeBytes()); if (file.getMetadataUpdateDate() == null || file.getMetadataUpdateDate().length() == 0) add( doc, SeadSolrField.EntityField.MDUPDATE_DATE, toIso8601(now())); // file.getMetadataUpdateDate()); else add(doc, SeadSolrField.EntityField.MDUPDATE_DATE, file.getMetadataUpdateDate()); if (file.getValid() != null) { doc.addField(FileField.VALID.solrName(), file.getValid()); } doc.addField(FileField.EXTANT.solrName(), file.isExtant()); addFixitySet(doc, file.getFixity()); addFormatSet(doc, file.getFormats()); addResourceIdentifierSet(doc, file.getAlternateIds()); SeadDataLocation primaryDataLocation = new SeadDataLocation(); primaryDataLocation.setLocation(file.getPrimaryLocation().getLocation()); primaryDataLocation.setName(file.getPrimaryLocation().getName()); primaryDataLocation.setType(file.getPrimaryLocation().getType()); addPrimaryDataLocation(doc, primaryDataLocation); addSecondaryDataLocationSet(doc, file.getSecondaryDataLocations()); addMetadataSet(doc, file.getMetadata()); addMetadataRefSet(doc, file.getMetadataRef(), EntityField.METADATA_REF, store); return doc; }
private static SolrInputDocument toSolr(SeadDeliverableUnit du, ArchiveStore store) throws IOException { SolrInputDocument doc = new SolrInputDocument(); add(doc, EntityField.ID, du.getId()); add(doc, EntityField.TYPE, EntityTypeValue.DELIVERABLE_UNIT.solrValue()); // add(doc, EntityField.MDUPDATE_DATE, du.getMetadataUpdateDate()); // if(du.getMetadataUpdateDate()==null) add(doc, SeadSolrField.EntityField.MDUPDATE_DATE, toIso8601(now())); // else // add(doc, EntityField.MDUPDATE_DATE, du.getMetadataUpdateDate()); add(doc, CoreMetadataField.TITLE, du.getTitle()); if (du.getRights() != null) { add(doc, CoreMetadataField.RIGHTS, du.getRights()); } addRefSet(doc, du.getCollections(), DeliverableUnitField.COLLECTIONS); addRefSet(doc, du.getParents(), DeliverableUnitField.PARENT); addMetadataRefSet(doc, du.getMetadataRef(), EntityField.METADATA_REF, store); addStrings(doc, du.getFormerExternalRefs(), DeliverableUnitField.FORMER_REFS); // addStrings(doc, du.getCreators(), CoreMetadataField.CREATOR); if (du.getSubmitter() != null) addSubmitter(doc, du.getSubmitter()); addCreatorSet(doc, du.getDataContributors()); addStrings(doc, du.getSubjects(), CoreMetadataField.SUBJECT); addMetadataSet(doc, du.getMetadata()); addRelationSet(doc, du.getRelations()); addResourceIdentifierSet(doc, du.getAlternateIds()); SeadDataLocation primaryDataLocation = new SeadDataLocation(); primaryDataLocation.setLocation(du.getPrimaryLocation().getLocation()); primaryDataLocation.setName(du.getPrimaryLocation().getName()); primaryDataLocation.setType(du.getPrimaryLocation().getType()); addPrimaryDataLocation(doc, primaryDataLocation); addSecondaryDataLocationSet(doc, du.getSecondaryDataLocations()); // addFgdcMetadata(doc,du.getMetadata()); add(doc, CoreMetadataField.TYPE, du.getType()); if (du.getAbstrct() != null) { add(doc, SeadSolrField.EntityField.ABSTRACT, du.getAbstrct()); } String pubDate = du.getPubdate(); if (pubDate == null) { // use current date DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(); pubDate = dateFormat.format(date); } add(doc, SeadSolrField.EntityField.PUBDATE, pubDate); if (du.getContact() != null) { add(doc, SeadSolrField.CoreMetadataField.CONTACT, du.getContact()); } if (du.getSites() != null) { add(doc, SeadSolrField.DeliverableUnitField.LOCATION, du.getSites()); } if (du.isDigitalSurrogate() != null) { doc.addField(DeliverableUnitField.DIGITAL_SURROGATE.solrName(), du.isDigitalSurrogate()); } return doc; }
private static void addPrimaryDataLocation(SolrInputDocument doc, SeadDataLocation dataLocation) { setadd(doc, SeadSolrField.PrimaryDataLocationField.NAME, dataLocation.getName()); setadd(doc, SeadSolrField.PrimaryDataLocationField.TYPE, dataLocation.getType()); setadd(doc, SeadSolrField.PrimaryDataLocationField.LOCATION, dataLocation.getLocation()); }