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

Package com.sas.services.util

# Interface AttributeMapInterface

All Superinterfaces:
  `Remote`

All Known Implementing Classes:
  `AttributeMap`

@SASScope("ALL") @BinaryCompatibilityOnly public interface AttributeMapInterface extends Remote
The AttributeMapInterface manages name/value pairs. A name/value can be specified as a name, a name and a value, or a name and multiple values.

Name/value pairs are used by the Publish services to provide user or application control information describing the result package or entry. Name/values can be associated with a result package, or with individual entries within the result package.

Since:
  1.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addAttribute(String name, String value)`
  Add a value to existing name/value pair.
  `String`
  `getAttribute(String name)`
  Get the value for the specified name.
  `String[]`
  `getAttributes(String name)`
  Get all the values for the specified name.
  `String[]`
  `listAttributeNames()`
  Returns an array of all the names.
  `void`
  `setAttribute(String name, String value)`
  Set the name/value pair.

- ## Method Details

  - ### getAttribute

    String getAttribute(String name) throws RemoteException
    Get the value for the specified name. If there are multiple values for this name, it returns the first name that was added.

    Parameters:
      `name` - The name portion of the name/value pair.
    Returns:
      `String` The value.
    Throws:
      `RemoteException` - If a network anomaly is encountered.

  - ### getAttributes

    String[] getAttributes(String name) throws RemoteException
    Get all the values for the specified name. If no values exist for this name, an empty array is returned.

    Parameters:
      `name` - The name portion of the name/value pair.
    Returns:
      `String[]` An array of all values for the specified name.
    Throws:
      `RemoteException` - If a network anomaly is encountered.

  - ### setAttribute

    void setAttribute(String name, String value) throws RemoteException, IllegalArgumentException
    Set the name/value pair. Any existing value(s) will be cleared in favor of the new value.

    Parameters:
      `name` - The name portion of the name/value pair.
      `value` - The value portion of the name/value pair. If this value is `null`, any existing value(s) are removed for the name/value pair.
    Throws:
      `IllegalArgumentException` - If a `null` or blank name is specified.
      `RemoteException` - If a network anomaly is encountered.

  - ### addAttribute

    void addAttribute(String name, String value) throws RemoteException, IllegalArgumentException
    Add a value to existing name/value pair. This value is appended to the set of any existing values for the specified name. If this name does not already exist, the behavior is the same as `setAttribute(String, String)`. The order is preserved between `addAttribute` and `getAttributes(String)`.

    Parameters:
      `name` - The name portion of the name/value pair.
      `value` - The value portion of the name/value pair.
    Throws:
      `IllegalArgumentException` - If a `null` or blank name is specified.
      `RemoteException` - If a network anomaly is encountered.

  - ### listAttributeNames

    String[] listAttributeNames() throws RemoteException
    Returns an array of all the names.

    Returns:
      `String []` An array of all the names.
    Throws:
      `RemoteException` - If a network anomaly is encountered.