## org.eclipse.emf.transaction
Interface TransactionalEditingDomain.Registry

All Known Implementing Classes:
  TransactionalEditingDomainImpl.RegistryImpl

Enclosing interface:
  TransactionalEditingDomain

    public static interface TransactionalEditingDomain.Registry

An ID-based registry of shareable `TransactionalEditingDomain` instances. Although editing domains can be registered in code, the usual means is to implement the `org.eclipse.emf.transaction.editingDomains` extension point.

Field Summary
`static TransactionalEditingDomain.Registry` `INSTANCE` The single static registry instance.

Method Summary
`void` `add(String id, TransactionalEditingDomain domain)` Registers an editing domain under the specified ID.
`TransactionalEditingDomain` `getEditingDomain(String id)` Obtains the editing domain having the specified ID.
`TransactionalEditingDomain` `remove(String id)` Removes the editing domain matching the specified ID from the registry.

Field Detail

### INSTANCE

    static final TransactionalEditingDomain.Registry INSTANCE

  The single static registry instance.

Method Detail

### getEditingDomain

    TransactionalEditingDomain getEditingDomain(String id)

  Obtains the editing domain having the specified ID. if the specified domain is registered on the extension point but has not yet been created, then it is first created (using the designated factory) and then returned.

  Parameters:
    `id` - the ID to request
  Returns:
    the matching editing domain, or `null` if it is not found and it could not be created from the extension point

### add

    void add(String id,
             TransactionalEditingDomain domain)

  Registers an editing domain under the specified ID. This will displace any domain previously registered under this ID. Note that it is not permitted to replace an editing domain that was registered statically on the `org.eclipse.emf.transaction.editingDomains` extension point.

  Parameters:
    `id` - the domain ID to register
    `domain` - the domain to register. If its current `ID` is not the registered ID, then it is updated to correspond
  Throws:
    `IllegalArgumentException` - if the specified ID is already registered statically on the extension point

### remove

    TransactionalEditingDomain remove(String id)

  Removes the editing domain matching the specified ID from the registry. Note that it is not permitted to remove an ID that was registered statically on the `org.eclipse.emf.transaction.editingDomains` extension point.

  Parameters:
    `id` - the domain ID to deregister
  Returns:
    the editing domain previously registered under this ID, or `null` if none was registered
  Throws:
    `IllegalArgumentException` - if the specified ID was registered statically on the extension point

Copyright 2002, 2007 IBM Corporation and others. All Rights Reserved.