Package org.firebirdsql.jdbc

## Class FBProcedureCall

- java.lang.Object
- - org.firebirdsql.jdbc.FBProcedureCall

All Implemented Interfaces:
  `java.lang.Cloneable`

    public class FBProcedureCall
    extends java.lang.Object
    implements java.lang.Cloneable

Represents procedure call.

### Field Summary

Fields
`static boolean` `OLD_CALLABLE_STATEMENT_COMPATIBILITY` `true` if the old callable statement compatibility mode should be used, otherwise - `false`.

### Constructor Summary

Constructors
`FBProcedureCall()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addInputParam​(FBProcedureParam param)` Add an input parameter to this procedure call.
`void` `addOutputParam​(FBProcedureParam param)` Add an output parameter to this procedure call.
`FBProcedureParam` `addParam​(int position, java.lang.String param)` Add call parameter.
`void` `checkParameters()` Checks if all parameters have been set.
`java.lang.Object` `clone()`
`boolean` `equals​(java.lang.Object obj)` Check if `obj` is equal to this instance.
`FBProcedureParam` `getInputParam​(int index)` Get input parameter by the specified index.
`java.util.List<FBProcedureParam>` `getInputParams()` Get the list of input parameters for this procedure call.
`java.lang.String` `getName()` Get the name of the procedure to be called.
`FBProcedureParam` `getOutputParam​(int index)` Get the output parameter at the specified index.
`java.util.List<FBProcedureParam>` `getOutputParams()` Get a list of output parameters for this procedure call.
`java.lang.String` `getSQL​(boolean select)` Get native SQL for the specified procedure call.
`int` `hashCode()`
`int` `mapOutParamIndexToPosition​(int index)` Map output parameter index to a column number of corresponding result set.
`int` `mapOutParamIndexToPosition​(int index, boolean compatibilityMode)` Map output parameter index to a column number of corresponding result set.
`void` `registerOutParam​(int index, int type)` Register output parameter.
`void` `setName​(java.lang.String name)` Set the name of the procedure to be called.

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

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

### Field Detail

#### OLD_CALLABLE_STATEMENT_COMPATIBILITY

    public static final boolean OLD_CALLABLE_STATEMENT_COMPATIBILITY

`true` if the old callable statement compatibility mode should be used, otherwise - `false`. Current value - `true`.

See Also:
  Constant Field Values

### Constructor Detail

#### FBProcedureCall

    public FBProcedureCall()

### Method Detail

#### clone

    public java.lang.Object clone()

Overrides:
  `clone` in class `java.lang.Object`

#### getName

    public java.lang.String getName()

Get the name of the procedure to be called.

Returns:
  The procedure name

#### setName

    public void setName​(java.lang.String name)

Set the name of the procedure to be called.

Parameters:
  `name` - The name of the procedure

#### getInputParam

    public FBProcedureParam getInputParam​(int index)

Get input parameter by the specified index.

Parameters:
  `index` - index for which parameter has to be returned, first index is 1
Returns:
  instance of `FBProcedureParam`.

#### getOutputParam

    public FBProcedureParam getOutputParam​(int index)

Get the output parameter at the specified index.

Parameters:
  `index` - The index of the parameter, first index is 1
Returns:
  The parameter at the given index

#### mapOutParamIndexToPosition

    public int mapOutParamIndexToPosition​(int index)
                                   throws java.sql.SQLException

Map output parameter index to a column number of corresponding result set.

Parameters:
  `index` - index to map.
Returns:
  mapped column number or `index` if no output parameter with the specified index found (assuming that `OLD_CALLABLE_STATEMENT_COMPATIBILITY` constant is set to `true`, otherwise throws exception).
Throws:
  `java.sql.SQLException` - if compatibility mode is switched off and no parameter was found (see `OLD_CALLABLE_STATEMENT_COMPATIBILITY` constant).

#### mapOutParamIndexToPosition

    public int mapOutParamIndexToPosition​(int index,
                                          boolean compatibilityMode)
                                   throws java.sql.SQLException

Map output parameter index to a column number of corresponding result set.

Parameters:
  `index` - index to map.
  `compatibilityMode` - `true` if we should run in old compatibility mode.
Returns:
  mapped column number or `index` if no output parameter with the specified index found and `compatibilityMode` is set.
Throws:
  `java.sql.SQLException` - if compatibility mode is switched off and no parameter was found.

#### getInputParams

    public java.util.List<FBProcedureParam> getInputParams()

Get the list of input parameters for this procedure call.

Returns:
  A list of all input parameters

#### getOutputParams

    public java.util.List<FBProcedureParam> getOutputParams()

Get a list of output parameters for this procedure call.

Returns:
  A list of all output parameters

#### addInputParam

    public void addInputParam​(FBProcedureParam param)

Add an input parameter to this procedure call.

Parameters:
  `param` - The parameter to be added

#### addOutputParam

    public void addOutputParam​(FBProcedureParam param)

Add an output parameter to this procedure call.

Parameters:
  `param` - The parameter to be added

#### addParam

    public FBProcedureParam addParam​(int position,
                                     java.lang.String param)

Add call parameter. This method adds new parameter to the procedure call and tries to automatically place the parameter into the right collection if it contains a hint whether it is input or output parameter.

Parameters:
  `position` - position of the parameter in the procedure call.
  `param` - contents of the parameter.
Returns:
  instance of the `FBProcedureParam` that was created to represent this parameter.

#### registerOutParam

    public void registerOutParam​(int index,
                                 int type)
                          throws java.sql.SQLException

Register output parameter. This method marks parameter with the specified index as output. Parameters marked as output cannot be used as input parameters.

Parameters:
  `index` - index of the parameter to mark as output.
  `type` - SQL type of the parameter.
Throws:
  `java.sql.SQLException` - if something went wrong.

#### getSQL

    public java.lang.String getSQL​(boolean select)
                            throws java.sql.SQLException

Get native SQL for the specified procedure call.

Returns:
  native SQL that can be executed by the database server.
Throws:
  `java.sql.SQLException`

#### checkParameters

    public void checkParameters()
                         throws java.sql.SQLException

Checks if all parameters have been set.

Throws:
  `java.sql.SQLException` - When some parameters don't have values, and are not registered as an out parameter.

#### equals

    public boolean equals​(java.lang.Object obj)

Check if `obj` is equal to this instance.

Overrides:
  `equals` in class `java.lang.Object`
Returns:
  `true` iff `obj` is instance of this class representing the same procedure with the same parameters.

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`