Class GenericParameterValueSet

java.lang.Object
org.apache.derby.impl.sql.GenericParameterValueSet
All Implemented Interfaces:
ParameterValueSet

final class GenericParameterValueSet extends Object implements ParameterValueSet
Implementation of ParameterValueSet
See Also:
  • Field Details

  • Constructor Details

    • GenericParameterValueSet

      GenericParameterValueSet(ClassInspector ci, int numParms, boolean hasReturnOutputParam)
      Constructor for a GenericParameterValueSet
      Parameters:
      numParms - The number of parameters in the new ParameterValueSet
      hasReturnOutputParam - if we have a ? = call syntax. Note that this is NOT the same thing as an output parameter -- return output parameters are special cases of output parameters.
    • GenericParameterValueSet

      private GenericParameterValueSet(int numParms, GenericParameterValueSet pvs)
  • Method Details

    • initialize

      public void initialize(DataTypeDescriptor[] types) throws StandardException
      Initialize the set by allocating a holder DataValueDescriptor object for each parameter.
      Specified by:
      initialize in interface ParameterValueSet
      Parameters:
      types - expected to match the number of parameters.
      Throws:
      StandardException
    • setParameterMode

      public void setParameterMode(int position, int mode)
      Description copied from interface: ParameterValueSet
      Set the mode of the parameter, called when setting up static method calls and stored procedures. Otherwise the parameter type will default to an IN parameter.
      Specified by:
      setParameterMode in interface ParameterValueSet
    • clearParameters

      public void clearParameters()
      Description copied from interface: ParameterValueSet
      Sets all parameters to an uninitialized state. An exception will be thrown if the caller tries to execute a PreparedStatement when one or more parameters is uninitialized (i.e. has not had setParameterValue() called on it.
      Specified by:
      clearParameters in interface ParameterValueSet
      See Also:
    • getParameterCount

      public int getParameterCount()
      Returns the number of parameters in this set.
      Specified by:
      getParameterCount in interface ParameterValueSet
      Returns:
      The number of parameters in this set.
    • getParameter

      public DataValueDescriptor getParameter(int position) throws StandardException
      Returns the parameter value at the given position.
      Specified by:
      getParameter in interface ParameterValueSet
      Returns:
      The parameter at the given position.
      Throws:
      StandardException - Thrown on error
    • getParameterForSet

      public DataValueDescriptor getParameterForSet(int position) throws StandardException
      Description copied from interface: ParameterValueSet
      Returns the parameter at the given position in order to set it. Setting via an unknown object type must use setParameterAsObject() to ensure correct typing.
      Specified by:
      getParameterForSet in interface ParameterValueSet
      Returns:
      The parameter at the given position.
      Throws:
      StandardException - Thrown on error
    • getParameterForGet

      public DataValueDescriptor getParameterForGet(int position) throws StandardException
      Description copied from interface: ParameterValueSet
      Get the DataValueDescriptor for an INOUT or OUT parameter.
      Specified by:
      getParameterForGet in interface ParameterValueSet
      Parameters:
      position - Zero based index of the parameter.
      Returns:
      Parameter's value holder.
      Throws:
      StandardException - Position out of range or the parameter is not INOUT or OUT.
    • setParameterAsObject

      public void setParameterAsObject(int position, Object value) throws StandardException
      Description copied from interface: ParameterValueSet
      Set the value of this user defined parameter to the passed in Object.
      Specified by:
      setParameterAsObject in interface ParameterValueSet
      Throws:
      StandardException - Thrown on error
    • allAreSet

      public boolean allAreSet()
      Description copied from interface: ParameterValueSet
      Tells whether all the parameters are set and ready for execution. OUT are not required to be set.
      Specified by:
      allAreSet in interface ParameterValueSet
      Returns:
      true if all parameters are set, false if at least one parameter is not set.
      See Also:
    • transferDataValues

      public void transferDataValues(ParameterValueSet pvstarget) throws StandardException
      Description copied from interface: ParameterValueSet
      Set the parameter values of the pvstarget to equal those set in this PVS. Used to transfer saved SPS parameters to the actual prepared statement parameters once associated parameters have been established. Assumes pvstarget is the same length as this.
      Specified by:
      transferDataValues in interface ParameterValueSet
      Parameters:
      pvstarget - ParameterValueSet which will recieve the values
      Throws:
      StandardException - values not compatible
      See Also:
    • getGenericParameter

      GenericParameter getGenericParameter(int position)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • checkPosition

      private void checkPosition(int position) throws StandardException
      Check the position number for a parameter and throw an exception if it is out of range.
      Parameters:
      position - The position number to check
      Throws:
      StandardException - Thrown if position number is out of range.
    • getClone

      public ParameterValueSet getClone()
      Description copied from interface: ParameterValueSet
      Clone the ParameterValueSet and its contents.
      Specified by:
      getClone in interface ParameterValueSet
      Returns:
      ParameterValueSet A clone of the ParameterValueSet and its contents.
    • registerOutParameter

      public void registerOutParameter(int parameterIndex, int jdbcType, int scale) throws StandardException
      Mark the parameter as an output parameter.
      Specified by:
      registerOutParameter in interface ParameterValueSet
      Parameters:
      parameterIndex - The ordinal parameterIndex of a parameter to set to the given value.
      jdbcType - A type from java.sql.Types
      scale - the scale to use. -1 means ignore scale
      Throws:
      StandardException - on error
    • validate

      public void validate() throws StandardException
      Validate the parameters. This is done for situations where we cannot validate everything in the setXXX() calls. In particular, before we do an execute() on a CallableStatement, we need to go through the parameters and make sure that all parameters are set up properly. The motivator for this is that setXXX() can be called either before or after registerOutputParamter(), we cannot be sure we have the types correct until we get to execute().
      Specified by:
      validate in interface ParameterValueSet
      Throws:
      StandardException - if the parameters aren't valid
    • getParameterNumber

      public int getParameterNumber(GenericParameter theParam)
      Return the parameter number (in jdbc lingo, i.e. 1 based) for the given parameter. Linear search.
      Returns:
      the parameter number, or 0 if not found
    • checkNoDeclaredOutputParameters

      public boolean checkNoDeclaredOutputParameters()
      Check that there are not output parameters defined by the parameter set. If there are unknown parameter types they are forced to input types. i.e. Derby static method calls with parameters that are array.
      Specified by:
      checkNoDeclaredOutputParameters in interface ParameterValueSet
      Returns:
      true if a declared Java Procedure INOUT or OUT parameter is in the set, false otherwise.
    • getParameterMode

      public short getParameterMode(int parameterIndex)
      Return the mode of the parameter according to JDBC 3.0 ParameterMetaData
      Specified by:
      getParameterMode in interface ParameterValueSet
      Parameters:
      parameterIndex - the first parameter is 1, the second is 2, ...
    • hasReturnOutputParameter

      public boolean hasReturnOutputParameter()
      Is there a return output parameter in this pvs. A return parameter is from a CALL statement of the following syntax: ? = CALL myMethod()
      Specified by:
      hasReturnOutputParameter in interface ParameterValueSet
      Returns:
      true if it has a return parameter
    • getReturnValueForSet

      public DataValueDescriptor getReturnValueForSet() throws StandardException
      Get the value of the return parameter in order to set it.
      Specified by:
      getReturnValueForSet in interface ParameterValueSet
      Throws:
      StandardException - if a database-access error occurs.
    • getScale

      public int getScale(int parameterIndex)
      Return the scale of the given parameter index in this pvs.
      Specified by:
      getScale in interface ParameterValueSet
      Parameters:
      parameterIndex - the first parameter is 1, the second is 2, ...
      Returns:
      scale
    • getPrecision

      public int getPrecision(int parameterIndex)
      Return the precision of the given parameter index in this pvs.
      Specified by:
      getPrecision in interface ParameterValueSet
      Parameters:
      parameterIndex - the first parameter is 1, the second is 2, ...
      Returns:
      precision