Class JoinConditionImpl

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static java.lang.String KNOWN_PARENT_PATH
      The parent path of the joined selector
      protected static java.lang.String KNOWN_PATH
      A path for a join.
      protected static java.lang.String KNOWN_VALUE  
      protected QueryImpl query  
      static java.lang.String SPECIAL_PATH_PREFIX
      The prefix for known paths.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract boolean canEvaluate​(java.util.Set<SourceImpl> available)
      Whether the join condition can be evaluated if the given selectors are able to retrieve data.
      protected PropertyValue convertValueToType​(PropertyValue v, PropertyValue targetType)  
      @NotNull org.apache.jackrabbit.oak.query.ast.AstElement copyOf()  
      abstract boolean evaluate()
      Evaluate the result using the currently set values.
      protected java.lang.String getLocalPath​(java.lang.String path)
      Calculate the session local path (the path excluding the workspace name) if possible.
      abstract boolean isParent​(SourceImpl source)
      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])".
      protected java.lang.String normalizePath​(java.lang.String path)
      Validate and normalize the path.
      protected java.lang.String normalizePropertyName​(java.lang.String propertyName)
      Normalize the property name (including namespace remapping).
      protected java.lang.String protect​(java.lang.Object expression)  
      protected java.lang.String quote​(java.lang.String pathOrName)  
      protected java.lang.String quoteJson​(java.lang.String string)  
      abstract void restrict​(FilterImpl f)
      Apply the condition to the filter, further restricting the filter if possible.
      abstract void restrictPushDown​(SelectorImpl s)
      Push as much of the condition down to this selector, further restricting the selector condition if possible.
      void setQuery​(QueryImpl query)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SPECIAL_PATH_PREFIX

        public static final java.lang.String SPECIAL_PATH_PREFIX
        The prefix for known paths.
        See Also:
        Constant Field Values
      • KNOWN_PATH

        protected static final java.lang.String KNOWN_PATH
        A path for a join.
        See Also:
        Constant Field Values
      • KNOWN_PARENT_PATH

        protected static final java.lang.String KNOWN_PARENT_PATH
        The parent path of the joined selector
        See Also:
        Constant Field Values
    • Constructor Detail

      • JoinConditionImpl

        public JoinConditionImpl()
    • Method Detail

      • evaluate

        public abstract boolean evaluate()
        Evaluate the result using the currently set values.
        Returns:
        true if the constraint matches
      • restrict

        public abstract void restrict​(FilterImpl f)
        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.
        Parameters:
        f - the filter
      • restrictPushDown

        public abstract void restrictPushDown​(SelectorImpl s)
        Push as much of the condition down to this selector, further restricting the selector condition if possible.
        Parameters:
        s - the selector
      • isParent

        public abstract boolean isParent​(SourceImpl source)
        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])".
        Parameters:
        source - the source
        Returns:
        true if the source is the parent
      • canEvaluate

        public abstract boolean canEvaluate​(java.util.Set<SourceImpl> available)
        Whether the join condition can be evaluated if the given selectors are able to retrieve data.
        Parameters:
        available - the available selectors
        Returns:
        true if the condition can be evaluated
      • protect

        protected java.lang.String protect​(java.lang.Object expression)
      • quote

        protected java.lang.String quote​(java.lang.String pathOrName)
      • quoteJson

        protected java.lang.String quoteJson​(java.lang.String string)
      • setQuery

        public void setQuery​(QueryImpl query)
      • normalizePropertyName

        protected java.lang.String normalizePropertyName​(java.lang.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 java.lang.String normalizePath​(java.lang.String path)
        Validate and normalize the path.
        Parameters:
        path - the path to validate
        Returns:
        the validated and normalized path
      • getLocalPath

        protected java.lang.String getLocalPath​(java.lang.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
      • copyOf

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