EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql.model.query
Interface StateObject

All Known Subinterfaces:
DeclarationStateObject, ListHolderStateObject<T>, VariableDeclarationStateObject
All Known Implementing Classes:
AbsExpressionStateObject, AbstractConditionalClauseStateObject, AbstractDoubleEncapsulatedExpressionStateObject, AbstractEncapsulatedExpressionStateObject, AbstractFromClauseStateObject, AbstractIdentificationVariableDeclarationStateObject, AbstractListHolderStateObject, AbstractModifyClauseStateObject, AbstractModifyStatementStateObject, AbstractPathExpressionStateObject, AbstractRangeVariableDeclarationStateObject, AbstractSchemaNameStateObject, AbstractSelectClauseStateObject, AbstractSelectStatementStateObject, AbstractSingleEncapsulatedExpressionStateObject, AbstractStateObject, AbstractTripleEncapsulatedExpressionStateObject, AdditionExpressionStateObject, AggregateFunctionStateObject, AllOrAnyExpressionStateObject, AndExpressionStateObject, ArithmeticExpressionStateObject, ArithmeticFactorStateObject, AvgFunctionStateObject, BadExpressionStateObject, BetweenExpressionStateObject, CaseExpressionStateObject, CoalesceExpressionStateObject, CollectionExpressionStateObject, CollectionMemberDeclarationStateObject, CollectionMemberExpressionStateObject, CollectionValuedPathExpressionStateObject, ComparisonExpressionStateObject, CompoundExpressionStateObject, ConcatExpressionStateObject, ConstructorExpressionStateObject, CountFunctionStateObject, DateTimeStateObject, DeleteClauseStateObject, DeleteStatementStateObject, DerivedPathIdentificationVariableDeclarationStateObject, DerivedPathVariableDeclarationStateObject, DivisionExpressionStateObject, EmptyCollectionComparisonExpressionStateObject, EncapsulatedIdentificationVariableExpressionStateObject, EntityTypeLiteralStateObject, EntryExpressionStateObject, EnumTypeStateObject, ExistsExpressionStateObject, FromClauseStateObject, FunctionExpressionStateObject, GroupByClauseStateObject, HavingClauseStateObject, IdentificationVariableDeclarationStateObject, IdentificationVariableStateObject, IndexExpressionStateObject, InExpressionStateObject, InputParameterStateObject, JoinStateObject, JPQLQueryStateObject, KeyExpressionStateObject, KeywordExpressionStateObject, LengthExpressionStateObject, LikeExpressionStateObject, LocateExpressionStateObject, LogicalExpressionStateObject, LowerExpressionStateObject, MaxFunctionStateObject, MinFunctionStateObject, ModExpressionStateObject, MultiplicationExpressionStateObject, NotExpressionStateObject, NullComparisonExpressionStateObject, NullIfExpressionStateObject, NumericLiteralStateObject, ObjectExpressionStateObject, OrderByClauseStateObject, OrderByItemStateObject, OrExpressionStateObject, RangeVariableDeclarationStateObject, ResultVariableStateObject, SelectClauseStateObject, SelectStatementStateObject, SimpleFromClauseStateObject, SimpleSelectClauseStateObject, SimpleSelectStatementStateObject, SimpleStateObject, SizeExpressionStateObject, SqrtExpressionStateObject, StateFieldPathExpressionStateObject, StringLiteralStateObject, SubExpressionStateObject, SubstringExpressionStateObject, SubtractionExpressionStateObject, SumFunctionStateObject, TreatExpressionStateObject, TrimExpressionStateObject, TypeExpressionStateObject, UnknownExpressionStateObject, UpdateClauseStateObject, UpdateItemStateObject, UpdateStatementStateObject, UpperExpressionStateObject, ValueExpressionStateObject, WhenClauseStateObject, WhereClauseStateObject

public interface StateObject

A StateObject is an editable representation of a JPQL query.

IJPQLQueryBuilder can be used to create the state model from an existing JPQL query.

Version:
2.4
Author:
Pascal Filion
Since:
2.4

Method Summary
 void accept(StateObjectVisitor visitor)
          Visits this StateObject by the given visitor.
 void addPropertyChangeListener(java.lang.String propertyName, IPropertyChangeListener<?> listener)
          Registers the given IPropertyChangeListener for the specified property.
 IterableIterator<StateObject> children()
          Returns the ordered children of this StateObject.
 void decorate(StateObject decorator)
          Decorates this StateObject with the given decorator.
 IdentificationVariableStateObject findIdentificationVariable(java.lang.String identificationVariable)
          Returns the IdentificationVariableStateObject representing the given identification variable.
 DeclarationStateObject getDeclaration()
          Returns the declaration clause which defines the domain of the query by declaring identification variables.
 StateObject getDecorator()
          Returns the StateObject decorating this one if one has been set, which means the behavior of this StateObject is modified by the decorator.
 Expression getExpression()
          Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.
 JPQLGrammar getGrammar()
          Returns the grammar that defines how to parse a JPQL query.
 IManagedTypeProvider getManagedTypeProvider()
          Returns the provider of managed types.
 StateObject getParent()
          Returns the parent of this StateObject.
 IJPQLQueryBuilder getQueryBuilder()
          Returns the IJPQLQueryBuilder that is responsible to create various part of the StateObject hierarchy.
 JPQLQueryStateObject getRoot()
          Returns the root of the StateObject hierarchy.
 boolean isDecorated()
          Determines whether this StateObject is being decorated by another StateObject, which means the behavior is modified by the given one.
 boolean isEquivalent(StateObject stateObject)
          Determines whether the given StateObject is equivalent to this one, i.e. the information of both StateObject is the same.
 void removePropertyChangeListener(java.lang.String propertyName, IPropertyChangeListener<?> listener)
          Unregisters the given IPropertyChangeListener that was registered for the specified property.
 void setParent(StateObject parent)
          Sets the given StateObject to become the parent of this one.
 void toString(java.lang.Appendable writer)
          Prints out a string representation of this StateObject, which should not be used to define a true string representation of a JPQL query but should be used for debugging purposes.
 void toText(java.lang.Appendable writer)
          Prints out a string representation of this StateObject, which should not be used to define a true string representation of a JPQL query but should be used for debugging purposes.
 

