org.apache.tinkerpop.gremlin.structure.T类的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(13.2k)|赞(0)|评价(0)|浏览(102)

本文整理了Java中org.apache.tinkerpop.gremlin.structure.T类的一些代码示例,展示了T类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。T类的具体详情如下:
包路径:org.apache.tinkerpop.gremlin.structure.T
类名称:T

T介绍

[英]A collection of (T)okens which allows for more concise Traversal definitions. T implements Function can be used to map an element to its token value. For example, T.id.apply(element).
[中]允许更简洁的遍历定义的(T)oken集合。T implements函数可用于将元素映射到其标记值。例如,[$0$]。

代码示例

代码示例来源:origin: apache/tinkerpop

/**
 * Filters vertices, edges and vertex properties based on their label.
 *
 * @param label       the label of the {@link Element}
 * @param otherLabels additional labels of the {@link Element}
 * @return the traversal with an appended {@link HasStep}
 * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#has-step" target="_blank">Reference Documentation - Has Step</a>
 * @since 3.2.2
 */
public default GraphTraversal<S, E> hasLabel(final String label, final String... otherLabels) {
  final String[] labels = new String[otherLabels.length + 1];
  labels[0] = label;
  System.arraycopy(otherLabels, 0, labels, 1, otherLabels.length);
  this.asAdmin().getBytecode().addStep(Symbols.hasLabel, labels);
  return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.label.getAccessor(), labels.length == 1 ? P.eq(labels[0]) : P.within(labels)));
}

代码示例来源:origin: apache/tinkerpop

private static char isLocalStarGraph(final Traversal.Admin<?, ?> traversal, char state) {
  if (state == 'u' &&
      (traversal instanceof ElementValueTraversal ||
          (traversal instanceof TokenTraversal && !((TokenTraversal) traversal).getToken().equals(T.id))))
    return 'x';
  for (final Step step : traversal.getSteps()) {
    } else if (step instanceof HasContainerHolder && state == 'u') {
      for (final HasContainer hasContainer : ((HasContainerHolder) step).getHasContainers()) {
        if (!hasContainer.getKey().equals(T.id.getAccessor()))
          return 'x';

代码示例来源:origin: apache/tinkerpop

@Override
public void addStart(final Traverser.Admin<S> start) {
  this.e = (E) this.t.apply(start.get());
}

代码示例来源:origin: apache/tinkerpop

/**
 * Filters vertices, edges and vertex properties based on their properties.
 *
 * @param label       the label of the {@link Element}
 * @param propertyKey the key of the property to filter on
 * @param value       the value to compare the accessor value to for equality
 * @return the traversal with an appended {@link HasStep}
 * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#has-step" target="_blank">Reference Documentation - Has Step</a>
 * @since 3.0.0-incubating
 */
public default GraphTraversal<S, E> has(final String label, final String propertyKey, final Object value) {
  this.asAdmin().getBytecode().addStep(Symbols.has, label, propertyKey, value);
  TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.label.getAccessor(), P.eq(label)));
  return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(propertyKey, value instanceof P ? (P) value : P.eq(value)));
}

代码示例来源:origin: apache/tinkerpop

