Class InExpressionStateObject
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractListHolderStateObject<StateObject>
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.InExpressionStateObject
-
- All Implemented Interfaces:
ListHolderStateObject<StateObject>,StateObject
public class InExpressionStateObject extends AbstractListHolderStateObject<StateObject>
The state field path expression must have a string, numeric, or enum value. The literal and/or input parameter values must be like the same abstract schema type of the state field path expression in type.The results of the subquery must be like the same abstract schema type of the state field path expression in type.
There must be at least one element in the comma separated list that defines the set of values for the
INexpression. If the value of a state field path expression in anINorNOT INexpression isNULLor unknown, the value of the expression is unknown.JPA 1.0:
BNF:JPA 2.0in_expression ::= state_field_path_expression [NOT] IN(in_item {, in_item}* | subquery)BNF:in_expression ::= {state_field_path_expression | type_discriminator} [NOT] IN { ( in_item {, in_item}* ) | (subquery) | collection_valued_input_parameter }- Since:
- 2.4
- Version:
- 2.4
- Author:
- Pascal Filion
- See Also:
InExpression
-
-
Field Summary
Fields Modifier and Type Field Description static StringITEMS_LISTNotifies the list of items has changed.static StringNOT_PROPERTYNotifies the visibility of theNOTidentifier has changed.static StringSTATE_OBJECT_PROPERTYNotifies theStateObjectrepresenting the state field path expression or the input parameter has changed.
-
Constructor Summary
Constructors Constructor Description InExpressionStateObject(StateObject parent)Creates a newInExpressionStateObject.InExpressionStateObject(StateObject parent, boolean not, String path, String parameter)Creates a newInExpressionStateObject.InExpressionStateObject(StateObject parent, boolean not, String path, List<String> items)Creates a newInExpressionStateObject.InExpressionStateObject(StateObject parent, String path, List<String> items)Creates a newInExpressionStateObject.InExpressionStateObject(StateObject parent, StateObject stateObject, boolean not, List<? extends StateObject> items)Creates a newInExpressionStateObject.InExpressionStateObject(StateObject parent, StateObject stateFieldPath, List<? extends StateObject> items)Creates a newInExpressionStateObject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(StateObjectVisitor visitor)Visits thisStateObjectby the givenvisitor.InExpressionStateObjectaddNot()Makes sure theNOTidentifier is specified.InExpressiongetExpression()Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.StateObjectgetStateObject()ReturnsbooleanhasNot()Determines whether theNOTidentifier is used or not.booleanhasStateObject()Determines whetherbooleanisEquivalent(StateObject stateObject)Determines whether the givenStateObjectis equivalent to this one, i.e.booleanisSingleInputParameter()Determines whether what was parsed after theINidentifier is a single input parameter.voidparse(String jpqlFragment)Parses the given JPQL fragment, which represents either a single or many items, the fragment will be parsed and converted intoStateObject.voidremoveNot()Makes sure theNOTidentifier is not specified.voidsetExpression(InExpression expression)Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.voidsetNot(boolean not)Sets whether theNOTidentifier should be part of the expression or not.voidsetSingleInputParameter(boolean singleInputParameter)Sets whether what was parsed after theINidentifier is a single input parameter.voidsetStateObject(StateObject stateObject)SetsvoidtoggleNot()Changes the visibility state of theNOTidentifier.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractListHolderStateObject
addItem, addItems, addListChangeListener, canMoveDown, canMoveUp, getItem, hasItems, items, itemsSize, moveDown, moveUp, removeItem, removeItems, removeListChangeListener
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
addPropertyChangeListener, children, decorate, equals, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, isDecorated, removePropertyChangeListener, setExpression, setParent, toString, toString, toText
-
Methods inherited from interface org.eclipse.persistence.jpa.jpql.tools.model.query.StateObject
addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toText
-
-
-
-
Field Detail
-
ITEMS_LIST
public static String ITEMS_LIST
Notifies the list of items has changed.
-
NOT_PROPERTY
public static final String NOT_PROPERTY
Notifies the visibility of theNOTidentifier has changed.- See Also:
- Constant Field Values
-
STATE_OBJECT_PROPERTY
public static final String STATE_OBJECT_PROPERTY
Notifies theStateObjectrepresenting the state field path expression or the input parameter has changed.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
InExpressionStateObject
public InExpressionStateObject(StateObject parent)
Creates a newInExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
InExpressionStateObject
public InExpressionStateObject(StateObject parent, boolean not, String path, List<String> items)
Creates a newInExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullpath-not- Determines whether theNOTidentifier is part of the expression or notitems- The list of JPQL fragments that will be parsed and converted intoStateObject- Throws:
NullPointerException- The given parent cannot benull
-
InExpressionStateObject
public InExpressionStateObject(StateObject parent, boolean not, String path, String parameter)
Creates a newInExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullpath-not- Determines whether theNOTidentifier is part of the expression or notparameter- The- Throws:
NullPointerException- The given parent cannot benull
-
InExpressionStateObject
public InExpressionStateObject(StateObject parent, StateObject stateObject, boolean not, List<? extends StateObject> items)
Creates a newInExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullstateObject-not- Determines whether theNOTidentifier is part of the expression or notitems-- Throws:
NullPointerException- The given parent cannot benull
-
InExpressionStateObject
public InExpressionStateObject(StateObject parent, StateObject stateFieldPath, List<? extends StateObject> items)
Creates a newInExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullstateFieldPath-items-- Throws:
NullPointerException- The given parent cannot benull
-
InExpressionStateObject
public InExpressionStateObject(StateObject parent, String path, List<String> items)
Creates a newInExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullpath-items- The list of JPQL fragments that will be parsed and converted intoStateObject- Throws:
NullPointerException- The given parent cannot benull
-
-
Method Detail
-
accept
public void accept(StateObjectVisitor visitor)
Visits thisStateObjectby the givenvisitor.- Parameters:
visitor- Thevisitorto visit this object
-
addNot
public InExpressionStateObject addNot()
Makes sure theNOTidentifier is specified.- Returns:
- This object
-
getExpression
public InExpression getExpression()
Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpressionin interfaceStateObject- Overrides:
getExpressionin classAbstractStateObject- Returns:
- The parsed object when a JPQL query is parsed and converted into a
StateObjectornullwhen the JPQL query is manually created (i.e. not from a string)
-
getStateObject
public StateObject getStateObject()
Returns- Returns:
-
hasNot
public boolean hasNot()
Determines whether theNOTidentifier is used or not.- Returns:
trueif theNOTidentifier is part of the expression;falseotherwise
-
hasStateObject
public boolean hasStateObject()
Determines whether- Returns:
-
isEquivalent
public boolean isEquivalent(StateObject stateObject)
Determines whether the givenStateObjectis equivalent to this one, i.e. the information of bothStateObjectis the same.- Specified by:
isEquivalentin interfaceStateObject- Overrides:
isEquivalentin classAbstractStateObject- Parameters:
stateObject- TheStateObjectto compare its content to this one- Returns:
trueif both object are equivalent;falseotherwise
-
isSingleInputParameter
public boolean isSingleInputParameter()
Determines whether what was parsed after theINidentifier is a single input parameter.- Returns:
trueif the only item is an input parameter;falseotherwise
-
parse
public void parse(String jpqlFragment)
Parses the given JPQL fragment, which represents either a single or many items, the fragment will be parsed and converted intoStateObject.- Parameters:
jpqlFragment- The portion of the query to parse
-
removeNot
public void removeNot()
Makes sure theNOTidentifier is not specified.
-
setExpression
public void setExpression(InExpression expression)
Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.- Parameters:
expression- Theparsed objectrepresenting anINexpression
-
setNot
public void setNot(boolean not)
Sets whether theNOTidentifier should be part of the expression or not.- Parameters:
not-trueif theNOTidentifier should be part of the expression;falseotherwise
-
setSingleInputParameter
public void setSingleInputParameter(boolean singleInputParameter)
Sets whether what was parsed after theINidentifier is a single input parameter.- Parameters:
singleInputParameter-trueif the only item is an input parameter;falseotherwise
-
setStateObject
public void setStateObject(StateObject stateObject)
Sets- Parameters:
stateObject-
-
toggleNot
public void toggleNot()
Changes the visibility state of theNOTidentifier.
-
-