本文整理汇总了Java中org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph类的典型用法代码示例。如果您正苦于以下问题:Java EmptyGraph类的具体用法?Java EmptyGraph怎么用?Java EmptyGraph使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EmptyGraph类属于org.apache.tinkerpop.gremlin.structure.util.empty包,在下文中一共展示了EmptyGraph类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: apply
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Override
public void apply(final Traversal.Admin<?, ?> traversal) {
if (TraversalHelper.getStepsOfAssignableClass(VertexProgramStep.class, traversal).size() > 1) // do not do if there is an OLAP chain
return;
final Graph graph = traversal.getGraph().orElse(EmptyGraph.instance()); // given that this strategy only works for single OLAP jobs, the graph is the traversal graph
for (final TraversalVertexProgramStep step : TraversalHelper.getStepsOfClass(TraversalVertexProgramStep.class, traversal)) { // will be zero or one step
final Traversal.Admin<?, ?> computerTraversal = step.generateProgram(graph, EmptyMemory.instance()).getTraversal().get().clone();
if (!computerTraversal.isLocked())
computerTraversal.applyStrategies();
final Computer computer = step.getComputer();
if (null == computer.getEdges() && !GraphComputer.Persist.EDGES.equals(computer.getPersist())) { // if edges() already set, use it
final Traversal.Admin<Vertex, Edge> edgeFilter = getEdgeFilter(computerTraversal);
if (null != edgeFilter) // if no edges can be filtered, then don't set edges()
step.setComputer(computer.edges(edgeFilter));
}
}
}
示例2: data
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
{"addE(test).from(x)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addE("test").from("x"), 1},
{"addE(test).from(x).property(this,that)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addE("test").from("x").property("this", "that"), 1},
{"addE(test).to(x)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addE("test").to("x"), 1},
{"addE(test).to(x).property(this,that)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addE("test").to("x").property("this", "that"), 1},
{"addV()", new DefaultGraphTraversal<>(EmptyGraph.instance()).addV(), 1},
{"addV(args)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addV("test", "this"), 1},
{"addV().property(k,v)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addV().property("test", "that"), 1},
{"properties().drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).properties().drop(), 1},
{"properties(k).drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).properties("test").drop(), 1},
{"out().drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).out().drop(), 1},
{"out(args).drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).out("test").drop(), 1},
{"outE().drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).outE().drop(), 1},
{"outE().properties().drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).outE().properties().drop(), 1},
{"outE(args).drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).outE("test").drop(), 1}});
}
示例3: shouldEventOnMutatingSteps
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Test
public void shouldEventOnMutatingSteps() {
final MutationListener listener1 = new ConsoleMutationListener(EmptyGraph.instance());
final EventStrategy eventStrategy = EventStrategy.build()
.addListener(listener1).create();
eventStrategy.apply(traversal.asAdmin());
final AtomicInteger mutatingStepsFound = new AtomicInteger(0);
traversal.asAdmin().getSteps().stream()
.filter(s -> s instanceof Mutating)
.forEach(s -> {
final Mutating mutating = (Mutating) s;
assertEquals(1, mutating.getMutatingCallbackRegistry().getCallbacks().size());
mutatingStepsFound.incrementAndGet();
});
assertEquals(expectedMutatingStepsFound, mutatingStepsFound.get());
}
示例4: shouldRemoveStepsCorrectly
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Test
public void shouldRemoveStepsCorrectly() {
final Traversal.Admin traversal = new DefaultTraversal<>(EmptyGraph.instance());
traversal.asAdmin().addStep(new IdentityStep(traversal));
traversal.asAdmin().addStep(new HasStep(traversal));
traversal.asAdmin().addStep(new LambdaFilterStep(traversal, traverser -> true));
traversal.asAdmin().addStep(new PropertiesStep(traversal, PropertyType.VALUE, "marko"));
traversal.asAdmin().removeStep(3);
validateToyTraversal(traversal);
traversal.asAdmin().addStep(0, new PropertiesStep(traversal, PropertyType.PROPERTY, "marko"));
traversal.asAdmin().removeStep(0);
validateToyTraversal(traversal);
traversal.asAdmin().removeStep(1);
traversal.asAdmin().addStep(1, new HasStep(traversal));
validateToyTraversal(traversal);
}
示例5: apply
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Override
public void apply(final Traversal.Admin<?, ?> traversal) {
final Graph graph = traversal.getGraph().orElse(EmptyGraph.instance()); // best guess at what the graph will be as its dynamically determined
for (final TraversalVertexProgramStep step : TraversalHelper.getStepsOfClass(TraversalVertexProgramStep.class, traversal)) {
final Traversal.Admin<?, ?> computerTraversal = step.generateProgram(graph, EmptyMemory.instance()).getTraversal().get().clone();
if (!computerTraversal.isLocked())
computerTraversal.applyStrategies();
boolean doesMessagePass = TraversalHelper.hasStepOfAssignableClassRecursively(Scope.global, MULTI_ITERATION_CLASSES, computerTraversal);
if (!doesMessagePass) {
for (final VertexStep vertexStep : TraversalHelper.getStepsOfAssignableClassRecursively(Scope.global, VertexStep.class, computerTraversal)) {
if (vertexStep.returnsVertex() || !vertexStep.getDirection().equals(Direction.OUT)) { // in-edges require message pass in OLAP
doesMessagePass = true;
break;
}
}
}
if (!doesMessagePass) {
step.setComputer(step.getComputer()
// if no message passing, don't partition the loaded graph
.configure(Constants.GREMLIN_SPARK_SKIP_PARTITIONER, true)
// if no message passing, don't cache the loaded graph
.configure(Constants.GREMLIN_SPARK_SKIP_GRAPH_CACHE, true));
}
}
}
示例6: processNextStart
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Override
protected Traverser.Admin<Edge> processNextStart() {
if (this.first) {
this.first = false;
final TraverserGenerator generator = this.getTraversal().getTraverserGenerator();
final Traverser.Admin traverser = generator.generate(1, (Step) this, 1); // a dead traverser to trigger the traversal
Vertex toVertex = (Vertex) this.parameters.get(traverser, TO, Collections::emptyList).get(0);
Vertex fromVertex = (Vertex) this.parameters.get(traverser, FROM, Collections::emptyList).get(0);
if (toVertex instanceof Attachable)
toVertex = ((Attachable<Vertex>) toVertex)
.attach(Attachable.Method.get(this.getTraversal().getGraph().orElse(EmptyGraph.instance())));
if (fromVertex instanceof Attachable)
fromVertex = ((Attachable<Vertex>) fromVertex)
.attach(Attachable.Method.get(this.getTraversal().getGraph().orElse(EmptyGraph.instance())));
final String edgeLabel = (String) this.parameters.get(traverser, T.label, () -> Edge.DEFAULT_LABEL).get(0);
final Edge edge = fromVertex.addEdge(edgeLabel, toVertex, this.parameters.getKeyValues(traverser, TO, FROM, T.label));
if (callbackRegistry != null) {
final Event.EdgeAddedEvent vae = new Event.EdgeAddedEvent(DetachedFactory.detach(edge, true));
callbackRegistry.getCallbacks().forEach(c -> c.accept(vae));
}
return generator.generate(edge, this, 1L);
} else
throw FastNoSuchElementException.instance();
}
示例7: map
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Override
protected Edge map(final Traverser.Admin<S> traverser) {
Vertex toVertex = this.parameters.get(traverser, TO, () -> (Vertex) traverser.get()).get(0);
Vertex fromVertex = this.parameters.get(traverser, FROM, () -> (Vertex) traverser.get()).get(0);
if (toVertex instanceof Attachable)
toVertex = ((Attachable<Vertex>) toVertex)
.attach(Attachable.Method.get(this.getTraversal().getGraph().orElse(EmptyGraph.instance())));
if (fromVertex instanceof Attachable)
fromVertex = ((Attachable<Vertex>) fromVertex)
.attach(Attachable.Method.get(this.getTraversal().getGraph().orElse(EmptyGraph.instance())));
final String edgeLabel = this.parameters.get(traverser, T.label, () -> Edge.DEFAULT_LABEL).get(0);
final Edge edge = fromVertex.addEdge(edgeLabel, toVertex, this.parameters.getKeyValues(traverser, TO, FROM, T.label));
if (callbackRegistry != null) {
final EventStrategy eventStrategy = getTraversal().getStrategies().getStrategy(EventStrategy.class).get();
final Event.EdgeAddedEvent vae = new Event.EdgeAddedEvent(eventStrategy.detach(edge));
callbackRegistry.getCallbacks().forEach(c -> c.accept(vae));
}
return edge;
}
示例8: shouldSupportMapBasedStrategies
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Test
public void shouldSupportMapBasedStrategies() throws Exception {
GraphTraversalSource g = EmptyGraph.instance().traversal();
assertFalse(g.getStrategies().getStrategy(SubgraphStrategy.class).isPresent());
g = g.withStrategies(SubgraphStrategy.create(new MapConfiguration(new HashMap<String, Object>() {{
put("vertices", __.hasLabel("person"));
put("vertexProperties", __.limit(0));
put("edges", __.hasLabel("knows"));
}})));
assertTrue(g.getStrategies().getStrategy(SubgraphStrategy.class).isPresent());
g = g.withoutStrategies(SubgraphStrategy.class);
assertFalse(g.getStrategies().getStrategy(SubgraphStrategy.class).isPresent());
//
assertFalse(g.getStrategies().getStrategy(ReadOnlyStrategy.class).isPresent());
g = g.withStrategies(ReadOnlyStrategy.instance());
assertTrue(g.getStrategies().getStrategy(ReadOnlyStrategy.class).isPresent());
g = g.withoutStrategies(ReadOnlyStrategy.class);
assertFalse(g.getStrategies().getStrategy(ReadOnlyStrategy.class).isPresent());
}
示例9: shouldHaveProperHashAndEquality
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Test
public void shouldHaveProperHashAndEquality() {
final GraphTraversalSource g = EmptyGraph.instance().traversal();
final Traversal.Admin traversal1 = g.V().out().repeat(__.out().in()).times(2).groupCount().by(__.outE().count()).select(Column.keys).order().by(Order.decr).asAdmin();
final Traversal.Admin traversal2 = g.V().out().repeat(__.out().in()).times(2).groupCount().by(__.outE().count()).select(Column.keys).order().by(Order.decr).asAdmin();
final Traversal.Admin traversal3 = g.V().out().repeat(__.out().in()).times(2).groupCount().by(__.outE().count()).select(Column.values).order().by(Order.decr).asAdmin();
assertEquals(traversal1, traversal2);
assertNotEquals(traversal1, traversal3);
assertNotEquals(traversal2, traversal3);
//
assertEquals(traversal1.hashCode(), traversal2.hashCode());
assertNotEquals(traversal1.hashCode(), traversal3.hashCode());
assertNotEquals(traversal2.hashCode(), traversal3.hashCode());
//
assertEquals(traversal1.getBytecode(), traversal2.getBytecode());
assertNotEquals(traversal1.getBytecode(), traversal3.getBytecode());
assertNotEquals(traversal2.getBytecode(), traversal3.getBytecode());
//
assertEquals(traversal1.getBytecode().hashCode(), traversal2.getBytecode().hashCode());
assertNotEquals(traversal1.getBytecode().hashCode(), traversal3.getBytecode().hashCode());
assertNotEquals(traversal2.getBytecode().hashCode(), traversal3.getBytecode().hashCode());
}
示例10: shouldIncludeBindingsInEquality
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Test
public void shouldIncludeBindingsInEquality() {
final Bindings b = Bindings.instance();
final GraphTraversalSource g = EmptyGraph.instance().traversal();
final Bytecode bytecode1 = g.V().out(b.of("a", "created")).asAdmin().getBytecode();
final Bytecode bytecode2 = g.V().out(b.of("a", "knows")).asAdmin().getBytecode();
final Bytecode bytecode3 = g.V().out(b.of("b", "knows")).asAdmin().getBytecode();
final Bytecode bytecode4 = g.V().out(b.of("b", "knows")).asAdmin().getBytecode();
assertNotEquals(bytecode1, bytecode2);
assertNotEquals(bytecode1, bytecode3);
assertNotEquals(bytecode2, bytecode3);
assertNotEquals(bytecode2, bytecode4);
assertNotEquals(bytecode1, bytecode4);
assertEquals(bytecode3, bytecode4);
assertEquals(1, bytecode1.getBindings().size());
assertEquals("created", bytecode1.getBindings().get("a"));
}
示例11: shouldIncludeBindingsInNestedTraversals
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Test
public void shouldIncludeBindingsInNestedTraversals() {
final Bindings b = Bindings.instance();
final GraphTraversalSource g = EmptyGraph.instance().traversal();
final Bytecode bytecode = g.V().in(b.of("a","created")).where(__.out(b.of("b","knows")).has("age",b.of("c",P.gt(32))).map(__.values(b.of("d","name")))).asAdmin().getBytecode();
assertEquals(4, bytecode.getBindings().size());
assertEquals("created", bytecode.getBindings().get("a"));
assertEquals("knows", bytecode.getBindings().get("b"));
assertEquals(P.gt(32), bytecode.getBindings().get("c"));
assertEquals("name", bytecode.getBindings().get("d"));
//
Bytecode.Binding binding = (Bytecode.Binding)((List<Bytecode.Instruction>)bytecode.getStepInstructions()).get(1).getArguments()[0];
assertEquals("a", binding.variable());
assertEquals("created", binding.value());
binding = (Bytecode.Binding) ((List<Bytecode.Instruction>)((Bytecode)((List<Bytecode.Instruction>)bytecode.getStepInstructions()).get(2).getArguments()[0]).getStepInstructions()).get(0).getArguments()[0];
assertEquals("b", binding.variable());
assertEquals("knows", binding.value());
binding = (Bytecode.Binding) ((List<Bytecode.Instruction>)((Bytecode)((List<Bytecode.Instruction>)bytecode.getStepInstructions()).get(2).getArguments()[0]).getStepInstructions()).get(1).getArguments()[1];
assertEquals("c", binding.variable());
assertEquals(P.gt(32), binding.value());
binding = (Bytecode.Binding) ((List<Bytecode.Instruction>)((Bytecode)((List<Bytecode.Instruction>)((Bytecode)((List<Bytecode.Instruction>)bytecode.getStepInstructions()).get(2).getArguments()[0]).getStepInstructions()).get(2).getArguments()[0]).getStepInstructions()).get(0).getArguments()[0];
assertEquals("d", binding.variable());
assertEquals("name", binding.value());
}
示例12: data
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
{"addE(test).from(x)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addE("test").from("x"), 1},
{"addE(test).from(x).property(this,that)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addE("test").from("x").property("this", "that"), 1},
{"addE(test).to(x)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addE("test").to("x"), 1},
{"addE(test).to(x).property(this,that)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addE("test").to("x").property("this", "that"), 1},
{"addV()", new DefaultGraphTraversal<>(EmptyGraph.instance()).addV(), 1},
{"addV().property(k,v)", new DefaultGraphTraversal<>(EmptyGraph.instance()).addV().property("test", "that"), 1},
{"properties().drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).properties().drop(), 1},
{"properties(k).drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).properties("test").drop(), 1},
{"out().drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).out().drop(), 1},
{"out(args).drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).out("test").drop(), 1},
{"outE().drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).outE().drop(), 1},
{"outE().properties().drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).outE().properties().drop(), 1},
{"outE(args).drop()", new DefaultGraphTraversal<>(EmptyGraph.instance()).outE("test").drop(), 1}});
}
示例13: shouldEvalBytecode
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Test
public void shouldEvalBytecode() throws Exception {
final GremlinScriptEngine scriptEngine = manager.getEngineByName(ENGINE_TO_TEST);
final Graph graph = EmptyGraph.instance();
final GraphTraversalSource g = graph.traversal();
// purposefully use "x" to match the name of the traversal source binding for "x" below and
// thus tests the alias added for "x"
final GraphTraversal t = getTraversalWithLambda(g);
final Bindings bindings = new SimpleBindings();
bindings.put("x", g);
final Traversal evald = scriptEngine.eval(t.asAdmin().getBytecode(), bindings, "x");
assertTraversals(t, evald);
assertThat(manager.getBindings().containsKey(GremlinScriptEngine.HIDDEN_G), is(false));
}
示例14: shouldNotAllowBytecodeEvalWithAliasInBindings
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Test(expected = IllegalArgumentException.class)
public void shouldNotAllowBytecodeEvalWithAliasInBindings() throws Exception {
final GremlinScriptEngine scriptEngine = manager.getEngineByName(ENGINE_TO_TEST);
final Graph graph = EmptyGraph.instance();
final GraphTraversalSource g = graph.traversal();
// purposefully use "x" to match the name of the traversal source binding for "x" below and
// thus tests the alias added for "x"
final GraphTraversal t = getTraversalWithLambda(g);
final Bindings bindings = new SimpleBindings();
bindings.put("x", g);
bindings.put(GremlinScriptEngine.HIDDEN_G, g);
scriptEngine.eval(t.asAdmin().getBytecode(), bindings, "x");
}
示例15: shouldNotAllowBytecodeEvalWithInvalidBinding
import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; //导入依赖的package包/类
@Test(expected = IllegalArgumentException.class)
public void shouldNotAllowBytecodeEvalWithInvalidBinding() throws Exception {
final GremlinScriptEngine scriptEngine = manager.getEngineByName(ENGINE_TO_TEST);
final Graph graph = EmptyGraph.instance();
final GraphTraversalSource g = graph.traversal();
// purposefully use "x" to match the name of the traversal source binding for "x" below and
// thus tests the alias added for "x"
final GraphTraversal t = getTraversalWithLambda(g);
final Bindings bindings = new SimpleBindings();
bindings.put("z", g);
bindings.put("x", "invalid-binding-for-x-given-x-should-be-traversal-source");
scriptEngine.eval(t.asAdmin().getBytecode(), bindings, "x");
}