# Class IdentityScope

java.lang.Object
java.security.Identity
java.security.IdentityScope

All Implemented Interfaces:
  `Serializable, Principal`

@Deprecated(since="1.2", forRemoval=true) public abstract class IdentityScope extends Identity
Deprecated, for removal: This API element is subject to removal in a future version.
This class is deprecated and subject to removal in a future version of Java SE. It has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.

This class represents a scope for identities. It is an Identity itself, and therefore has a name and can have a scope. It can also optionally have a public key and associated certificates.

An `IdentityScope` can contain `Identity` objects of all kinds, including signers. All types of `Identity` objects can be retrieved, added, and removed using the same methods. Note that it is possible, and in fact expected, that different types of identity scopes will apply different policies for their various operations on the various types of Identities.

There is a one-to-one mapping between keys and identities, and there can only be one copy of one key per scope. For example, suppose Acme Software, Inc is a software publisher known to a user. Suppose it is an Identity, that is, it has a public key, and a set of associated certificates. It is named in the scope using the name "Acme Software". No other named Identity in the scope has the same public key. Of course, none has the same name as well.

Since:
  1.1
See Also:
  - `Identity`
  - `Signer`
  - `Principal`
  - `Key`
  - Serialized Form

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `IdentityScope()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  This constructor is used for serialization only and should not be used by subclasses.
  ``
  `IdentityScope(String name)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Constructs a new identity scope with the specified name.
  ``
  `IdentityScope(String name, IdentityScope scope)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Constructs a new identity scope with the specified name and scope.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract void`
  `addIdentity(Identity identity)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Adds an `Identity` to this identity scope.
  `abstract Identity`
  `getIdentity(String name)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns the `Identity` in this scope with the specified name (if any).
  `Identity`
  `getIdentity(Principal principal)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Retrieves the `Identity` whose name is the same as that of the specified principal.
  `abstract Identity`
  `getIdentity(PublicKey key)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Retrieves the `identity` with the specified public key.
  `static IdentityScope`
  `getSystemScope()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns the system's identity scope.
  `abstract Enumeration<Identity>`
  `identities()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns an enumeration of all identities in this identity scope.
  `abstract void`
  `removeIdentity(Identity identity)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Removes an `Identity` from this identity scope.
  `protected static void`
  `setSystemScope(IdentityScope scope)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Sets the system's identity scope.
  `abstract int`
  `size()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns the number of identities within this identity scope.
  `String`
  `toString()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns a string representation of this identity scope, including its name, its scope name, and the number of identities in this identity scope.

  ### Methods declared in class Identity

  `addCertificate, certificates, equals, getInfo, getName, getPublicKey, getScope, hashCode, identityEquals, removeCertificate, setInfo, setPublicKey, toString`
  Modifier and Type
  Method
  Description
  `void`
  `addCertificate(Certificate certificate)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Adds a certificate for this `Identity`.
  `Certificate[]`
  `certificates()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns a copy of all the certificates for this `Identity`.
  `final boolean`
  `equals(Object identity)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Tests for equality between the specified object and this `Identity`.
  `String`
  `getInfo()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns general information previously specified for this `Identity`.
  `final String`
  `getName()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns this identity's name.
  `PublicKey`
  `getPublicKey()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns this identity's public key.
  `final IdentityScope`
  `getScope()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns this identity's scope.
  `int`
  `hashCode()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns the hashcode for this `Identity`.
  `protected boolean`
  `identityEquals(Identity identity)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Tests for equality between the specified `Identity` and this `Identity`.
  `void`
  `removeCertificate(Certificate certificate)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Removes a certificate from this `Identity`.
  `void`
  `setInfo(String info)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Specifies a general information string for this `Identity`.
  `void`
  `setPublicKey(PublicKey key)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Sets this identity's public key.
  `String`
  `toString(boolean detailed)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Returns a string representation of this `Identity`, with optionally more details than that provided by the `toString` method without any arguments.

  ### Methods declared in class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

  ### Methods declared in interface Principal

  `implies`
  Modifier and Type
  Method
  Description
  `default boolean`
  `implies(Subject subject)`
  Returns `true` if the specified subject is implied by this `Principal`.

- ## Constructor Details

  - ### IdentityScope

    protected IdentityScope()
    Deprecated, for removal: This API element is subject to removal in a future version.
    This constructor is used for serialization only and should not be used by subclasses.

  - ### IdentityScope

    public IdentityScope(String name)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Constructs a new identity scope with the specified name.
    Parameters:
      `name` - the scope name.

  - ### IdentityScope

    public IdentityScope(String name, IdentityScope scope) throws KeyManagementException
    Deprecated, for removal: This API element is subject to removal in a future version.
    Constructs a new identity scope with the specified name and scope.
    Parameters:
      `name` - the scope name.
      `scope` - the scope for the new identity scope.
    Throws:
      `KeyManagementException` - if there is already an `Identity` with the same name in the scope.

- ## Method Details

  - ### getSystemScope

    public static IdentityScope getSystemScope()
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the system's identity scope.
    Returns:
      the system's identity scope, or `null` if none has been set.
    See Also:
      - `setSystemScope(IdentityScope)`

  - ### setSystemScope

    protected static void setSystemScope(IdentityScope scope)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Sets the system's identity scope.
    Parameters:
      `scope` - the scope to set.
    See Also:
      - `getSystemScope()`

  - ### size

    public abstract int size()
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the number of identities within this identity scope.
    Returns:
      the number of identities within this identity scope.

  - ### getIdentity

    public abstract Identity getIdentity(String name)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the `Identity` in this scope with the specified name (if any).
    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 this scope.

  - ### getIdentity

    public Identity getIdentity(Principal principal)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Retrieves the `Identity` whose name is the same as that of the specified principal. (Note: `Identity` implements `Principal`.)
    Parameters:
      `principal` - the principal corresponding to the `Identity` to be retrieved.
    Returns:
      the `Identity` whose name is the same as that of the principal, or `null` if there are no identities of the same name in this scope.

  - ### getIdentity

    public abstract Identity getIdentity(PublicKey key)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Retrieves the `identity` with the specified public key.
    Parameters:
      `key` - the public key for the identity to be returned.
    Returns:
      the identity with the given key, or `null` if there are no identities in this scope with that key.

  - ### addIdentity

    public abstract void addIdentity(Identity identity) throws KeyManagementException
    Deprecated, for removal: This API element is subject to removal in a future version.
    Adds an `Identity` to this identity scope.
    Parameters:
      `identity` - the `Identity` to be added.
    Throws:
      `KeyManagementException` - if the identity is not valid, a name conflict occurs, another identity has the same public key as the identity being added, or another exception occurs.

  - ### removeIdentity

    public abstract void removeIdentity(Identity identity) throws KeyManagementException
    Deprecated, for removal: This API element is subject to removal in a future version.
    Removes an `Identity` from this identity scope.
    Parameters:
      `identity` - the `Identity` to be removed.
    Throws:
      `KeyManagementException` - if the identity is missing, or another exception occurs.

  - ### identities

    public abstract Enumeration<Identity> identities()
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns an enumeration of all identities in this identity scope.
    Returns:
      an enumeration of all identities in this identity scope.

  - ### toString

    public String toString()
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns a string representation of this identity scope, including its name, its scope name, and the number of identities in this identity scope.
    Specified by:
      `toString` in interface `Principal`
    Overrides:
      `toString` in class `Identity`
    Returns:
      a string representation of this identity scope.