Package com.sun.ts.lib.util.sec.security.provider

# Class IdentityDatabase

java.lang.Object
java.security.Identity
java.security.IdentityScope
com.sun.ts.lib.util.sec.security.provider.IdentityDatabase

All Implemented Interfaces:
  `Serializable`, `Principal`

public class IdentityDatabase extends IdentityScope implements Serializable
An implementation of IdentityScope as a persistent identity database.

Author:
  Benjamin Renaud
See Also:
  - `Identity`
  - `Key`
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IdentityDatabase(File file)`
  Construct a new, empty database with a specified source file.
  `IdentityDatabase(String name)`
  Construct a new, empty database.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addIdentity(Identity identity)`
  Adds an identity to the database.
  `static IdentityDatabase`
  `fromFile(File f)`
  Initialize an IdentityDatabase from file.
  `static IdentityDatabase`
  `fromStream(InputStream is)`
  Initialize an identity database from a stream.
  `Identity`
  `getIdentity(String name)`
  `Identity`
  `getIdentity(PublicKey key)`
  Get an identity by key.
  `Enumeration<Identity>`
  `identities()`
  `void`
  `removeIdentity(Identity identity)`
  Removes an identity to the database.
  `void`
  `save()`
  Saves the database to the default source file.
  `void`
  `save(OutputStream os)`
  Save the database in its current state to an output stream.
  `int`
  `size()`
  `String`
  `toString()`

  ### Methods inherited from class java.security.IdentityScope

  `getIdentity, getSystemScope, setSystemScope`

  ### Methods inherited from class java.security.Identity

  `addCertificate, certificates, equals, getInfo, getName, getPublicKey, getScope, hashCode, identityEquals, removeCertificate, setInfo, setPublicKey, toString`

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

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

  ### Methods inherited from interface java.security.Principal

  `implies`

- ## Constructor Details

  - ### IdentityDatabase

    public IdentityDatabase(File file) throws InvalidParameterException
    Construct a new, empty database with a specified source file.
    Parameters:
      `file` - the source file.
    Throws:
      `InvalidParameterException`

  - ### IdentityDatabase

    public IdentityDatabase(String name) throws InvalidParameterException
    Construct a new, empty database.
    Throws:
      `InvalidParameterException`

- ## Method Details

  - ### fromStream

    public static IdentityDatabase fromStream(InputStream is) throws IOException
    Initialize an identity database from a stream. The stream should contain data to initialized a serialized IdentityDatabase object.
    Parameters:
      `is` - the input stream from which to restore the database.
    Throws:
      `IOException` - if a stream IO exception occurs

  - ### fromFile

    public static IdentityDatabase fromFile(File f) throws IOException
    Initialize an IdentityDatabase from file.
    Parameters:
      `f` - the filename where the identity database is stored.
    Throws:
      `IOException` - a file-related exception occurs (e.g. the directory of the file passed does not exists, etc.

  - ### size

    public int size()
    Specified by:
      `size` in class `IdentityScope`
    Returns:
      the number of identities in the database.

  - ### getIdentity

    public Identity getIdentity(String name)
    Specified by:
      `getIdentity` in class `IdentityScope`
    Parameters:
      `name` - the name of the identity to be retrieved.
    Returns:
      the identity named name, or null if there are no identities named name in the database.

  - ### getIdentity

    public Identity getIdentity(PublicKey key)
    Get an identity by key.
    Specified by:
      `getIdentity` in class `IdentityScope`
    Parameters:
      `name` - the key of the identity to be retrieved.
    Returns:
      the identity with a given key, or null if there are no identities with that key in the database.

  - ### addIdentity

    public void addIdentity(Identity identity) throws KeyManagementException
    Adds an identity to the database.
    Specified by:
      `addIdentity` in class `IdentityScope`
    Parameters:
      `identity` - the identity to be added.
    Throws:
      `KeyManagementException` - if a name or key clash occurs, or if another exception occurs.

  - ### removeIdentity

    public void removeIdentity(Identity identity) throws KeyManagementException
    Removes an identity to the database.
    Specified by:
      `removeIdentity` in class `IdentityScope`
    Throws:
      `KeyManagementException`

  - ### identities

    public Enumeration<Identity> identities()
    Specified by:
      `identities` in class `IdentityScope`
    Returns:
      an enumeration of all identities in the database.

  - ### save

    public void save(OutputStream os) throws IOException
    Save the database in its current state to an output stream.
    Parameters:
      `os` - the output stream to which the database should be serialized.
    Throws:
      `IOException` - if an IO exception is raised by stream operations.

  - ### save

    public void save() throws IOException
    Saves the database to the default source file.
    Throws:
      `KeyManagementException` - when there is no default source file specified for this database.
      `IOException`

  - ### toString

    public String toString()
    Specified by:
      `toString` in interface `Principal`
    Overrides:
      `toString` in class `IdentityScope`