Class AbstractSelectClauseStateObject

java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractSelectClauseStateObject
All Implemented Interfaces:
StateObject
Direct Known Subclasses:
SelectClauseStateObject, SimpleSelectClauseStateObject

public abstract class AbstractSelectClauseStateObject extends AbstractStateObject
This state object represents the abstract definition of a SELECT clause, which is either the SELECT clause of the top-level query or of a subquery.
Since:
2.4
Version:
2.4
See Also:
  • Field Details

    • DISTINCT_PROPERTY

      public static final String DISTINCT_PROPERTY
      Notifies the distinct property has changed.
      See Also:
  • Constructor Details

    • AbstractSelectClauseStateObject

      protected AbstractSelectClauseStateObject(AbstractSelectStatementStateObject parent)
      Creates a new AbstractSelectClauseStateObject.
      Parameters:
      parent - The parent of this state object, which cannot be null
      Throws:
      NullPointerException - The given parent cannot be null
  • Method Details

    • getExpression

      public AbstractSelectClause getExpression()
      Description copied from interface: StateObject
      Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.
      Specified by:
      getExpression in interface StateObject
      Overrides:
      getExpression in class AbstractStateObject
      Returns:
      The parsed object when a JPQL query is parsed and converted into a StateObject or null when the JPQL query is manually created (i.e. not from a string)
    • getFromClause

      public AbstractFromClauseStateObject getFromClause()
      Returns the AbstractFromClauseStateObject representing the FROM clause.
      Returns:
      The state object representing the FROM clause
    • getParent

      Description copied from interface: StateObject
      Returns the parent of this StateObject.
      Specified by:
      getParent in interface StateObject
      Overrides:
      getParent in class AbstractStateObject
      Returns:
      Returns the parent of this StateObject, which is null only when this is the root of the hierarchy
    • hasDistinct

      public boolean hasDistinct()
      Gets whether the DISTINCT keyword is part of the query, which is used to return only distinct (different) values
    • hasSelectItem

      public abstract boolean hasSelectItem()
      Determines whether this SELECT clause has a select item defined (only one can be set for a subquery's SELECT clause and many for a top-level query).
      Returns:
      true if this state object has children; false otherwise
    • isEquivalent

      public boolean isEquivalent(StateObject stateObject)
      Description copied from interface: StateObject
      Determines whether the given StateObject is equivalent to this one, i.e. the information of both StateObject is the same.
      Specified by:
      isEquivalent in interface StateObject
      Overrides:
      isEquivalent in class AbstractStateObject
      Parameters:
      stateObject - The StateObject to compare its content to this one
      Returns:
      true if both object are equivalent; false otherwise
    • parse

      public abstract void parse(String jpqlFragment)
      Parses the given JPQL fragment and create the select item. For the top-level query, the fragment can contain several select items but for a subquery, it can represent only one.
      Parameters:
      jpqlFragment - The portion of the query representing one or several select items
    • setDistinct

      public void setDistinct(boolean distinct)
      Sets whether the DISTINCT keyword should be part of the query, which is used to return only distinct (different) values
      Parameters:
      distinct - true to add DISTINCT to the query in order to have distinct values; false if it is not required
    • toggleDistinct

      public void toggleDistinct()
      Changes the state of the DISTINCT identifier; either adds it if it's not present or removes it if it's present.