Class TrimExpressionStateObject
java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractEncapsulatedExpressionStateObject
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractSingleEncapsulatedExpressionStateObject
org.eclipse.persistence.jpa.jpql.tools.model.query.TrimExpressionStateObject
- All Implemented Interfaces:
StateObject
The
TRIM function trims the specified character from a string. If the
character to be trimmed is not specified, it is assumed to be space (or blank). The optional
trim_character is a single-character string literal or a character-valued input
parameter (i.e., char or Character). If a trim specification is not provided,
BOTH is assumed. The TRIM function returns the trimmed
string.
BNF: expression ::= TRIM([[trim_specification] [trim_character] FROM] string_primary)
- Since:
- 2.4
- Version:
- 2.5
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringNotifies the visibility of theFROMidentifier has changed.static final StringNotifies the specification property has changed.static final StringNotify the state object representing the trim character has changed.Fields inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractSingleEncapsulatedExpressionStateObject
STATE_OBJECT_PROPERTY -
Constructor Summary
ConstructorsConstructorDescriptionTrimExpressionStateObject(StateObject parent) Creates a newTrimExpressionStateObject.TrimExpressionStateObject(StateObject parent, String jpqlFragment) Creates a newTrimExpressionStateObject.TrimExpressionStateObject(StateObject parent, TrimExpression.Specification specification, StateObject stateObject) Creates a newTrimExpressionStateObject.TrimExpressionStateObject(StateObject parent, TrimExpression.Specification specification, StateObject trimCharacter, StateObject stateObject) Creates a newTrimExpressionStateObject. -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(StateObjectVisitor visitor) Visits thisStateObjectby the givenvisitor.Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.Returns the JPQL identifier of the expression represented by thisAbstractSingleEncapsulatedExpressionStateObject.protected StringReturns the unique identifier of theJPQLQueryBNFthat will determine how to parse the encapsulated expression.Returns the new trim specification.Returns theStateObjectrepresenting the trim character.booleanDetermines whether the way the trim is trimmed was parsed.booleanDetermines whether the character used to trim the string was specified.booleanisEquivalent(StateObject stateObject) Determines whether the givenStateObjectis equivalent to this one, i.e.voidParses the given JPQL fragment, which represents the encapsulated expression, and creates theStateObject.voidparseTrimCharacter(CharSequence jpqlFragment) Parses the given JPQL fragment, which represents either a single-character string literal or a character-valued input parameter, the fragment will be parsed and converted into aStateObject.voidRemoves the trim specification.voidRemoves the trim character if it is defined.voidsetExpression(TrimExpression 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.voidsetSpecification(TrimExpression.Specification specification) Sets the new trim specification.voidsetStateObject(StateObject stateObject) Sets the givenStateObjectto represent the new encapsulated expression.voidsetTrimCharacter(StateObject trimCharacter) Sets the character to trim from the string.protected voidPrints out a string representation of this encapsulated information, 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.AbstractSingleEncapsulatedExpressionStateObject
addChildren, getStateObject, hasStateObjectMethods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractEncapsulatedExpressionStateObject
toTextInternalMethods 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 Details
-
HAS_FROM_PROPERTY
Notifies the visibility of theFROMidentifier has changed.- See Also:
-
SPECIFICATION_PROPERTY
Notifies the specification property has changed.- See Also:
-
TRIM_CHARACTER_PROPERTY
Notify the state object representing the trim character has changed.- See Also:
-
-
Constructor Details
-
TrimExpressionStateObject
Creates a newTrimExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
TrimExpressionStateObject
public TrimExpressionStateObject(StateObject parent, TrimExpression.Specification specification, StateObject stateObject) Creates a newTrimExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullspecification- Defines the way the string is trimmed, orSpecification.DEFAULTwhen it is not presentstateObject- TheStateObjectrepresenting the encapsulated expression- Throws:
NullPointerException- The given parent cannot benull
-
TrimExpressionStateObject
public TrimExpressionStateObject(StateObject parent, TrimExpression.Specification specification, StateObject trimCharacter, StateObject stateObject) Creates a newTrimExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullspecification- Defines the way the string is trimmed, orSpecification.DEFAULTwhen it is not presenttrimCharacter- The trim characterstateObject- TheStateObjectrepresenting the encapsulated expression- Throws:
NullPointerException- The given parent cannot benull
-
TrimExpressionStateObject
Creates a newTrimExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benulljpqlFragment- The portion of the query representing the encapsulated expression- Throws:
NullPointerException- The given parent cannot benull
-
-
Method Details
-
accept
Description copied from interface:StateObjectVisits thisStateObjectby the givenvisitor.- Parameters:
visitor- Thevisitorto visit this object
-
getExpression
Description copied from interface:StateObjectReturns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpressionin interfaceStateObject- Overrides:
getExpressionin classAbstractSingleEncapsulatedExpressionStateObject- 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)
-
getIdentifier
Description copied from class:AbstractEncapsulatedExpressionStateObjectReturns the JPQL identifier of the expression represented by thisAbstractSingleEncapsulatedExpressionStateObject.- Specified by:
getIdentifierin classAbstractEncapsulatedExpressionStateObject- Returns:
- The JPQL identifier that is shown before the left parenthesis
-
getQueryBNFId
Description copied from class:AbstractSingleEncapsulatedExpressionStateObjectReturns the unique identifier of theJPQLQueryBNFthat will determine how to parse the encapsulated expression.- Specified by:
getQueryBNFIdin classAbstractSingleEncapsulatedExpressionStateObject- Returns:
- The non-
nullID of the BNF
-
getSpecification
Returns the new trim specification.- Returns:
- The new trim specification; which is never
null
-
getTrimCharacter
Returns theStateObjectrepresenting the trim character.- Returns:
- The
StateObjectrepresenting the trim character ornullif it is not present
-
hasSpecification
public boolean hasSpecification()Determines whether the way the trim is trimmed was parsed.- Returns:
trueif the query contained the way the trim needs to be trimmed;falseotherwise
-
hasTrimCharacter
public boolean hasTrimCharacter()Determines whether the character used to trim the string was specified.- Returns:
trueif the character used for trimming was specified;falseotherwise
-
isEquivalent
Description copied from interface:StateObjectDetermines whether the givenStateObjectis equivalent to this one, i.e. the information of bothStateObjectis the same.- Specified by:
isEquivalentin interfaceStateObject- Overrides:
isEquivalentin classAbstractSingleEncapsulatedExpressionStateObject- Parameters:
stateObject- TheStateObjectto compare its content to this one- Returns:
trueif both object are equivalent;falseotherwise
-
parse
Description copied from class:AbstractSingleEncapsulatedExpressionStateObjectParses the given JPQL fragment, which represents the encapsulated expression, and creates theStateObject.- Overrides:
parsein classAbstractSingleEncapsulatedExpressionStateObject- Parameters:
jpqlFragment- The portion of the query representing the encapsulated expression
-
parseTrimCharacter
Parses the given JPQL fragment, which represents either a single-character string literal or a character-valued input parameter, the fragment will be parsed and converted into aStateObject.- Parameters:
jpqlFragment- The portion of the query to parse
-
removeSpecification
public void removeSpecification()Removes the trim specification. -
removeTrimCharacter
public void removeTrimCharacter()Removes the trim character if it is defined. -
setExpression
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 aTRIMexpression
-
setSpecification
Sets the new trim specification.- Parameters:
specification- The new trim specification;nullis not valid
-
setStateObject
Description copied from class:AbstractSingleEncapsulatedExpressionStateObjectSets the givenStateObjectto represent the new encapsulated expression.- Overrides:
setStateObjectin classAbstractSingleEncapsulatedExpressionStateObject- Parameters:
stateObject- The new encapsulatedStateObject
-
setTrimCharacter
Sets the character to trim from the string. If the character to be trimmed is not specified, it is assumed to be space (or blank). It is a single-character string literal or a character- valued input parameter (i.e., char orCharacter).- Parameters:
trimCharacter- The trim character ornullto remove it
-
toTextEncapsulatedExpression
Description copied from class:AbstractEncapsulatedExpressionStateObjectPrints out a string representation of this encapsulated information, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.- Overrides:
toTextEncapsulatedExpressionin classAbstractSingleEncapsulatedExpressionStateObject- Parameters:
writer- The writer used to print out the string representation of the encapsulated information- Throws:
IOException- This should never happens, only required becauseAppendableis used instead ofStringBuilderfor instance
-