CallableStatement.CallableStatementParamInfoJDBC3
Date: 2016-03-08

com.mysql.jdbc

## Class CallableStatement.CallableStatementParamInfoJDBC3

- java.lang.Object
- - com.mysql.jdbc.CallableStatement.CallableStatementParamInfo
  - - com.mysql.jdbc.CallableStatement.CallableStatementParamInfoJDBC3

- All Implemented Interfaces:
    java.sql.ParameterMetaData, java.sql.Wrapper
  Enclosing class:
    CallableStatement

      protected class CallableStatement.CallableStatementParamInfoJDBC3
      extends CallableStatement.CallableStatementParamInfo
      implements java.sql.ParameterMetaData

  Can't implement this directly, as then you can't use callable statements on JDK-1.3.1, which unfortunately isn't EOL'd yet, and still present quite a bit out there in the wild (Websphere, FreeBSD, anyone?)

- - ### Field Summary

    - ### Fields inherited from class com.mysql.jdbc.CallableStatement.CallableStatementParamInfo

      `catalogInUse, isFunctionCall, isReadOnlySafeChecked, isReadOnlySafeProcedure, nativeSql, numParameters, parameterList, parameterMap`

    - ### Fields inherited from interface java.sql.ParameterMetaData

      `parameterModeIn, parameterModeInOut, parameterModeOut, parameterModeUnknown, parameterNoNulls, parameterNullable, parameterNullableUnknown`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CallableStatement.CallableStatementParamInfoJDBC3(CallableStatement.CallableStatementParamInfo paramInfo)`
    `CallableStatement.CallableStatementParamInfoJDBC3(java.sql.ResultSet paramTypesRs)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isWrapperFor(java.lang.Class<?> iface)` Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.
    `java.lang.Object` | `unwrap(java.lang.Class<?> iface)` Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.

    - ### Methods inherited from class com.mysql.jdbc.CallableStatement.CallableStatementParamInfo

      `checkBounds, clone, getParameter, getParameter, getParameterClassName, getParameterCount, getParameterMode, getParameterType, getParameterTypeName, getPrecision, getScale, isNullable, isSigned, iterator, numberOfParameters`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.sql.ParameterMetaData

      `getParameterClassName, getParameterCount, getParameterMode, getParameterType, getParameterTypeName, getPrecision, getScale, isNullable, isSigned`

    - ### Methods inherited from interface java.sql.Wrapper

      `unwrap`

- - ### Constructor Detail

    - #### CallableStatement.CallableStatementParamInfoJDBC3

          CallableStatement.CallableStatementParamInfoJDBC3(java.sql.ResultSet paramTypesRs)
                                                      throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### CallableStatement.CallableStatementParamInfoJDBC3

          public CallableStatement.CallableStatementParamInfoJDBC3(CallableStatement.CallableStatementParamInfo paramInfo)

  - ### Method Detail

    - #### isWrapperFor

          public boolean isWrapperFor(java.lang.Class<?> iface)
                               throws java.sql.SQLException

      Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively calling `isWrapperFor` on the wrapped object. If this does not implement the interface and is not a wrapper, return false. This method should be implemented as a low-cost operation compared to `unwrap` so that callers can use this method to avoid expensive `unwrap` calls that may fail. If this method returns true then calling `unwrap` with the same argument should succeed.
      Specified by:
        `isWrapperFor` in interface `java.sql.Wrapper`
      Parameters:
        `interfaces` - a Class defining an interface.
      Returns:
        true if this implements the interface or directly or indirectly wraps an object that does.
      Throws:
        `java.sql.SQLException` - if an error occurs while determining whether this is a wrapper for an object with the given interface.
      Since:
        1.6

    - #### unwrap

          public java.lang.Object unwrap(java.lang.Class<?> iface)
                                  throws java.sql.SQLException

      Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy. The result may be either the object found to implement the interface or a proxy for that object. If the receiver implements the interface then that is the object. If the receiver is a wrapper and the wrapped object implements the interface then that is the object. Otherwise the object is the result of calling `unwrap` recursively on the wrapped object. If the receiver is not a wrapper and does not implement the interface, then an `SQLException` is thrown.
      Parameters:
        `iface` - A Class defining an interface that the result must implement.
      Returns:
        an object that implements the interface. May be a proxy for the actual implementing object.
      Throws:
        `java.sql.SQLException` - If no object found that implements the interface
      Since:
        1.6