Method Detail

accept

void accept(StateObjectVisitor visitor)
Visits this StateObject by the given visitor.

Parameters:
visitor - The visitor to visit this object

addPropertyChangeListener

void addPropertyChangeListener(java.lang.String propertyName,
                               IPropertyChangeListener<?> listener)
Registers the given IPropertyChangeListener for the specified property. The listener will be notified only for changes to the specified property.

Parameters:
propertyName - The name of the property for which the listener was registered
listener - The listener to be notified upon changes
Throws:
java.lang.NullPointerException - IPropertyChangeListener cannot be null
java.lang.IllegalArgumentException - The listener is already registered with the property name

children

IterableIterator<StateObject> children()
Returns the ordered children of this StateObject.

Returns:
The children of this StateObject or an empty iterable this state object does not have children

decorate

void decorate(StateObject decorator)
Decorates this StateObject with the given decorator. It means the behavior of this StateObject is modified by the given one. By default, this StateObject becomes the parent of the given one.

Parameters:
decorator - The StateObject decorating this one

findIdentificationVariable

IdentificationVariableStateObject findIdentificationVariable(java.lang.String identificationVariable)
Returns the IdentificationVariableStateObject representing the given identification variable.

Parameters:
variable - The name of the identification variable to retrieve its state object
Returns:
The IdentificationVariableStateObject defining the given identification variable

getDeclaration

DeclarationStateObject getDeclaration()
Returns the declaration clause which defines the domain of the query by declaring identification variables.

Returns:
The declaration clause of which this StateObject is a child; i.e. either the top-level declaration if this is part of the top query or the sub-level declaration if this is part of a subquery

getDecorator

StateObject getDecorator()
Returns the StateObject decorating this one if one has been set, which means the behavior of this StateObject is modified by the decorator.

Returns:
The StateObject decorating this one

getExpression

Expression getExpression()
Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.

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)

getGrammar

JPQLGrammar getGrammar()
Returns the grammar that defines how to parse a JPQL query.

Returns:
The grammar that was used to parse the JPQL query

getManagedTypeProvider

IManagedTypeProvider getManagedTypeProvider()
Returns the provider of managed types.

Returns:
The provider that gives access to the managed types

getParent

StateObject getParent()
Returns the parent of this StateObject.

Returns:
Returns the parent of this StateObject, which is null only when this is the root of the hierarchy

getQueryBuilder

IJPQLQueryBuilder getQueryBuilder()
Returns the IJPQLQueryBuilder that is responsible to create various part of the StateObject hierarchy.

Returns:
The builder that created this StateObject from a JPQL query or that gives access to various sub-builders

getRoot

JPQLQueryStateObject getRoot()
Returns the root of the StateObject hierarchy.

Returns:
The root of the state model representing the JPQL query

isDecorated

boolean isDecorated()
Determines whether this StateObject is being decorated by another StateObject, which means the behavior is modified by the given one. return true if this StateObject is being decorated; false otherwise


isEquivalent

boolean isEquivalent(StateObject stateObject)
Determines whether the given StateObject is equivalent to this one, i.e. the information of both StateObject is the same.

Parameters:
stateObject - The StateObject to compare its content to this one
Returns:
true if both object are equivalent; false otherwise

removePropertyChangeListener

void removePropertyChangeListener(java.lang.String propertyName,
                                  IPropertyChangeListener<?> listener)
Unregisters the given IPropertyChangeListener that was registered for the specified property. The listener will no longer be notified when the property changes.

Parameters:
propertyName - The name of the property for which the listener was registered
listener - The listener to unregister
Throws:
java.lang.NullPointerException - IPropertyChangeListener cannot be null
java.lang.IllegalArgumentException - The listener was never registered with the property name

setParent

void setParent(StateObject parent)
Sets the given StateObject to become the parent of this one.

Parameters:
parent - The new parent StateObject of this one, which cannot be null

toString

void toString(java.lang.Appendable writer)
Prints out a string representation of this StateObject, which should not be used to define a true string representation of a JPQL query but should be used for debugging purposes.

Important: If this StateObject is decorated by another one, then toString(Appendable) from that decorator is invoked, otherwise the information contained in this one will be printed out.

Parameters:
writer - The writer used to print out the string representation
See Also:
toText(Appendable)

toText

void toText(java.lang.Appendable writer)
Prints out a string representation of this StateObject, which should not be used to define a true string representation of a JPQL query but should be used for debugging purposes.

Important: Even if this StateObject is decorated by another one, the decorator will not be used to print out a string representation of this one.

Parameters:
writer - The writer used to print out the string representation
See Also:
toString(Appendable)

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference