Neo4jNode<Neo4jLabel, ?, ?, ?> neo4jNode = (Neo4jNode<Neo4jLabel, ?, ?, ?>) value; Node node = new Node(); node.setId(neo4jNode.getId()); for (Neo4jLabel label : neo4jNode.getLabels()) { node.getLabels().add(label.getName()); node.getProperties().putAll(neo4jNode.getProperties()); return (I) node; } else if (value instanceof Neo4jRelationship) { Neo4jRelationship<?, ?, ? ,? ,?> neo4jRelationship = (Neo4jRelationship) value; Relationship relationship = new Relationship(); relationship.setId(neo4jRelationship.getId()); relationship.setType(neo4jRelationship.getType().getName()); relationship.setStartNode((Node) convert(neo4jRelationship.getStartNode())); relationship.setEndNode((Node) convert(neo4jRelationship.getEndNode())); relationship.getProperties().putAll(neo4jRelationship.getProperties()); return (I) relationship;
/** * Ensures that an index exists for the given label and property. * * @param session * The datastore session * @param label * The label. * @param propertyMethodMetadata * The property metadata. * @param unique * if <code>true</code> create a unique constraint */ private void ensureIndex(DS session, L label, PrimitivePropertyMethodMetadata<PropertyMetadata> propertyMethodMetadata, boolean unique) { PropertyMetadata propertyMetadata = propertyMethodMetadata.getDatastoreMetadata(); String statement; if (unique) { LOGGER.debug("Creating constraint for label {} on property '{}'.", label, propertyMetadata.getName()); statement = String.format("CREATE CONSTRAINT ON (n:%s) ASSERT n.%s IS UNIQUE", label.getName(), propertyMetadata.getName()); } else { LOGGER.debug("Creating index for label {} on property '{}'.", label, propertyMetadata.getName()); statement = String.format("CREATE INDEX ON :%s(%s)", label.getName(), propertyMetadata.getName()); } try (ResultIterator iterator = session.createQuery(Cypher.class).execute(statement, Collections.emptyMap())) { } }