Java Code Examples for org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep#getIds()
The following examples show how to use
org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep#getIds() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TinkerGraphStep.java From tinkergraph-gremlin with Apache License 2.0 | 5 votes |
public TinkerGraphStep(final GraphStep<S, E> originalGraphStep) { super(originalGraphStep.getTraversal(), originalGraphStep.getReturnClass(), originalGraphStep.isStartStep(), originalGraphStep.getIds()); originalGraphStep.getLabels().forEach(this::addLabel); // we used to only setIteratorSupplier() if there were no ids OR the first id was instanceof Element, // but that allowed the filter in g.V(v).has('k','v') to be ignored. this created problems for // PartitionStrategy which wants to prevent someone from passing "v" from one TraversalSource to // another TraversalSource using a different partition this.setIteratorSupplier(() -> (Iterator<E>) (Vertex.class.isAssignableFrom(this.returnClass) ? this.vertices() : this.edges())); }
Example 2
Source File: JanusGraphStep.java From grakn with GNU Affero General Public License v3.0 | 5 votes |
public JanusGraphStep(GraphStep<S, E> originalStep) { super(originalStep.getTraversal(), originalStep.getReturnClass(), originalStep.isStartStep(), originalStep.getIds()); originalStep.getLabels().forEach(this::addLabel); this.setIteratorSupplier(() -> { if (this.ids == null) { return Collections.emptyIterator(); } else if (this.ids.length > 0) { Graph graph = (Graph) traversal.asAdmin().getGraph().get(); return iteratorList((Iterator) graph.vertices(this.ids)); } if (hasLocalContainers.isEmpty()) { hasLocalContainers.put(new ArrayList<>(), new QueryInfo(new ArrayList<>(), 0, BaseQuery.NO_LIMIT)); } JanusGraphTransaction tx = JanusGraphTraversalUtil.getTx(traversal); GraphCentricQuery globalQuery = buildGlobalGraphCentricQuery(tx); Multimap<Integer, GraphCentricQuery> queries = ArrayListMultimap.create(); if (globalQuery != null && !globalQuery.getSubQuery(0).getBackendQuery().isEmpty()) { queries.put(0, globalQuery); } else { hasLocalContainers.entrySet().forEach(c -> queries.put(c.getValue().getLowLimit(), buildGraphCentricQuery(tx, c))); } GraphCentricQueryBuilder builder = (GraphCentricQueryBuilder) tx.query(); List<Iterator<E>> responses = new ArrayList<>(); queries.entries().forEach(q -> executeGraphCentryQuery(builder, responses, q)); return new MultiDistinctOrderedIterator<E>(lowLimit, highLimit, responses, orders); }); }
Example 3
Source File: TitanGraphStep.java From titan1withtp3.1 with Apache License 2.0 | 5 votes |
public TitanGraphStep(final GraphStep<S, E> originalStep) { super(originalStep.getTraversal(), originalStep.getReturnClass(), originalStep.isStartStep(), originalStep.getIds()); originalStep.getLabels().forEach(this::addLabel); this.setIteratorSupplier(() -> { TitanTransaction tx = TitanTraversalUtil.getTx(traversal); TitanGraphQuery query = tx.query(); for (HasContainer condition : hasContainers) { query.has(condition.getKey(), TitanPredicate.Converter.convert(condition.getBiPredicate()), condition.getValue()); } for (OrderEntry order : orders) query.orderBy(order.key, order.order); if (limit != BaseQuery.NO_LIMIT) query.limit(limit); ((GraphCentricQueryBuilder) query).profiler(queryProfiler); return Vertex.class.isAssignableFrom(this.returnClass) ? query.vertices().iterator() : query.edges().iterator(); }); }
Example 4
Source File: ElementIdStrategy.java From tinkerpop with Apache License 2.0 | 5 votes |
@Override public void apply(final Traversal.Admin<?, ?> traversal) { TraversalHelper.getStepsOfAssignableClass(HasStep.class, traversal).stream() .filter(hasStep -> ((HasStep<?>) hasStep).getHasContainers().get(0).getKey().equals(T.id.getAccessor())) .forEach(hasStep -> ((HasStep<?>) hasStep).getHasContainers().get(0).setKey(this.idPropertyKey)); if (traversal.getStartStep() instanceof GraphStep) { final GraphStep graphStep = (GraphStep) traversal.getStartStep(); // only need to apply the custom id if ids were assigned - otherwise we want the full iterator. // note that it is then only necessary to replace the step if the id is a non-element. other tests // in the suite validate that items in getIds() is uniform so it is ok to just test the first item // in the list. if (graphStep.getIds().length > 0 && !(graphStep.getIds()[0] instanceof Element)) { if (graphStep instanceof HasContainerHolder) ((HasContainerHolder) graphStep).addHasContainer(new HasContainer(this.idPropertyKey, P.within(Arrays.asList(graphStep.getIds())))); else TraversalHelper.insertAfterStep(new HasStep(traversal, new HasContainer(this.idPropertyKey, P.within(Arrays.asList(graphStep.getIds())))), graphStep, traversal); graphStep.clearIds(); } } TraversalHelper.getStepsOfAssignableClass(IdStep.class, traversal).stream().forEach(step -> { TraversalHelper.replaceStep(step, new PropertiesStep(traversal, PropertyType.VALUE, idPropertyKey), traversal); }); // in each case below, determine if the T.id is present and if so, replace T.id with the idPropertyKey or if // it is not present then shove it in there and generate an id traversal.getSteps().forEach(step -> { if (step instanceof AddVertexStep || step instanceof AddVertexStartStep || step instanceof AddEdgeStep) { final Parameterizing parameterizing = (Parameterizing) step; if (parameterizing.getParameters().contains(T.id)) parameterizing.getParameters().rename(T.id, this.idPropertyKey); else if (!parameterizing.getParameters().contains(this.idPropertyKey)) parameterizing.getParameters().set(null, this.idPropertyKey, idMaker.get()); } }); }
Example 5
Source File: TinkerGraphStep.java From tinkerpop with Apache License 2.0 | 5 votes |
public TinkerGraphStep(final GraphStep<S, E> originalGraphStep) { super(originalGraphStep.getTraversal(), originalGraphStep.getReturnClass(), originalGraphStep.isStartStep(), originalGraphStep.getIds()); originalGraphStep.getLabels().forEach(this::addLabel); // we used to only setIteratorSupplier() if there were no ids OR the first id was instanceof Element, // but that allowed the filter in g.V(v).has('k','v') to be ignored. this created problems for // PartitionStrategy which wants to prevent someone from passing "v" from one TraversalSource to // another TraversalSource using a different partition this.setIteratorSupplier(() -> (Iterator<E>) (Vertex.class.isAssignableFrom(this.returnClass) ? this.vertices() : this.edges())); }
Example 6
Source File: GraphStrategy.java From sqlg with MIT License | 5 votes |
void apply() { final Step<?, ?> startStep = traversal.getStartStep(); if (!(startStep instanceof GraphStep)) { return; } final GraphStep originalGraphStep = (GraphStep) startStep; if (this.sqlgGraph.features().supportsBatchMode() && this.sqlgGraph.tx().isInNormalBatchMode()) { this.sqlgGraph.tx().flush(); } if (originalGraphStep.getIds().length > 0) { Object id = originalGraphStep.getIds()[0]; if (id != null) { Class clazz = id.getClass(); //noinspection unchecked if (!Stream.of(originalGraphStep.getIds()).allMatch(i -> clazz.isAssignableFrom(i.getClass()))) throw Graph.Exceptions.idArgsMustBeEitherIdOrElement(); } } if (this.canNotBeOptimized()) { logger.debug("gremlin not optimized due to path or tree step. " + this.traversal.toString() + "\nPath to gremlin:\n" + ExceptionUtils.getStackTrace(new Throwable())); return; } combineSteps(); }
Example 7
Source File: GraphStrategy.java From sqlg with MIT License | 5 votes |
@Override protected SqlgStep constructSqlgStep(Step startStep) { Preconditions.checkArgument(startStep instanceof GraphStep, "Expected a GraphStep, found instead a " + startStep.getClass().getName()); GraphStep<?, ?> graphStep = (GraphStep) startStep; //noinspection unchecked return new SqlgGraphStep(this.sqlgGraph, this.traversal, graphStep.getReturnClass(), graphStep.isStartStep(), graphStep.getIds()); }
Example 8
Source File: BitsyGraphStep.java From bitsy with Apache License 2.0 | 4 votes |
public BitsyGraphStep(final GraphStep<S, E> originalGraphStep) { super(originalGraphStep.getTraversal(), originalGraphStep.getReturnClass(), originalGraphStep.isStartStep(), originalGraphStep.getIds()); originalGraphStep.getLabels().forEach(this::addLabel); this.setIteratorSupplier(() -> (Iterator<E>) (Vertex.class.isAssignableFrom(this.returnClass) ? this.vertices() : this.edges())); }
Example 9
Source File: HBaseGraphStep.java From hgraphdb with Apache License 2.0 | 4 votes |
@SuppressWarnings("unchecked") public HBaseGraphStep(final GraphStep<S, E> originalGraphStep) { super(originalGraphStep.getTraversal(), originalGraphStep.getReturnClass(), originalGraphStep.isStartStep(), originalGraphStep.getIds()); originalGraphStep.getLabels().forEach(this::addLabel); this.setIteratorSupplier(() -> (Iterator<E>) (Vertex.class.isAssignableFrom(this.returnClass) ? this.vertices() : this.edges())); }
Example 10
Source File: Neo4jGraphStep.java From tinkerpop with Apache License 2.0 | 4 votes |
public Neo4jGraphStep(final GraphStep<S, E> originalGraphStep) { super(originalGraphStep.getTraversal(), originalGraphStep.getReturnClass(), originalGraphStep.isStartStep(), originalGraphStep.getIds()); originalGraphStep.getLabels().forEach(this::addLabel); this.setIteratorSupplier(() -> (Iterator<E>) (Vertex.class.isAssignableFrom(this.returnClass) ? this.vertices() : this.edges())); }