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(SeadEvent event) { SolrInputDocument doc = new SolrInputDocument(); add(doc, EntityField.ID, event.getId()); add(doc, EntityField.TYPE, EntityTypeValue.EVENT.solrValue()); add(doc, EventField.DATE, event.getDate()); add(doc, EventField.DETAIL, event.getDetail()); add(doc, EventField.OUTCOME, event.getOutcome()); add(doc, EventField.TYPE, event.getEventType()); addResourceIdentifierSet(doc, event.getAlternateIds()); addRefSet(doc, event.getTargets(), EventField.TARGET); if (event.getLogDetail() != null) { SeadLogDetail log = event.getLogDetail(); add(doc, SeadSolrField.DetailLogField.IPADDRESS, log.getIpAddress()); add(doc, SeadSolrField.DetailLogField.USERAGENT, log.getUserAgent()); add(doc, SeadSolrField.DetailLogField.SUBJECT, log.getSubject()); add(doc, SeadSolrField.DetailLogField.NODEIDENTIFIER, log.getNodeIdentifier()); } return doc; }