final List<String> edgeLabels = new ArrayList<>();
for (final HasContainer hasContainer : new ArrayList<>(step.getHasContainers())) {
  if (hasContainer.getKey().equals(T.label.getAccessor())) {
    if (hasContainer.getBiPredicate() == Compare.eq &&
        hasContainer.getValue() instanceof String &&
        edgeLabels.isEmpty()) {
      edgeLabels.add((String) hasContainer.getValue());
      final List<String> newEdges = new ArrayList<>();
      for (int i = 0; i < orps.size(); i++) {
        if (orps.get(i).getBiPredicate() == Compare.eq && orps.get(i).getValue() instanceof String)
          newEdges.add((String) orps.get(i).getValue());
        else {
          removeContainer = false;

代码示例来源:origin: rmagen/elastic-gremlin

@Override
public Iterator<Edge> edges(Object[] edgeIds) {
  Predicates predicates = new Predicates();
  predicates.hasContainers.add(new HasContainer(T.id.getAccessor(), P.within(edgeIds)));
  return edges(predicates);
}

代码示例来源:origin: apache/tinkerpop

return IteratorUtils.filter(graph.vertices(ids), vertex -> HasContainer.testAll(vertex, hasContainers));
    .filter(hasContainer -> hasContainer.getKey().equals(T.label.getAccessor()))
    .filter(hasContainer -> Compare.eq == hasContainer.getBiPredicate())
    .map(hasContainer -> (String) hasContainer.getValue())
    .findAny();
if (!label.isPresent())
  label = hasContainers.stream()
      .filter(hasContainer -> hasContainer.getKey().equals(T.label.getAccessor()))
      .filter(hasContainer -> hasContainer.getPredicate() instanceof LabelP)
      .map(hasContainer -> (String) hasContainer.getValue())
    if (Compare.eq == hasContainer.getBiPredicate() && !hasContainer.getKey().equals(T.label.getAccessor())) {
      if (graph.getBaseGraph().hasSchemaIndex(label.get(), hasContainer.getKey())) {
        return IteratorUtils.stream(graph.getBaseGraph().findNodes(label.get(), hasContainer.getKey(), hasContainer.getValue()))

代码示例来源:origin: apache/tinkerpop

/**
   * Helper method for providers that want to "fold in" {@link HasContainer}'s based on id checking into the ids of the {@link GraphStep}.
   *
   * @param graphStep    the GraphStep to potentially {@link GraphStep#addIds(Object...)}.
   * @param hasContainer The {@link HasContainer} to check for id validation.
   * @return true if the {@link HasContainer} updated ids and thus, was processed.
   */
  public static boolean processHasContainerIds(final GraphStep<?, ?> graphStep, final HasContainer hasContainer) {
    if (hasContainer.getKey().equals(T.id.getAccessor()) && graphStep.ids.length == 0 &&
        (hasContainer.getBiPredicate() == Compare.eq || hasContainer.getBiPredicate() == Contains.within)) {
      graphStep.addIds(hasContainer.getValue());
      return true;
    }
    return false;
  }
}

代码示例来源:origin: apache/tinkerpop

@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));
        ((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();

代码示例来源:origin: apache/tinkerpop

/**
 * Filters vertices, edges and vertex properties based on their label.
 *
 * @param predicate the filter to apply to the label of the {@link Element}
 * @return the traversal with an appended {@link HasStep}
 * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#has-step" target="_blank">Reference Documentation - Has Step</a>
 * @since 3.2.4
 */
public default GraphTraversal<S, E> hasLabel(final P<String> predicate) {
  this.asAdmin().getBytecode().addStep(Symbols.hasLabel, predicate);
  return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.label.getAccessor(), predicate));
}

代码示例来源:origin: apache/tinkerpop

public HasContainer(final String key, final P<?> predicate) {
  this.key = key;
  this.predicate = predicate;
  if (!this.key.equals(T.id.getAccessor()))
    testingIdString = false;
  else {
    // the values should be homogenous if a collection is submitted
    final Object predicateValue = this.predicate.getValue();
    // enforce a homogenous collection of values when testing ids
    enforceHomogenousCollectionIfPresent(predicateValue);
    // grab an instance of a value which is either the first item in a homogeneous collection or the value itself
    final Object valueInstance = this.predicate.getValue() instanceof Collection ?
        ((Collection) this.predicate.getValue()).isEmpty() ?
            new Object() :
            ((Collection) this.predicate.getValue()).toArray()[0] :
        this.predicate.getValue();
    // if the key being evaluated is id then the has() test can evaluate as a toString() representation of the
    // identifier.  this could be done in the test() method but it seems cheaper to do the conversion once in
    // the constructor.  the original value in P is maintained separately
    this.testingIdString = this.key.equals(T.id.getAccessor()) && valueInstance instanceof String;
    if (this.testingIdString)
      this.predicate.setValue(this.predicate.getValue() instanceof Collection ?
          IteratorUtils.set(IteratorUtils.map(((Collection<Object>) this.predicate.getValue()).iterator(), Object::toString)) :
          this.predicate.getValue().toString());
  }
}

代码示例来源:origin: hugegraph/hugegraph

public static boolean keyForContainsKeyOrValue(String key) {
  return key.equals(T.key.getAccessor()) ||
      key.equals(T.value.getAccessor());
}

代码示例来源:origin: org.umlg/sqlg-core

private void addIdHasContainers(SchemaTableTree schemaTableTree1, List<Multimap<BiPredicate, RecordId>> biPredicateRecordIds) {
  if (biPredicateRecordIds != null) {
    for (Multimap<BiPredicate, RecordId> biPredicateRecordId : biPredicateRecordIds) {
      for (BiPredicate biPredicate : biPredicateRecordId.keySet()) {
        Collection<RecordId> recordIds = biPredicateRecordId.get(biPredicate);
        HasContainer idHasContainer;
        //id hasContainers are only optimized for BaseStrategy.SUPPORTED_ID_BI_PREDICATE within, without, eq, neq
        if (biPredicate == Contains.without || biPredicate == Contains.within) {
          idHasContainer = new HasContainer(T.id.getAccessor(), P.test(biPredicate, recordIds));
          schemaTableTree1.getHasContainers().add(idHasContainer);
        } else {
          Preconditions.checkState(biPredicate == Compare.eq || biPredicate == Compare.neq);
          for (RecordId recordId : recordIds) {
            idHasContainer = new HasContainer(T.id.getAccessor(), P.test(biPredicate, recordId));
            schemaTableTree1.getHasContainers().add(idHasContainer);
          }
        }
      }
    }
  }
}

代码示例来源:origin: apache/tinkerpop

public final boolean test(final Element element) {
  // it is OK to evaluate equality of ids via toString(), given that the test suite enforces the value of
  // id().toString() to be a first class representation of the identifier. a string test is only executed
  // if the predicate value is a String.  this allows stuff like: g.V().has(id,lt(10)) to work properly
  if (this.key.equals(T.id.getAccessor()))
    return testingIdString ? testIdAsString(element) : testId(element);
  else if (this.key.equals(T.label.getAccessor()))
    return testLabel(element);
  else if (element instanceof VertexProperty && this.key.equals(T.value.getAccessor()))
    return testValue((VertexProperty) element);
  else if (element instanceof VertexProperty && this.key.equals(T.key.getAccessor()))
    return testKey((VertexProperty) element);
  else {
    if (element instanceof Vertex) {
      final Iterator<? extends Property> itty = element.properties(this.key);
      while (itty.hasNext()) {
        if (testValue(itty.next()))
          return true;
      }
      return false;
    } else {
      final Property property = element.property(this.key);
      return property.isPresent() && testValue(property);
    }
  }
}

代码示例来源:origin: apache/tinkerpop

public default ElementRequirement getMaxRequirement() {
  ElementRequirement max = ElementRequirement.ID;
  if (this instanceof TraversalParent) {
    for (final Traversal.Admin<Object, Object> traversal : ((TraversalParent) this).getLocalChildren()) {
      if (traversal instanceof IdentityTraversal) {
        if (max.compareTo(ElementRequirement.ID) < 0)
          max = ElementRequirement.ID;
      } else if (traversal instanceof TokenTraversal && ((TokenTraversal) traversal).getToken().equals(T.id)) {
        if (max.compareTo(ElementRequirement.ID) < 0)
          max = ElementRequirement.ID;
      } else if (traversal instanceof TokenTraversal && ((TokenTraversal) traversal).getToken().equals(T.label)) {
        if (max.compareTo(ElementRequirement.LABEL) < 0)
          max = ElementRequirement.LABEL;
      } else if (traversal instanceof ElementValueTraversal) {
        if (max.compareTo(ElementRequirement.PROPERTIES) < 0)
          max = ElementRequirement.PROPERTIES;
      } else {
        max = ElementRequirement.EDGES;
      }
    }
  }
  return max;
}

代码示例来源:origin: unipop-graph/unipop

public UniElement(Map<String, Object> properties, ElementSchema schema, UniGraph graph) {
  this.graph = graph;
  this.schema = schema;
  this.id = ObjectUtils.firstNonNull(
      properties.remove(T.id.getAccessor()),
      properties.remove(T.id.toString()),
      UUID.randomUUID())
      .toString();
  this.label = ObjectUtils.firstNonNull(
      properties.remove(T.label.getAccessor()),
      properties.remove(T.label.toString()),
      getDefaultLabel())
      .toString();
}

代码示例来源:origin: stackoverflow.com

T item = getItem(position);
if (item instanceof CharSequence) {
  text.setText((CharSequence)item);
} else {
  text.setText(item.toString());
}

代码示例来源:origin: stackoverflow.com

public BinarySearchTreeNode<T> getParent(BinarySearchTreeNode<T> e) {
  if (e == null) {
    return null;
  }
  BinarySearchTreeNode<T> current = this.root;
  T eValue = e.getValue();
  while (current != null) {
    if (howManyChildren(current) == 0) {
      return null;
    } else if ((current.getLeft()!=null && eValue.equals(current.getLeft().getValue()))
        || (current.getRight()!=null) && eValue.equals(current.getRight().getValue())) {
      return current;
    } else if (eValue.compareTo(current.getValue()) < 0) {
      current = current.getLeft();
    } else {
      current = current.getRight();
    }
  }
  return null;

}

代码示例来源:origin: apache/tinkerpop

@Override
public int hashCode() {
  return this.getClass().hashCode() ^ this.t.hashCode();
}

代码示例来源:origin: apache/tinkerpop

/**
 * Filters vertices, edges and vertex properties based on their properties.
 *
 * @param label       the label of the {@link Element}
 * @param propertyKey the key of the property to filter on
 * @param predicate   the filter to apply to the key's value
 * @return the traversal with an appended {@link HasStep}
 * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#has-step" target="_blank">Reference Documentation - Has Step</a>
 * @since 3.0.0-incubating
 */
public default GraphTraversal<S, E> has(final String label, final String propertyKey, final P<?> predicate) {
  this.asAdmin().getBytecode().addStep(Symbols.has, label, propertyKey, predicate);
  TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.label.getAccessor(), P.eq(label)));
  return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(propertyKey, predicate));
}

相关文章

微信公众号

最新文章

更多