本文整理汇总了Java中org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper.insertAfterStep方法的典型用法代码示例。如果您正苦于以下问题:Java TraversalHelper.insertAfterStep方法的具体用法?Java TraversalHelper.insertAfterStep怎么用?Java TraversalHelper.insertAfterStep使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper
的用法示例。
在下文中一共展示了TraversalHelper.insertAfterStep方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: apply
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper; //导入方法依赖的package包/类
@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(this.idPropertyKey, idMaker.get());
}
});
}
示例2: shouldInsertAfterStep
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper; //导入方法依赖的package包/类
@Test
public void shouldInsertAfterStep() {
final Traversal.Admin traversal = new DefaultTraversal<>(EmptyGraph.instance());
final HasStep hasStep = new HasStep(traversal);
final IdentityStep identityStep = new IdentityStep(traversal);
traversal.asAdmin().addStep(0, new HasStep(traversal));
traversal.asAdmin().addStep(0, hasStep);
traversal.asAdmin().addStep(0, new HasStep(traversal));
TraversalHelper.insertAfterStep(identityStep, hasStep, traversal);
assertEquals(traversal.asAdmin().getSteps().get(2), identityStep);
assertEquals(4, traversal.asAdmin().getSteps().size());
}
示例3: apply
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper; //导入方法依赖的package包/类
@Override
public void apply(final Traversal.Admin<?, ?> traversal) {
if (TraversalHelper.onGraphComputer(traversal) ||
traversal.getTraverserRequirements().contains(TraverserRequirement.PATH) ||
(IS_TESTING && ((TraversalHelper.hasStepOfAssignableClass(ProfileStep.class, TraversalHelper.getRootTraversal(traversal)) ||
TraversalHelper.hasStepOfAssignableClass(ProfileSideEffectStep.class, TraversalHelper.getRootTraversal(traversal)))))) // necessary cause ProfileTest analyzes counts
return;
boolean foundFlatMap = false;
boolean labeledPath = false;
for (int i = 0; i < traversal.getSteps().size(); i++) {
final Step<?, ?> step = traversal.getSteps().get(i);
if (step instanceof PathProcessor) {
final Set<String> keepLabels = ((PathProcessor) step).getKeepLabels();
if (null != keepLabels && keepLabels.isEmpty()) // if no more path data, then start barrier'ing again
labeledPath = false;
}
if (step instanceof FlatMapStep &&
!(step instanceof VertexStep && ((VertexStep) step).returnsEdge()) ||
(step instanceof GraphStep &&
(i > 0 || ((GraphStep) step).getIds().length >= BIG_START_SIZE ||
(((GraphStep) step).getIds().length == 0 && !(step.getNextStep() instanceof HasStep))))) {
if (foundFlatMap && !labeledPath &&
!(step.getNextStep() instanceof Barrier) &&
!(step.getNextStep() instanceof NoneStep) &&
!(step.getNextStep() instanceof EmptyStep)) {
final Step noOpBarrierStep = new NoOpBarrierStep<>(traversal, MAX_BARRIER_SIZE);
TraversalHelper.copyLabels(step, noOpBarrierStep, true);
TraversalHelper.insertAfterStep(noOpBarrierStep, step, traversal);
} else
foundFlatMap = true;
}
if (!step.getLabels().isEmpty())
labeledPath = true;
}
}
示例4: apply
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper; //导入方法依赖的package包/类
@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());
}
});
}
示例5: applyCriterion
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper; //导入方法依赖的package包/类
private static void applyCriterion(final List<Step> stepsToApplyCriterionAfter, final Traversal.Admin traversal,
final Traversal.Admin<? extends Element, ?> criterion) {
for (final Step<?, ?> step : stepsToApplyCriterionAfter) {
// re-assign the step label to the criterion because the label should apply seamlessly after the filter
final Step filter = new TraversalFilterStep<>(traversal, criterion.clone());
TraversalHelper.insertAfterStep(filter, step, traversal);
TraversalHelper.copyLabels(step, filter, true);
}
}