/** * @see GraphTraversal#id() */ public static <A extends Element> GraphTraversal<A, Object> id() { return __.<A>start().id(); }
public GraphTraversal<Vertex, Object> convertToVertexPropertyId(final Graph graph, final String vertexName, final String vertexPropertyKey) { return convertToVertexProperty(graph, vertexName, vertexPropertyKey).id(); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldGenerateDefaultIdOnGraphAddVWithGeneratedDefaultId() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().create(); final GraphTraversalSource sg = create(strategy); final Vertex v = sg.addV().property("name", "stephen").next(); assertEquals("stephen", v.value("name")); final Traversal t1 = graph.traversal().V(v); t1.asAdmin().applyStrategies(); logger.info(t1.toString()); final Traversal t2 = sg.V(v); t2.asAdmin().applyStrategies(); logger.info(t2.toString()); assertNotNull(UUID.fromString(sg.V(v).id().next().toString())); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldGenerateDefaultIdOnAddVWithGeneratedCustomId() throws Exception { final AtomicBoolean first = new AtomicBoolean(false); final ElementIdStrategy strategy = ElementIdStrategy.build().idMaker(() -> { final String key = first.get() ? "xxx" : "yyy"; first.set(true); return key; }).create(); final GraphTraversalSource sg = create(strategy); sg.addV().next(); assertEquals(1, IteratorUtils.count(sg.V())); final Vertex v = sg.V().addV().property("name", "stephen").next(); assertEquals("stephen", v.value("name")); assertEquals("xxx", sg.V(v).id().next()); assertEquals("xxx", sg.V("xxx").id().next()); assertEquals("yyy", sg.V("yyy").id().next()); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldSetIdOnAddVWithIdPropertyKeySpecifiedAndNameSuppliedAsProperty() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().idPropertyKey("name").create(); final GraphTraversalSource sg = create(strategy); final Vertex v = sg.addV().property("name", "stephen").next(); assertEquals("stephen", v.value("name")); assertEquals("stephen", sg.V(v).id().next()); assertEquals("stephen", sg.V("stephen").id().next()); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldSetIdOnAddVWithIdPropertyKeySpecifiedAndIdSuppliedAsProperty() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().idPropertyKey("name").create(); final GraphTraversalSource sg = create(strategy); final Vertex v = sg.addV().property(T.id, "stephen").next(); assertEquals("stephen", v.value("name")); assertEquals("stephen", sg.V(v).id().next()); assertEquals("stephen", sg.V("stephen").id().next()); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldGenerateDefaultIdOnGraphAddVWithSpecifiedId() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().create(); final GraphTraversalSource sg = create(strategy); final Vertex v = sg.addV().property(T.id, "STEPHEN").property("name", "stephen").next(); assertEquals("stephen", v.value("name")); assertEquals("STEPHEN", sg.V(v).id().next()); assertEquals("STEPHEN", sg.V("STEPHEN").id().next()); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldGenerateDefaultIdOnGraphAddVWithGeneratedCustomId() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().idMaker(new ConstantSupplier<>("xxx")).create(); final GraphTraversalSource sg = create(strategy); final Vertex v = sg.addV().property("name", "stephen").next(); assertEquals("stephen", v.value("name")); assertEquals("xxx", sg.V(v).id().next()); assertEquals("xxx", sg.V("xxx").id().next()); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE) public void shouldGenerateDefaultIdOnAddEWithGeneratedId() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().create(); final GraphTraversalSource sg = create(strategy); final Vertex v = sg.addV().next(); final Edge e = sg.withSideEffect("v", v).V(v).addE("self").to("v").property("test", "value").next(); assertEquals("value", e.value("test")); assertNotNull(UUID.fromString(sg.E(e).id().next().toString())); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldGenerateDefaultIdOnAddVWithGeneratedDefaultId() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().create(); final GraphTraversalSource sg = create(strategy); sg.addV().next(); assertEquals(1, IteratorUtils.count(sg.V())); final Vertex v = sg.V().addV().property("name", "stephen").next(); assertEquals("stephen", v.value("name")); assertNotNull(UUID.fromString(sg.V(v).id().next().toString())); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE) public void shouldGenerateDefaultIdOnAddEWithSpecifiedId() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().create(); final GraphTraversalSource sg = create(strategy); final Vertex v = sg.addV().next(); final Edge e = sg.withSideEffect("v", v).V(v).addE("self").to("v").property("test", "value").property(T.id, "some-id").next(); assertEquals("value", e.value("test")); assertEquals("some-id", sg.E(e).id().next()); assertEquals("some-id", sg.E("some-id").id().next()); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldGenerateDefaultIdOnAddVWithSpecifiedId() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().create(); final GraphTraversalSource sg = create(strategy); sg.addV().next(); assertEquals(1, IteratorUtils.count(sg.V())); final Vertex v = sg.V().addV().property(T.id, "STEPHEN").property("name", "stephen").next(); assertEquals("stephen", v.value("name")); assertEquals("STEPHEN", sg.V(v).id().next()); assertEquals("STEPHEN", sg.V("STEPHEN").id().next()); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE) public void shouldSetIdOnAddEWithIdPropertyKeySpecifiedAndNameSuppliedAsProperty() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().idPropertyKey("name").create(); final GraphTraversalSource sg = create(strategy); final Vertex v = sg.addV().next(); final Edge e = sg.withSideEffect("v", v).V(v).addE("self").to("v").property("test", "value").property(T.id, "some-id").next(); assertEquals("value", e.value("test")); assertEquals("some-id", e.value("name")); assertEquals("some-id", sg.E(e).id().next()); assertEquals("some-id", sg.E("some-id").id().next()); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE) public void shouldSetIdOnAddEWithNamePropertyKeySpecifiedAndNameSuppliedAsProperty() throws Exception { final ElementIdStrategy strategy = ElementIdStrategy.build().idPropertyKey("name").create(); final GraphTraversalSource sg = create(strategy); final Vertex v = sg.addV().next(); final Edge e = sg.withSideEffect("v", v).V(v).addE("self").to("v").property("test", "value").property("name", "some-id").next(); assertEquals("value", e.value("test")); assertEquals("some-id", e.value("name")); assertEquals("some-id", sg.E(e).id().next()); assertEquals("some-id", sg.E("some-id").id().next()); }
/** * @see GraphTraversal#id() */ public static <A extends Element> GraphTraversal<A, Object> id() { return __.<A>start().id(); }
private static GraphTraversal<?, ?> matchProperty(final GraphTraversal<?, ?> traversal, final String propertyName, final PropertyType type, final Node object) { switch (propertyName) { case "id": return object.isConcrete() ? traversal.hasId(object.getLiteralValue()) : traversal.id().as(object.getName()); case "label": return object.isConcrete() ? traversal.hasLabel(object.getLiteralValue().toString()) : traversal.label().as(object.getName()); case "key": return object.isConcrete() ? traversal.hasKey(object.getLiteralValue().toString()) : traversal.key().as(object.getName()); case "value": return object.isConcrete() ? traversal.hasValue(object.getLiteralValue().toString()) : traversal.value().as(object.getName()); default: if (type.equals(PropertyType.PROPERTY)) { return traversal.properties(propertyName).as(object.getName()); } else { return object.isConcrete() ? traversal.values(propertyName).is(object.getLiteralValue()) : traversal.values(propertyName).as(object.getName()); } } } }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE) public void shouldThrowExceptionOnEInDifferentPartition() { final PartitionStrategy partitionStrategyAA = PartitionStrategy.build() .partitionKey(partition).writePartition("A").readPartitions("A").create(); final GraphTraversalSource sourceAA = g.withStrategies(partitionStrategyAA); final PartitionStrategy partitionStrategyA = PartitionStrategy.build() .partitionKey(partition).writePartition("A").create(); final GraphTraversalSource sourceA = g.withStrategies(partitionStrategyA); final Vertex vA = sourceAA.addV().property("any", "a").next(); final Edge e = sourceAA.withSideEffect("vA", vA).V(vA.id()).addE("knows").to("vA").next(); assertEquals(e.id(), g.E(e.id()).id().next()); try { sourceA.E(e.id()).next(); fail("Edge should not be in this partition"); } catch (Exception ex) { assertEquals(NoSuchElementException.class, ex.getClass()); } }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldThrowExceptionOnVInDifferentPartition() { final PartitionStrategy partitionStrategyAA = PartitionStrategy.build() .partitionKey(partition).writePartition("A").readPartitions("A").create(); final GraphTraversalSource sourceAA = g.withStrategies(partitionStrategyAA); final PartitionStrategy partitionStrategyA = PartitionStrategy.build() .partitionKey(partition).writePartition("A").create(); final GraphTraversalSource sourceA = g.withStrategies(partitionStrategyA); final Vertex vA = sourceAA.addV().property("any", "a").next(); assertEquals(vA.id(), sourceAA.V(vA.id()).id().next()); try { sourceA.V(vA.id()).next(); fail("Vertex should not be in this partition"); } catch (Exception ex) { assertThat(ex, instanceOf(NoSuchElementException.class)); } }
@Override public Traversal<Vertex, List<Object>> getAllShortestPaths() { // TODO: remove .withoutStrategies(PathRetractionStrategy.class) return g.withoutStrategies(ComputerVerificationStrategy.class, PathRetractionStrategy.class). V().as("v").both().as("v"). project("src", "tgt", "p"). by(select(first, "v")). by(select(last, "v")). by(select(all, "v")).as("triple"). group("x"). by(select("src", "tgt")). by(select("p").fold()).select("tgt").barrier(). repeat(both().as("v"). project("src", "tgt", "p"). by(select(first, "v")). by(select(last, "v")). by(select(all, "v")).as("t"). filter(select(all, "p").count(local).as("l"). select(last, "t").select(all, "p").dedup(local).count(local).where(eq("l"))). select(last, "t"). not(select(all, "p").as("p").count(local).as("l"). select(all, "x").unfold().filter(select(keys).where(eq("t")).by(select("src", "tgt"))). filter(select(values).unfold().or(count(local).where(lt("l")), where(eq("p"))))). barrier(). group("x"). by(select("src", "tgt")). by(select(all, "p").fold()).select("tgt").barrier()). cap("x").select(values).unfold().unfold().map(unfold().id().fold()); }