当前位置: 首页>>代码示例>>Java>>正文


Java HasContainer.getPredicate方法代码示例

本文整理汇总了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);
}
 
开发者ID:ShiftLeftSecurity,项目名称:tinkergraph-gremlin,代码行数:10,代码来源:TinkerGraphStep.java

示例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);
}
 
开发者ID:unipop-graph,项目名称:unipop,代码行数:12,代码来源:DateFieldPropertySchema.java

示例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");
}
 
开发者ID:unipop-graph,项目名称:unipop,代码行数:15,代码来源:FilterHelper.java

示例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);
}
 
开发者ID:unipop-graph,项目名称:unipop,代码行数:16,代码来源:JdbcPredicatesTranslator.java

示例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;
}
 
开发者ID:apache,项目名称:tinkerpop,代码行数:41,代码来源:InlineFilterStrategy.java


注:本文中的org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer.getPredicate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。