Class AbstractPathExpression

    • Constructor Detail

      • AbstractPathExpression

        protected AbstractPathExpression​(AbstractExpression parent,
                                         AbstractExpression identificationVariable)
        Creates a new AbstractPathExpression.
        Parameters:
        parent - The parent of this expression
        identificationVariable - The identification variable that was already parsed, which means the beginning of the parsing should start with a dot
      • AbstractPathExpression

        public AbstractPathExpression​(AbstractExpression parent,
                                      AbstractExpression identificationVariable,
                                      java.lang.String paths)
        Creates a new AbstractPathExpression.
        Parameters:
        parent - The parent of this expression
        identificationVariable - The identification variable that was already parsed, which means the beginning of the parsing should start with a dot
        paths - The path expression that is following the identification variable
      • AbstractPathExpression

        protected AbstractPathExpression​(AbstractExpression parent,
                                         java.lang.String paths)
        Creates a new AbstractPathExpression.
        Parameters:
        parent - The parent of this expression
        paths - The path expression
    • Method Detail

      • endsWithDot

        public final boolean endsWithDot()
        Determines whether the path ends with a dot or not.
        Returns:
        true if the path ends with a dot; false otherwise
      • getIdentificationVariable

        public final Expression getIdentificationVariable()
        Returns the identification variable that starts the path expression, which can be a sample identification variable, a map value, map key or map entry expression.
        Returns:
        The root of the path expression
      • getPath

        public final java.lang.String getPath​(int index)
        Returns the specified segment of the state field path.
        Parameters:
        index - The 0-based segment index
        Returns:
        The specified segment
      • hasIdentificationVariable

        public final boolean hasIdentificationVariable()
        Determines whether the identification variable was parsed.
        Returns:
        true the identification variable was parsed; false otherwise
      • hasVirtualIdentificationVariable

        public final boolean hasVirtualIdentificationVariable()
        Determines whether the path's identification variable is virtual or not, meaning it's not part of the query but is required for proper navigability.
        Returns:
        true if this identification variable was virtually created to fully qualify path expression; false if it was parsed
      • parse

        protected final void parse​(WordParser wordParser,
                                   boolean tolerant)
        Parses the query by starting at the current position, which is part of the given WordParser.
        Specified by:
        parse in class AbstractExpression
        Parameters:
        wordParser - The text to parse based on the current position of the cursor
        tolerant - Determines whether the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries
      • paths

        public final ListIterable<java.lang.String> paths()
        Returns the segments in the state field path in order.
        Returns:
        An Iterator over the segments of the state field path
      • pathSize

        public final int pathSize()
        Returns the number of segments in the state field path.
        Returns:
        The number of segments
      • setVirtualIdentificationVariable

        protected final void setVirtualIdentificationVariable​(java.lang.String variableName)
        Sets a virtual identification variable because the abstract schema name was parsed without one. This is valid in an UPDATE and DELETE queries.
        Parameters:
        variableName - The identification variable that was generated to identify the "root" object
      • startsWithDot

        public final boolean startsWithDot()
        Determines whether the path starts with a dot or not.
        Returns:
        true if the path starts with a dot; false otherwise
      • toParsedText

        public java.lang.String toParsedText​(int startIndex,
                                             int stopIndex)
        Returns a string representation from the given range.
        Parameters:
        startIndex - The beginning of the range to create the string representation
        stopIndex - When to stop creating the string representation, which is exclusive
        Returns:
        The string representation of this path expression contained in the given range
        Since:
        2.4
      • toParsedText

        protected final void toParsedText​(java.lang.StringBuilder writer,
                                          boolean actual)
        Generates a string representation of this Expression, including its children, if it has any.
        Specified by:
        toParsedText in class AbstractExpression
        Parameters:
        writer - The buffer used to append this Expression's string representation
        actual - Determines whether the string representation should represent what was parsed, i.e. include any "virtual" whitespace (such as ending whitespace) and the actual case of the JPQL identifiers