Class Evaluators

java.lang.Object
org.neo4j.graphdb.traversal.Evaluators

public abstract class Evaluators extends Object
Common Evaluators useful during common traversals.
See Also:
  • Constructor Details

    • Evaluators

      public Evaluators()
  • Method Details

    • all

      public static <STATE> PathEvaluator<STATE> all()
      Type Parameters:
      STATE - the type of the state object.
      Returns:
      an evaluator which includes everything it encounters and doesn't prune anything.
    • excludeStartPosition

      public static PathEvaluator excludeStartPosition()
      Returns:
      an evaluator which never prunes and includes everything except the first position, i.e. the the start node.
    • toDepth

      public static <STATE> PathEvaluator<STATE> toDepth(int depth)
      Returns an Evaluator which includes positions down to depth and prunes everything deeper than that.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      depth - the max depth to traverse to.
      Returns:
      Returns an Evaluator which includes positions down to depth and prunes everything deeper than that.
    • fromDepth

      public static <STATE> PathEvaluator<STATE> fromDepth(int depth)
      Returns an Evaluator which only includes positions from depth and deeper and never prunes anything.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      depth - the depth to start include positions from.
      Returns:
      Returns an Evaluator which only includes positions from depth and deeper and never prunes anything.
    • atDepth

      public static <STATE> PathEvaluator<STATE> atDepth(int depth)
      Returns an Evaluator which only includes positions at depth and prunes everything deeper than that.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      depth - the depth to start include positions from.
      Returns:
      Returns an Evaluator which only includes positions at depth and prunes everything deeper than that.
    • includingDepths

      public static <STATE> PathEvaluator<STATE> includingDepths(int minDepth, int maxDepth)
      Returns an Evaluator which only includes positions between depths minDepth and maxDepth. It prunes everything deeper than maxDepth.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      minDepth - minimum depth a position must have to be included.
      maxDepth - maximum depth a position must have to be included.
      Returns:
      Returns an Evaluator which only includes positions between depths minDepth and maxDepth. It prunes everything deeper than maxDepth.
    • lastRelationshipTypeIs

      public static <STATE> PathEvaluator<STATE> lastRelationshipTypeIs(Evaluation evaluationIfMatch, Evaluation evaluationIfNoMatch, RelationshipType type, RelationshipType... orAnyOfTheseTypes)
      Returns an Evaluator which compares the type of the last relationship in a Path to a given set of relationship types (one or more).If the type of the last relationship in a path is of one of the given types then evaluationIfMatch will be returned, otherwise evaluationIfNoMatch will be returned.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      evaluationIfMatch - the Evaluation to return if the type of the last relationship in the path matches any of the given types.
      evaluationIfNoMatch - the Evaluation to return if the type of the last relationship in the path doesn't match any of the given types.
      type - the (first) type (of possibly many) to match the last relationship in paths with.
      orAnyOfTheseTypes - additional types to match the last relationship in paths with.
      Returns:
      an Evaluator which compares the type of the last relationship in a Path to a given set of relationship types.
    • includeWhereLastRelationshipTypeIs

      public static <STATE> PathEvaluator<STATE> includeWhereLastRelationshipTypeIs(RelationshipType type, RelationshipType... orAnyOfTheseTypes)
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      type - the (first) type (of possibly many) to match the last relationship in paths with.
      orAnyOfTheseTypes - types to match the last relationship in paths with. If any matches it's considered a match.
      Returns:
      an Evaluator which compares the type of the last relationship in a Path to a given set of relationship types.
      See Also:
    • pruneWhereLastRelationshipTypeIs

      public static <STATE> PathEvaluator<STATE> pruneWhereLastRelationshipTypeIs(RelationshipType type, RelationshipType... orAnyOfTheseTypes)
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      type - the (first) type (of possibly many) to match the last relationship in paths with.
      orAnyOfTheseTypes - types to match the last relationship in paths with. If any matches it's considered a match.
      Returns:
      an Evaluator which compares the type of the last relationship in a Path to a given set of relationship types.
      See Also:
    • endNodeIs

      public static <STATE> PathEvaluator<STATE> endNodeIs(Evaluation evaluationIfMatch, Evaluation evaluationIfNoMatch, Node... possibleEndNodes)
      An Evaluator which will return evaluationIfMatch if Path.endNode() for a given path is any of nodes, else evaluationIfNoMatch.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      evaluationIfMatch - the Evaluation to return if the Path.endNode() is any of the nodes in nodes.
      evaluationIfNoMatch - the Evaluation to return if the Path.endNode() doesn't match any of the nodes in nodes.
      possibleEndNodes - a set of nodes to match to end nodes in paths.
      Returns:
      an Evaluator which will return evaluationIfMatch if Path.endNode() for a given path is any of nodes, else evaluationIfNoMatch.
    • includeWhereEndNodeIs

      public static <STATE> PathEvaluator<STATE> includeWhereEndNodeIs(Node... nodes)
      Include paths with the specified end nodes. Uses Evaluators#endNodeIs(Evaluation, Evaluation, Node...) with Evaluation.INCLUDE_AND_CONTINUE for evaluationIfMatch and Evaluation.EXCLUDE_AND_CONTINUE for evaluationIfNoMatch.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      nodes - end nodes for paths to be included in the result.
      Returns:
      paths where the end node is one of nodes
    • pruneWhereEndNodeIs

      public static <STATE> PathEvaluator<STATE> pruneWhereEndNodeIs(Node... nodes)
    • includeIfContainsAll

      public static <STATE> PathEvaluator<STATE> includeIfContainsAll(Node... nodes)
      Evaluator which decides to include a Path if all the nodes exist in it.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      nodes - Nodes that must exist in a Path for it to be included.
      Returns:
      Evaluation.INCLUDE_AND_CONTINUE if all nodes exist in a given Path, otherwise Evaluation.EXCLUDE_AND_CONTINUE.
    • includeIfAcceptedByAny

      public static <STATE> PathEvaluator<STATE> includeIfAcceptedByAny(PathEvaluator... evaluators)
      Whereas adding Evaluators to a TraversalDescription puts those evaluators in AND-mode this can group many evaluators in OR-mode.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      evaluators - represented as one evaluators. If any of the evaluators decides to include a path it will be included.
      Returns:
      an Evaluator which decides to include a path if any of the supplied evaluators wants to include it.
    • includeIfAcceptedByAny

      public static <STATE> PathEvaluator<STATE> includeIfAcceptedByAny(Evaluator... evaluators)
      Whereas adding Evaluators to a TraversalDescription puts those evaluators in AND-mode this can group many evaluators in OR-mode.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      evaluators - represented as one evaluators. If any of the evaluators decides to include a path it will be included.
      Returns:
      an Evaluator which decides to include a path if any of the supplied evaluators wants to include it.
    • endNodeIsAtDepth

      public static <STATE> PathEvaluator<STATE> endNodeIsAtDepth(int depth, Node... possibleEndNodes)
      Returns Evaluators for paths with the specified depth and with an end node from the list of possibleEndNodes.
      Type Parameters:
      STATE - the type of the state object.
      Parameters:
      depth - The exact depth to filter the returned path evaluators.
      possibleEndNodes - Filter for the possible nodes to end the path on.
      Returns:
      Evaluators for paths with the specified depth and with an end node from the list of possibleEndNodes.