本文整理汇总了Java中org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer.getPredicate方法的典型用法代码示例。如果您正苦于以下问题:Java HasContainer.getPredicate方法的具体用法?Java HasContainer.getPredicate怎么用?Java HasContainer.getPredicate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer
的用法示例。
在下文中一共展示了HasContainer.getPredicate方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: addHasContainer
import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer; //导入方法依赖的package包/类
@Override
public void addHasContainer(final HasContainer hasContainer) {
if (hasContainer.getPredicate() instanceof AndP) {
for (final P<?> predicate : ((AndP<?>) hasContainer.getPredicate()).getPredicates()) {
this.addHasContainer(new HasContainer(hasContainer.getKey(), predicate));
}
} else
this.hasContainers.add(hasContainer);
}
示例2: explodeConnective
import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer; //导入方法依赖的package包/类
public PredicatesHolder explodeConnective(HasContainer has) {
if (has.getBiPredicate() instanceof ConnectiveP) {
List<P> predicates = ((ConnectiveP) has.getBiPredicate()).getPredicates();
PredicatesHolder.Clause clause = has.getPredicate() instanceof AndP ?
PredicatesHolder.Clause.And : PredicatesHolder.Clause.Or;
Set<HasContainer> hasContainers = predicates.stream()
.map(p -> new HasContainer(has.getKey(), p)).collect(Collectors.toSet());
return PredicatesHolderFactory.createFromPredicates(clause, hasContainers);
}
return PredicatesHolderFactory.predicate(has);
}
示例3: createFilter
import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer; //导入方法依赖的package包/类
public static QueryBuilder createFilter(HasContainer container) {
String key = container.getKey();
P predicate = container.getPredicate();
Object value = predicate.getValue();
BiPredicate<?, ?> biPredicate = predicate.getBiPredicate();
if (key.equals("id") || key.equals("_id")) return getIdsFilter(value);
else if (key.equals("type") || key.equals("_type")) return getTypeFilter(container);
else if (predicate instanceof ConnectiveP) {
return handleConnectiveP(key, (ConnectiveP) predicate);
} else if (biPredicate != null) {
return predicateToQuery(key, value, biPredicate);
} else if (predicate instanceof ExistsP) return QueryBuilders.existsQuery(key);
else throw new IllegalArgumentException("HasContainer not supported by unipop");
}
示例4: extractCondition
import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer; //导入方法依赖的package包/类
private Condition extractCondition(HasContainer hasContainer) {
String key = hasContainer.getKey();
P predicate = hasContainer.getPredicate();
Object value = predicate.getValue();
BiPredicate<?, ?> biPredicate = predicate.getBiPredicate();
Field<Object> field = field(key);
if (predicate instanceof ConnectiveP){
return handleConnectiveP(key, (ConnectiveP) predicate);
}
else if (predicate instanceof ExistsP) {
return field.isNotNull();
} else return predicateToQuery(key, value, biPredicate);
}
示例5: processOrStep
import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer; //导入方法依赖的package包/类
private static final boolean processOrStep(final OrStep<?> step, final Traversal.Admin<?, ?> traversal) {
boolean process = true;
String key = null;
P predicate = null;
final List<String> labels = new ArrayList<>();
for (final Traversal.Admin<?, ?> childTraversal : step.getLocalChildren()) {
InlineFilterStrategy.instance().apply(childTraversal); // todo: this may be a bad idea, but I can't seem to find a test case to break it
for (final Step<?, ?> childStep : childTraversal.getSteps()) {
if (childStep instanceof HasStep) {
for (final HasContainer hasContainer : ((HasStep<?>) childStep).getHasContainers()) {
if (null == key)
key = hasContainer.getKey();
else if (!hasContainer.getKey().equals(key)) {
process = false;
break;
}
predicate = null == predicate ?
hasContainer.getPredicate() :
predicate.or(hasContainer.getPredicate());
}
labels.addAll(childStep.getLabels());
} else {
process = false;
break;
}
}
if (!process)
break;
}
if (process) {
final HasStep hasStep = new HasStep<>(traversal, new HasContainer(key, predicate));
TraversalHelper.replaceStep(step, hasStep, traversal);
TraversalHelper.copyLabels(step, hasStep, false);
for (final String label : labels) {
hasStep.addLabel(label);
}
return true;
}
return false;
}