# Class Procedure

java.lang.Object
org.apache.cayenne.map.Procedure

All Implemented Interfaces:
  `Serializable, ConfigurationNode, CayenneMapEntry, XMLSerializable`

public class Procedure extends Object implements ConfigurationNode, CayenneMapEntry, XMLSerializable, Serializable
A mapping descriptor for a database stored procedure.

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected List<ProcedureParameter>`
  `callParameters`
  `protected String`
  `catalog`
  `protected DataMap`
  `dataMap`
  `protected String`
  `name`
  `protected boolean`
  `returningValue`
  `protected String`
  `schema`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Procedure()`
  Creates an unnamed procedure object.
  `Procedure(String name)`
  Creates a named Procedure object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `<T> T`
  `acceptVisitor(ConfigurationNodeVisitor<T> visitor)`
  `void`
  `addCallParameter(ProcedureParameter param)`
  Adds new call parameter to the stored procedure.
  `void`
  `clearCallParameters()`
  `void`
  `encodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate)`
  Prints itself as XML to the provided XMLEncoder.
  `static String`
  `generateFullyQualifiedName(String catalog, String schema, String name)`
  Utility function to generate fully qualified name for procedure
  `List<ProcedureParameter>`
  `getCallOutParameters()`
  Returns a list of OUT and INOUT call parameters.
  `List<ProcedureParameter>`
  `getCallParameters()`
  Returns an unmodifiable list of call parameters.
  `String`
  `getCatalog()`
  `DataMap`
  `getDataMap()`
  `String`
  `getFullyQualifiedName()`
  Returns procedure name including schema and catalog, if present.
  `String`
  `getName()`
  Returns the name property of this object.
  `Object`
  `getParent()`
  Returns the parent map.
  `ProcedureParameter`
  `getResultParam()`
  Returns parameter describing the return value of the StoredProcedure, or null if procedure does not support return values.
  `String`
  `getSchema()`
  `boolean`
  `isReturningValue()`
  Returns `true` if a stored procedure returns a value.
  `void`
  `removeCallParameter(String name)`
  Removes a named call parameter.
  `void`
  `setCallParameters(List<ProcedureParameter> parameters)`
  `void`
  `setCatalog(String string)`
  Sets stored procedure's catalog.
  `void`
  `setDataMap(DataMap dataMap)`
  Sets parent DataMap of this entity.
  `void`
  `setName(String name)`
  `void`
  `setParent(Object parent)`
  Stores the parent map.
  `void`
  `setReturningValue(boolean returningValue)`
  `void`
  `setSchema(String string)`
  Sets stored procedure's database schema.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### name

    protected String name

  - ### dataMap

    protected DataMap dataMap

  - ### catalog

    protected String catalog

  - ### schema

    protected String schema

  - ### returningValue

    protected boolean returningValue

  - ### callParameters

    protected List<ProcedureParameter> callParameters

- ## Constructor Details

  - ### Procedure

    public Procedure()
    Creates an unnamed procedure object.

  - ### Procedure

    public Procedure(String name)
    Creates a named Procedure object.

- ## Method Details

  - ### acceptVisitor

    public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor)
    Specified by:
      `acceptVisitor` in interface `ConfigurationNode`
    Since:
      3.1

  - ### getName

    public String getName()
    Description copied from interface: `CayenneMapEntry`
    Returns the name property of this object.
    Specified by:
      `getName` in interface `CayenneMapEntry`
    Returns:
      name of this entry.

  - ### setName

    public void setName(String name)

  - ### getParent

    public Object getParent()
    Description copied from interface: `CayenneMapEntry`
    Returns the parent map.
    Specified by:
      `getParent` in interface `CayenneMapEntry`

  - ### setParent

    public void setParent(Object parent)
    Description copied from interface: `CayenneMapEntry`
    Stores the parent map.
    Specified by:
      `setParent` in interface `CayenneMapEntry`

  - ### encodeAsXML

    public void encodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate)
    Prints itself as XML to the provided XMLEncoder.
    Specified by:
      `encodeAsXML` in interface `XMLSerializable`
    Since:
      1.1

  - ### getFullyQualifiedName

    public String getFullyQualifiedName()
    Returns procedure name including schema and catalog, if present.

  - ### generateFullyQualifiedName

    public static String generateFullyQualifiedName(String catalog, String schema, String name)
    Utility function to generate fully qualified name for procedure

  - ### getDataMap

    public DataMap getDataMap()
    Returns:
      parent DataMap of this entity.

  - ### setDataMap

    public void setDataMap(DataMap dataMap)
    Sets parent DataMap of this entity.

  - ### setCallParameters

    public void setCallParameters(List<ProcedureParameter> parameters)

  - ### addCallParameter

    public void addCallParameter(ProcedureParameter param)
    Adds new call parameter to the stored procedure. Also sets `param`'s parent to be this procedure.

  - ### removeCallParameter

    public void removeCallParameter(String name)
    Removes a named call parameter.

  - ### clearCallParameters

    public void clearCallParameters()

  - ### getCallParameters

    public List<ProcedureParameter> getCallParameters()
    Returns an unmodifiable list of call parameters.

  - ### getCallOutParameters

    public List<ProcedureParameter> getCallOutParameters()
    Returns a list of OUT and INOUT call parameters. If procedure has a return value, it will also be included as a call parameter.

  - ### getResultParam

    public ProcedureParameter getResultParam()
    Returns parameter describing the return value of the StoredProcedure, or null if procedure does not support return values. If procedure supports return parameters, its first parameter is always assumed to be a return result.

  - ### isReturningValue

    public boolean isReturningValue()
    Returns `true` if a stored procedure returns a value. The first parameter in a list of parameters will be assumed to be a descriptor of return value.
    Returns:
      boolean

  - ### setReturningValue

    public void setReturningValue(boolean returningValue)

  - ### getCatalog

    public String getCatalog()

  - ### getSchema

    public String getSchema()

  - ### setCatalog

    public void setCatalog(String string)
    Sets stored procedure's catalog.

  - ### setSchema

    public void setSchema(String string)
    Sets stored procedure's database schema.