Class SimilarImpl

java.lang.Object
org.apache.jackrabbit.oak.query.ast.ConstraintImpl
org.apache.jackrabbit.oak.query.ast.SimilarImpl

public class SimilarImpl extends ConstraintImpl
Support for "similar(...)
  • Field Details

  • Method Details

    • toString

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

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

      public Set<PropertyExistenceImpl> getPropertyExistenceConditions()
      Description copied from class: ConstraintImpl
      Get the set of property existence conditions that can be derived for this condition. For example, for the condition "x=1 or x=2", the property existence condition is "x is not null". For the condition "x=1 or y=2", there is no such condition. For the condition "x=1 and y=1", there are two (x is not null, and y is not null).
      Specified by:
      getPropertyExistenceConditions in class ConstraintImpl
      Returns:
      the common property existence condition (possibly empty)
    • restrict

      public void restrict(FilterImpl f)
      Description copied from class: ConstraintImpl
      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 ConstraintImpl
      Parameters:
      f - the filter
    • restrictPushDown

      public void restrictPushDown(SelectorImpl s)
      Description copied from class: ConstraintImpl
      Push as much of the condition down to this selector, further restricting the selector condition if possible. This is important for a join: for example, the query "select * from a inner join b on a.x=b.x where a.y=1 and b.y=1", the condition "a.y=1" can be pushed down to "a", and the condition "b.y=1" can be pushed down to "b". That means it is possible to use an index in this case.
      Specified by:
      restrictPushDown in class ConstraintImpl
      Parameters:
      s - the selector
    • getSelectors

      public Set<SelectorImpl> getSelectors()
      Description copied from class: ConstraintImpl
      Get the set of selectors for the given condition.
      Specified by:
      getSelectors in class ConstraintImpl
      Returns:
      the set of selectors (possibly empty)
    • bindSelector

      public void bindSelector(SourceImpl source)
    • getPathExpression

      public StaticOperandImpl getPathExpression()
    • copyOf

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

      public boolean requiresFullTextIndex()
      Description copied from class: ConstraintImpl
      Whether the constraint contains a fulltext condition that requires using a fulltext index, because the condition can only be evaluated there.
      Overrides:
      requiresFullTextIndex in class ConstraintImpl
      Returns:
      true if yes
    • 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