public void assignConceptForUpdate(Concept concept) { log.debug(":: assigning concept for update =" + concept); conceptsForUpdate.add( template.getNode(concept.getNodeId()), NamespaceConstants.DATE_UPDATED, new ValueContext(concept.getDateUpdated()).indexNumeric()); }
public Node persist(Concept concept) { Node node = null; /** extract node from index before creating */ // regular index if (concept.getId() != null) { Node inIndex = getConcept(NamespaceConstants.NAME + NamespaceConstants.TYPE, concept.getId()); if (inIndex != null) { node = inIndex; } else { node = template.createNode(); node.setProperty(NamespaceConstants.DATE_CREATED, new Date().getTime()); addConcept(node, concept.getId()); } } // uri index if (concept.getUri() != null) { Node inUriIndex = getConcept(NamespaceConstants.URI, concept.getUri()); if (inUriIndex != null) { node = inUriIndex; } else { if (node == null) { node = template.createNode(); node.setProperty(NamespaceConstants.DATE_CREATED, new Date().getTime()); } addConceptByUri(node, concept.getUri()); } } if (node == null) { node = template.createNode(); node.setProperty(NamespaceConstants.DATE_CREATED, new Date().getTime()); } concept.setNodeId(node.getId()); /** parse node */ if (concept.getId() != null) { node.setProperty(NamespaceConstants.CONCEPT_ID, concept.getId()); } utils.setNodeProperty(node, NamespaceConstants.ENRICHED, concept.isEnriched()); utils.setNodeProperty(node, NamespaceConstants.URI_COUNTER, concept.getUriCounter()); utils.setNodeProperty(node, NamespaceConstants.ENRICH_COUNTER, concept.getEnrichCounter()); if (concept.getName() != null) node.setProperty(NamespaceConstants.NAME, concept.getName()); if (concept.getType() != null) node.setProperty(NamespaceConstants.TYPE, concept.getType()); if (concept.getUri() != null) { node.setProperty(NamespaceConstants.URI, concept.getUri()); } if (concept.getProperties() != null && concept.getProperties().size() > 0) { Set<String> keys = concept.getProperties().keySet(); for (String key : keys) { Object property = concept.getProperties().get(key); if (property instanceof Concept) { Concept c = (Concept) property; Node n = persist(c); utils.relate(node, n, new MyRelationshipType(key)); } else if (property instanceof ArrayList) { try { ArrayList<Concept> concepts = (ArrayList<Concept>) property; for (Concept c : concepts) { Node n = persist(c); utils.relate(node, n, new MyRelationshipType(key)); } } catch (Exception e) { ArrayList<Object> properties = (ArrayList<Object>) property; differenciateAndSetProperties(properties, node, key); } } else { node.setProperty(key, property); } } } if (concept.getDateCreated() != 0) node.setProperty(NamespaceConstants.DATE_CREATED, concept.getDateCreated()); if (concept.getDateUpdated() != 0) node.setProperty(NamespaceConstants.DATE_UPDATED, concept.getDateUpdated()); if (concept.getDateEnriched() != 0L) node.setProperty(NamespaceConstants.DATE_ENRICHED, concept.getDateEnriched()); return node; }