Class ArithmeticFactorStateObject
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.ArithmeticFactorStateObject
-
- All Implemented Interfaces:
StateObject
public class ArithmeticFactorStateObject extends AbstractStateObject
This state object simply adds a plus or minus sign to the arithmetic primary expression.BNF:arithmetic_factor ::= [{+|-}] arithmetic_primary- Version:
- 2.4
- See Also:
ArithmeticFactor- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringARITHMETIC_SIGN_PROPERTYNotifies the arithmetic sign property has changed.static java.lang.StringSTATE_OBJECT_PROPERTYNotifies the state object property has changed.
-
Constructor Summary
Constructors Constructor Description ArithmeticFactorStateObject(StateObject parent)Creates a newArithmeticFactorStateObject.ArithmeticFactorStateObject(StateObject parent, boolean plusSign, StateObject stateObject)Creates a newArithmeticFactorStateObject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(StateObjectVisitor visitor)Visits thisStateObjectby the givenvisitor.protected voidaddChildren(java.util.List<StateObject> children)Adds the children of thisStateObjectto the given list.voidaddMinus()Makes sure the-sign is used.voidaddPlus()Makes sure the+sign is used.java.lang.StringgetArithmeticSign()Returns the arithmetic sign this expression is actually representing.ArithmeticFactorgetExpression()Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.StateObjectgetStateObject()Returns theStateObjectthat represents the arithmetic primary expression.booleanhasMinusSign()Determines whether the arithmetic sign is the minus sign.booleanhasPlusSign()Determines whether the arithmetic sign is the plus sign.booleanhasStateObject()Determines whether anStateObjectrepresenting the arithmetic primary expression exists.booleanisEquivalent(StateObject stateObject)Determines whether the givenStateObjectis equivalent to this one, i.e. the information of bothStateObjectis the same.voidparse(java.lang.String jpqlFragment)Parses the given JPQL fragment to become the new arithmetic primary.voidsetArithmeticSign(boolean plusSign)Sets the arithmetic sign this expression is actually representing.voidsetExpression(ArithmeticFactor 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.voidsetStateObject(StateObject stateObject)Returns theStateObjectthat represents the arithmetic primary expression.voidtoggleArithmeticSign()Toggles the arithmetic sign, plus becomes minus and vice versa.protected voidtoTextInternal(java.lang.Appendable writer)Prints out a string representation of thisStateObject, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
acceptUnknownVisitor, acceptUnknownVisitor, addProblems, addPropertyChangeListener, areEquivalent, buildProblem, buildProblem, buildStateObject, buildStateObjects, checkParent, children, decorate, equals, findIdentificationVariable, firePropertyChanged, getChangeSupport, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, initialize, isDecorated, parent, parent, parent, removePropertyChangeListener, setExpression, setParent, toString, toString, toStringInternal, toStringItems, toText
-
-
-
-
Field Detail
-
ARITHMETIC_SIGN_PROPERTY
public static final java.lang.String ARITHMETIC_SIGN_PROPERTY
Notifies the arithmetic sign property has changed.- See Also:
- Constant Field Values
-
STATE_OBJECT_PROPERTY
public static final java.lang.String STATE_OBJECT_PROPERTY
Notifies the state object property has changed.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ArithmeticFactorStateObject
public ArithmeticFactorStateObject(StateObject parent)
Creates a newArithmeticFactorStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
ArithmeticFactorStateObject
public ArithmeticFactorStateObject(StateObject parent, boolean plusSign, StateObject stateObject)
Creates a newArithmeticFactorStateObject.- Parameters:
parent- The parent of this state object, which cannot benullstateObject- TheStateObjectthat represents the arithmetic primary expression- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
-
Method Detail
-
accept
public void accept(StateObjectVisitor visitor)
Visits thisStateObjectby the givenvisitor.- Parameters:
visitor- Thevisitorto visit this object
-
addChildren
protected void addChildren(java.util.List<StateObject> children)
Adds the children of thisStateObjectto the given list.- Overrides:
addChildrenin classAbstractStateObject- Parameters:
children- The list used to store the children
-
addMinus
public void addMinus()
Makes sure the-sign is used.
-
addPlus
public void addPlus()
Makes sure the+sign is used.
-
getArithmeticSign
public java.lang.String getArithmeticSign()
Returns the arithmetic sign this expression is actually representing.- Returns:
- The single character value of the arithmetic sign: '+' or '-'
-
getExpression
public ArithmeticFactor 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 theStateObjectthat represents the arithmetic primary expression.- Returns:
- The
StateObjectthat represents the arithmetic primary expression ornullif none was specified
-
hasMinusSign
public boolean hasMinusSign()
Determines whether the arithmetic sign is the minus sign.- Returns:
trueif the arithmetic sign is the minus sign;falseif it is the plus sign
-
hasPlusSign
public boolean hasPlusSign()
Determines whether the arithmetic sign is the plus sign.- Returns:
trueif the arithmetic sign is the plus sign;falseif it is the minus sign
-
hasStateObject
public boolean hasStateObject()
Determines whether anStateObjectrepresenting the arithmetic primary expression exists.- Returns:
trueif there is the arithmetic primary expression exists;falseotherwise
-
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
-
parse
public void parse(java.lang.String jpqlFragment)
Parses the given JPQL fragment to become the new arithmetic primary.- Parameters:
jpqlFragment- A portion of a query that will be parsed and theStateObjectthat was created will become the new arithmetic primary of thisArithmeticFactorStateObject
-
setArithmeticSign
public void setArithmeticSign(boolean plusSign)
Sets the arithmetic sign this expression is actually representing.- Parameters:
plusSign- The single character value of the arithmetic sign: '+' (true) or '-' (false)
-
setExpression
public void setExpression(ArithmeticFactor 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 an arithmetic factor expression
-
setStateObject
public void setStateObject(StateObject stateObject)
Returns theStateObjectthat represents the arithmetic primary expression.- Parameters:
stateObject- TheStateObjectthat represents the arithmetic primary expression ornullif none was specified
-
toggleArithmeticSign
public void toggleArithmeticSign()
Toggles the arithmetic sign, plus becomes minus and vice versa.
-
toTextInternal
protected void toTextInternal(java.lang.Appendable writer) throws java.io.IOExceptionPrints out a string representation of thisStateObject, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.- Specified by:
toTextInternalin classAbstractStateObject- Parameters:
writer- The writer used to print out the string representation- Throws:
java.io.IOException- This should never happens, it is only required becauseAppendableis used instead of any concrete class
-
-