### *** This class provides Binary Compatibility only, not Source Compatibility ***

Package com.sas.services.connection

# Class Puddle

java.lang.Object
com.sas.services.connection.Puddle

All Implemented Interfaces:
  `Serializable`, `Cloneable`

@SASScope("ALL") @BinaryCompatibilityOnly public class Puddle extends Object implements Cloneable, Serializable
A description of a puddle of IOM clusters. A puddle is an association of one or more IOM clusters with exactly one IOM login and, optionally, with a list of users allowed to use connections to this puddle of clusters.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Puddle(Cluster[] clusters, Credential serverCredential)`
  Construct a puddle of IOM server clusters.
  `Puddle(Cluster cluster, Credential serverCredential)`
  Construct a puddle with one IOM server cluster.
  `Puddle(Server server, Credential serverCredential)`
  Construct a puddle with one IOM server.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `boolean`
  `equals(Object that)`
  `String`
  `getClassID()`
  Get the classID of the clusters in this puddle.
  `Cluster[]`
  `getClusterArray()`
  Get the server clusters.
  `int`
  `getMinAvail()`
  Get the minimum number of idle connections.
  `int`
  `getMinSize()`
  Get the minimum number of connections (idle or in use).
  `String`
  `getPuddleName()`
  Get a string that names the puddle.
  `Credential`
  `getServerCredential()`
  Get the credential for the clusters.
  `Set`
  `getUserCredentials()`
  Get the set of credentials representing users that are allowed to use this puddle.
  `Set`
  `getUsers()`
  Get the set of users that are allowed to use this puddle.
  `int`
  `hashCode()`
  `void`
  `setClusterArray(Cluster[] clusterArray)`
  Set the server clusters.
  `void`
  `setMinAvail(int minAvail)`
  Set the minimum number of idle connections.
  `void`
  `setMinSize(int minSize)`
  Set the minimum number of connections (idle or in use).
  `void`
  `setPuddleName(String puddleName)`
  Set a string that names the puddle.
  `void`
  `setServerCredential(Credential serverCredential)`
  Set the credential for the clusters.
  `void`
  `setUserCredentials(Set userCredentials)`
  Set the set of credentials representing users that are allowed to use this puddle.
  `void`
  `setUsers(Set users)`
  Set the set of users that are allowed to use this puddle.
  `String`
  `toString()`

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

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

- ## Constructor Details

  - ### Puddle

    public Puddle(Server server, Credential serverCredential)
    Construct a puddle with one IOM server. This constructor is a shortcut for the following more complicated code:

         Puddle(new Cluster[]{new FailoverCluster(server)},serverCredential)

    Parameters:
      `server` - the server in the puddle
      `serverCredential` - the credential to use when connecting to the server

  - ### Puddle

    public Puddle(Cluster cluster, Credential serverCredential)
    Construct a puddle with one IOM server cluster. This constructor is a shortcut for the following more complicated code:

         Puddle(new Cluster[]{cluster},credential)

    Parameters:
      `cluster` - the server cluster in the puddle
      `serverCredential` - the credential to use when connecting to a server in the cluster

  - ### Puddle

    public Puddle(Cluster[] clusters, Credential serverCredential)
    Construct a puddle of IOM server clusters.
    Parameters:
      `clusters` - the server clusters in the puddle
      `serverCredential` - the credential to use when connecting to a server in one of the clusters

- ## Method Details

  - ### setClusterArray

    public void setClusterArray(Cluster[] clusterArray)
    Set the server clusters.
    Parameters:
      `clusterArray` - the clusters

  - ### getClusterArray

    public Cluster[] getClusterArray()
    Get the server clusters.
    Returns:
      the clusters

  - ### setServerCredential

    public void setServerCredential(Credential serverCredential)
    Set the credential for the clusters.
    Parameters:
      `serverCredential` - the credential for the clusters

  - ### getServerCredential

    public Credential getServerCredential()
    Get the credential for the clusters.
    Returns:
      the credential for the clusters

  - ### setMinSize

    public void setMinSize(int minSize)
    Set the minimum number of connections (idle or in use).
    Parameters:
      `minSize` - the minimum number of connections (idle or in use)

  - ### getMinSize

    public int getMinSize()
    Get the minimum number of connections (idle or in use).
    Returns:
      the minimum number of connections (idle or in use)

  - ### setMinAvail

    public void setMinAvail(int minAvail)
    Set the minimum number of idle connections.
    Parameters:
      `minAvail` - the minimum number of idle connections

  - ### getMinAvail

    public int getMinAvail()
    Get the minimum number of idle connections.
    Returns:
      the minimum number of idle connections

  - ### setUserCredentials

    public void setUserCredentials(Set userCredentials)
    Set the set of credentials representing users that are allowed to use this puddle.
    Parameters:
      `userCredentials` - the set of credentials representing users that are allowed to use this puddle

  - ### getUserCredentials

    public Set getUserCredentials()
    Get the set of credentials representing users that are allowed to use this puddle. If both this method and `getUsers()` return `null`, then any user will be allowed to use this puddle.
    Returns:
      the set of credentials representing users that are allowed to use this puddle

  - ### setUsers

    public void setUsers(Set users)
    Set the set of users that are allowed to use this puddle.
    Parameters:
      `users` - the set of users that are allowed to use this puddle

  - ### getUsers

    public Set getUsers()
    Get the set of users that are allowed to use this puddle. If both this method and `getUserCredentials()` return `null`, then any user will be allowed to use this puddle.
    Returns:
      the set of users that are allowed to use this puddle

  - ### setPuddleName

    public void setPuddleName(String puddleName)
    Set a string that names the puddle. This name is used by the `authentication/authorization server` to determine if special authorization rules apply.
    Parameters:
      `puddleName` - a string the names the puddle

  - ### getPuddleName

    public String getPuddleName()
    Get a string that names the puddle. This name is used by the `authentication/authorization server` to determine if special authorization rules apply. * @return a string the names the puddle

  - ### getClassID

    public String getClassID()
    Get the classID of the clusters in this puddle. All clusters must have the same classID.
    Returns:
      the classID of the clusters in this puddle

  - ### equals

    public boolean equals(Object that)
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### clone

    public Object clone()
    Overrides:
      `clone` in class `Object`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`