public TitanVertexStep(VertexStep<E> originalStep) { super(originalStep.getTraversal(), originalStep.getReturnClass(), originalStep.getDirection(), originalStep.getEdgeLabels()); originalStep.getLabels().forEach(this::addLabel); this.hasContainers = new ArrayList<>(); this.limit = Query.NO_LIMIT; }
public JanusGraphVertexStep(VertexStep<E> originalStep) { super(originalStep.getTraversal(), originalStep.getReturnClass(), originalStep.getDirection(), originalStep.getEdgeLabels()); originalStep.getLabels().forEach(this::addLabel); this.hasContainers = new ArrayList<>(); this.limit = Query.NO_LIMIT; }
public HugeVertexStep(final VertexStep<E> originVertexStep) { super(originVertexStep.getTraversal(), originVertexStep.getReturnClass(), originVertexStep.getDirection(), originVertexStep.getEdgeLabels()); originVertexStep.getLabels().forEach(this::addLabel); }
final Map<String, Legal> map = this.edgeLegality.get(step.getDirection()); if (step.returnsEdge()) { if (step.getEdgeLabels().length == 0) map.put(null, 1 == this.edgeFilter.getSteps().size() ? Legal.YES : Legal.MAYBE); else { for (final String label : step.getEdgeLabels()) { map.put(label, 1 == this.edgeFilter.getSteps().size() ? Legal.YES : Legal.MAYBE); final Map<String, Legal> map = this.edgeLegality.get(vertexStep.getDirection()); if (vertexStep.returnsEdge()) { if (vertexStep.getEdgeLabels().length == 0) map.put(null, 2 == union.getSteps().size() ? Legal.YES : Legal.MAYBE); else { for (final String label : vertexStep.getEdgeLabels()) { map.put(label, 2 == union.getSteps().size() ? Legal.YES : Legal.MAYBE);
Direction.BOTH : step.getDirection(); final String[] edgeLabels = step.getEdgeLabels(); if (edgeLabels.length == 0)
/** * Optimizes the given step if possible. Basically this method converts <code>.out()</code> to <code>.outE()</code> * and <code>.values()</code> to <code>.properties()</code>. * * @param traversal the traversal that holds the given step * @param step the step to replace */ private static void optimizeStep(final Traversal.Admin traversal, final Step step) { final Step newStep; if (step instanceof VertexStep) { final VertexStep vs = (VertexStep) step; newStep = new VertexStep<>(traversal, Edge.class, vs.getDirection(), vs.getEdgeLabels()); } else if (step instanceof PropertiesStep) { final PropertiesStep ps = (PropertiesStep) step; newStep = new PropertiesStep(traversal, PropertyType.PROPERTY, ps.getPropertyKeys()); } else { return; } TraversalHelper.replaceStep(step, newStep, traversal); }
/** * Optimizes the given edge-emitting step and the vertex-emitting step by replacing them with a single * vertex-emitting step. * * @param traversal the traversal that holds the given steps * @param step1 the edge-emitting step to replace * @param step2 the vertex-emitting step to replace */ private static void optimizeSteps(final Traversal.Admin traversal, final VertexStep step1, final Step step2) { final Step newStep = new VertexStep(traversal, Vertex.class, step1.getDirection(), step1.getEdgeLabels()); for (final String label : (Iterable<String>) step2.getLabels()) { newStep.addLabel(label); } TraversalHelper.replaceStep(step1, newStep, traversal); traversal.removeStep(step2); }
} else if (step.getPreviousStep() instanceof VertexStep && ((VertexStep) step.getPreviousStep()).returnsEdge() && 0 == ((VertexStep) step.getPreviousStep()).getEdgeLabels().length) { final VertexStep<Edge> previousStep = (VertexStep<Edge>) step.getPreviousStep(); final List<String> edgeLabels = new ArrayList<>();
TraversalHelper.insertAfterStep(new TraversalFilterStep<>(traversal, (Traversal) this.vertexCriterion.clone()), step, traversal); } else { final VertexStep<Edge> someEStep = new VertexStep<>(traversal, Edge.class, step.getDirection(), step.getEdgeLabels()); final boolean addsPathRequirement; final Step<Edge, Vertex> someVStep = (addsPathRequirement = step.getDirection() == Direction.BOTH) ?
public TitanVertexStep(VertexStep<E> originalStep) { super(originalStep.getTraversal(), originalStep.getReturnClass(), originalStep.getDirection(), originalStep.getEdgeLabels()); originalStep.getLabels().forEach(this::addLabel); this.hasContainers = new ArrayList<>(); this.limit = Query.NO_LIMIT; }
public ElasticVertexStep(VertexStep originalStep, Predicates predicates) { super(originalStep.getTraversal(), originalStep.getReturnClass(), originalStep.getDirection(), originalStep.getEdgeLabels()); originalStep.getLabels().forEach(label -> this.addLabel(label.toString())); predicates.labels.forEach(this::addLabel); this.predicates = predicates; }
@SuppressWarnings("unchecked") public HBaseVertexStep(final VertexStep<E> originalVertexStep) { super(originalVertexStep.getTraversal(), originalVertexStep.getReturnClass(), originalVertexStep.getDirection(), originalVertexStep.getEdgeLabels()); originalVertexStep.getLabels().forEach(this::addLabel); }
public HugeVertexStep(final VertexStep<E> originVertexStep) { super(originVertexStep.getTraversal(), originVertexStep.getReturnClass(), originVertexStep.getDirection(), originVertexStep.getEdgeLabels()); originVertexStep.getLabels().forEach(this::addLabel); }
final Map<String, Legal> map = this.edgeLegality.get(step.getDirection()); if (step.returnsEdge()) { if (step.getEdgeLabels().length == 0) map.put(null, 1 == this.edgeFilter.getSteps().size() ? Legal.YES : Legal.MAYBE); else { for (final String label : step.getEdgeLabels()) { map.put(label, 1 == this.edgeFilter.getSteps().size() ? Legal.YES : Legal.MAYBE); final Map<String, Legal> map = this.edgeLegality.get(vertexStep.getDirection()); if (vertexStep.returnsEdge()) { if (vertexStep.getEdgeLabels().length == 0) map.put(null, 2 == union.getSteps().size() ? Legal.YES : Legal.MAYBE); else { for (final String label : vertexStep.getEdgeLabels()) { map.put(label, 2 == union.getSteps().size() ? Legal.YES : Legal.MAYBE);
public UniGraphVertexStep(VertexStep<E> vertexStep, UniGraph graph, ControllerManager controllerManager) { super(vertexStep.getTraversal(), graph); vertexStep.getLabels().forEach(this::addLabel); this.direction = vertexStep.getDirection(); this.returnClass = vertexStep.getReturnClass(); this.returnsVertex = vertexStep.returnsVertex(); if (vertexStep.getEdgeLabels().length > 0) { this.edgeLabels = vertexStep.getEdgeLabels(); HasContainer labelsPredicate = new HasContainer(T.label.getAccessor(), P.within(vertexStep.getEdgeLabels())); this.predicates = PredicatesHolderFactory.predicate(labelsPredicate); } else this.predicates = PredicatesHolderFactory.empty(); this.controllers = controllerManager.getControllers(SearchVertexQuery.SearchVertexController.class); this.deferredVertexControllers = controllerManager.getControllers(DeferredVertexQuery.DeferredVertexController.class); this.stepDescriptor = new StepDescriptor(this); limit = -1; }
Direction.BOTH : step.getDirection(); final String[] edgeLabels = step.getEdgeLabels(); if (edgeLabels.length == 0)
/** * Optimizes the given step if possible. Basically this method converts <code>.out()</code> to <code>.outE()</code> * and <code>.values()</code> to <code>.properties()</code>. * * @param traversal the traversal that holds the given step * @param step the step to replace */ private static void optimizeStep(final Traversal.Admin traversal, final Step step) { final Step newStep; if (step instanceof VertexStep) { final VertexStep vs = (VertexStep) step; newStep = new VertexStep<>(traversal, Edge.class, vs.getDirection(), vs.getEdgeLabels()); } else if (step instanceof PropertiesStep) { final PropertiesStep ps = (PropertiesStep) step; newStep = new PropertiesStep(traversal, PropertyType.PROPERTY, ps.getPropertyKeys()); } else { return; } TraversalHelper.replaceStep(step, newStep, traversal); }
/** * Optimizes the given edge-emitting step and the vertex-emitting step by replacing them with a single * vertex-emitting step. * * @param traversal the traversal that holds the given steps * @param step1 the edge-emitting step to replace * @param step2 the vertex-emitting step to replace */ private static void optimizeSteps(final Traversal.Admin traversal, final VertexStep step1, final Step step2) { final Step newStep = new VertexStep(traversal, Vertex.class, step1.getDirection(), step1.getEdgeLabels()); for (final String label : (Iterable<String>) step2.getLabels()) { newStep.addLabel(label); } TraversalHelper.replaceStep(step1, newStep, traversal); traversal.removeStep(step2); }
} else if (step.getPreviousStep() instanceof VertexStep && ((VertexStep) step.getPreviousStep()).returnsEdge() && 0 == ((VertexStep) step.getPreviousStep()).getEdgeLabels().length) { final VertexStep<Edge> previousStep = (VertexStep<Edge>) step.getPreviousStep(); final List<String> edgeLabels = new ArrayList<>();
String[] edgeLabels = vertexStep.getEdgeLabels(); Direction direction = vertexStep.getDirection(); Class<? extends Element> elementClass = vertexStep.getReturnClass();