Class EquiJoinConditionImpl

java.lang.Object
org.apache.jackrabbit.oak.query.ast.JoinConditionImpl
org.apache.jackrabbit.oak.query.ast.EquiJoinConditionImpl

public class EquiJoinConditionImpl extends JoinConditionImpl
The "a.x = b.y" join condition.
  • Field Details

  • Constructor Details

    • EquiJoinConditionImpl

      public EquiJoinConditionImpl(String selector1Name, String property1Name, String selector2Name, String property2Name)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • bindSelector

      public void bindSelector(SourceImpl source)
    • evaluate

      public boolean evaluate()
      Description copied from class: JoinConditionImpl
      Evaluate the result using the currently set values.
      Specified by:
      evaluate in class JoinConditionImpl
      Returns:
      true if the constraint matches
    • restrict

      public void restrict(FilterImpl f)
      Description copied from class: JoinConditionImpl
      Apply the condition to the filter, further restricting the filter if possible. This may also verify the data types are compatible, and that paths are valid.
      Specified by:
      restrict in class JoinConditionImpl
      Parameters:
      f - the filter
    • restrictPushDown

      public void restrictPushDown(SelectorImpl s)
      Description copied from class: JoinConditionImpl
      Push as much of the condition down to this selector, further restricting the selector condition if possible.
      Specified by:
      restrictPushDown in class JoinConditionImpl
      Parameters:
      s - the selector
    • isParent

      public boolean isParent(SourceImpl source)
      Description copied from class: JoinConditionImpl
      Check whether the given source is the parent of the join condition, as selector "[b]" is the parent of the join condition "isdescendantnode([a], [b])".
      Specified by:
      isParent in class JoinConditionImpl
      Parameters:
      source - the source
      Returns:
      true if the source is the parent
    • canEvaluate

      public boolean canEvaluate(Set<SourceImpl> available)
      Description copied from class: JoinConditionImpl
      Whether the join condition can be evaluated if the given selectors are able to retrieve data.
      Specified by:
      canEvaluate in class JoinConditionImpl
      Parameters:
      available - the available selectors
      Returns:
      true if the condition can be evaluated
    • copyOf

      public org.apache.jackrabbit.oak.query.ast.AstElement copyOf()
      Returns:
      a clone of self. Default implementation in AstElement returns same reference to this.
    • protect

      protected String protect(Object expression)
    • quote

      protected static String quote(String pathOrName)
    • quoteJson

      protected static String quoteJson(String string)
    • setQuery

      public void setQuery(QueryImpl query)
    • normalizePropertyName

      protected String normalizePropertyName(String propertyName)
      Normalize the property name (including namespace remapping). Asterisks are kept.
      Parameters:
      propertyName - the property name to normalize
      Returns:
      the normalized (oak-) property name
    • normalizePath

      protected String normalizePath(String path)
      Validate and normalize the path.
      Parameters:
      path - the path to validate
      Returns:
      the validated and normalized path
    • convertValueToType

      protected PropertyValue convertValueToType(PropertyValue v, PropertyValue targetType)
    • getLocalPath

      protected String getLocalPath(String path)
      Calculate the session local path (the path excluding the workspace name) if possible.
      Parameters:
      path - the absolute path
      Returns:
      the session local path, or null if not within this workspace