All Implemented Interfaces:
StateObject

public class InputParameterStateObject extends SimpleStateObject
Either positional or named parameters may be used. Positional and named parameters may not be mixed in a single query. Input parameters can only be used in the WHERE clause or HAVING clause of a query.
Since:
2.4
Version:
2.4
See Also:
  • Constructor Details

    • InputParameterStateObject

      public InputParameterStateObject(StateObject parent)
      Creates a new InputParameterStateObject.
      Parameters:
      parent - The parent of this state object, which cannot be null
      Throws:
      NullPointerException - The given parent cannot be null
    • InputParameterStateObject

      public InputParameterStateObject(StateObject parent, String parameter)
      Creates a new InputParameterStateObject.
      Parameters:
      parent - The parent of this state object, which cannot be null
      parameter - The positional or named input parameter
      Throws:
      NullPointerException - The given parent cannot be null
  • Method Details

    • accept

      public void accept(StateObjectVisitor visitor)
      Description copied from interface: StateObject
      Visits this StateObject by the given visitor.
      Parameters:
      visitor - The visitor to visit this object
    • getExpression

      public InputParameter 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)
    • isNamed

      public boolean isNamed()
      Determines whether this parameter is a positional parameter, i.e. the parameter type is '?'.
      Returns:
      true if the parameter type is '?'; false if it's ':'
    • isPositional

      public boolean isPositional()
      Determines whether this parameter is a positional parameter, i.e. the parameter type is ':'.
      Returns:
      true if the parameter type is ':'; false if it's '?'
    • setExpression

      public void setExpression(InputParameter expression)
      Keeps a reference of the parsed object object, which should only be done when this object is instantiated during the conversion of a parsed JPQL query into StateObjects.
      Parameters:
      expression - The parsed object representing an input parameter