/** * Add an IdentityPipe to the end of the Pipeline. * Useful in various situations where a step is needed without processing. * For example, useful when two as-steps are needed in a row. * * @return the extended Pipeline */ public GremlinPipeline<S, E> _() { return this.add(new IdentityPipe()); }
public List getCurrentPath() { return this.startIsGraph ? new ArrayList() : super.getCurrentPath(); } }
public PipesPipeline<S, E> _() { return this.add(new IdentityPipe<E>()); }
public IndexElementsPipe(final Index<E> index, final String key, final Object value) { super.setStarts(index.get(key, value).iterator()); } }
queryPipe.setHighRange(((RangeFilterPipe) pipe).getHighRange()); pipeline.addPipe(new IdentityPipe()); return true; } else {
private static boolean optimizePipelineForGraphQuery(final GremlinPipeline pipeline, final Pipe pipe) { GraphQueryPipe queryPipe = null; for (int i = pipeline.size() - 1; i > 0; i--) { final Pipe temp = pipeline.get(i); if (temp instanceof GraphQueryPipe) { queryPipe = (GraphQueryPipe) temp; break; } else if (!(temp instanceof IdentityPipe)) break; } if (null != queryPipe) { if (pipe instanceof PropertyFilterPipe) { final PropertyFilterPipe temp = (PropertyFilterPipe) pipe; queryPipe.addHasContainer(new QueryPipe.HasContainer(temp.getKey(), temp.getPredicate(), temp.getValue())); } else if (pipe instanceof IntervalFilterPipe) { final IntervalFilterPipe temp = (IntervalFilterPipe) pipe; queryPipe.addIntervalContainer(new QueryPipe.IntervalContainer(temp.getKey(), temp.getStartValue(), temp.getEndValue())); } else if (pipe instanceof RangeFilterPipe) { queryPipe.setLowRange(((RangeFilterPipe) pipe).getLowRange()); queryPipe.setHighRange(((RangeFilterPipe) pipe).getHighRange()); } pipeline.addPipe(new IdentityPipe()); return true; } else { return false; } } }