Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

## Package org.modeshape.graph.connector.map

The `MapRepository` class and its supporting classes provide a default implementation of the connector classes for connectors that support the transient or persistent mapping of a UUID to a `standard representation of a node`.

See:
Description

Interface Summary
MapNode |
MapRepositorySource | An extension of the `RepositorySource` class that provides a `cache policy` and a `repository context`.
MapRepositoryTransaction | A transaction returned by the `MapRepository.startTransaction(boolean)`.
MapWorkspace | The `MapWorkspace` defines the required methods for workspaces in a `map repository`.

Class Summary
AbstractMapWorkspace | A default implementation of `MapWorkspace` that only requires the user to implement some simple, map-like operations.
DefaultMapNode |
LockBasedTransaction | A `MapRepositoryTransaction` based upon a `Lock`.
MapRepository | A default implementation of a map-based repository.
MapRepositoryConnection | A connection to a `MapRepository`.
MapRequestProcessor | The default implementation of the `RequestProcessor` for map repositories.

## Package org.modeshape.graph.connector.map Description

The `MapRepository` class and its supporting classes provide a default implementation of the connector classes for connectors that support the transient or persistent mapping of a UUID to a `standard representation of a node`. To implement a connector based on this framework, one must create an implementation of `the repository source`, an implementation of `the repository itself`, and an implementation of `the workspace`.

The `repository source implementation` contains properties for the repository configuration and caching policies. A key method in the `MapRepositorySource` implementation if the `RepositorySource.getConnection()` method, which should generally be implemented using the `default connection implementation`.

     if (repository == null) {
      repository = new InMemoryRepository(name, rootNodeUuid, defaultWorkspaceName);
     }
     return new MapRepositoryConnection(this, repository);

The `repository implementation` is only required to provide an implementation of the `MapRepository.createWorkspace(org.modeshape.graph.ExecutionContext, String)` method that returns the appropriate `workspace` implementation for the connector. However, all constructors for the repository must call `MapRepository.initialize()` after the constructor has completed its initialization, as demonstrated below:

     public InMemoryRepository( String sourceName,
                                UUID rootNodeUuid,
                                String defaultWorkspaceName ) {
       initialize();
     }

Finally, the `workspace implementation` must be created. Implementors should consider extending the `AbstractMapWorkspace` class, which provides reasonable default implementations (assuming that the backing map provides O(1) lookups - a sine qua non for maps) for almost this class imposes a requirement that its `AbstractMapWorkspace.initialize()` method also be called at the end of each constructor, like so:

      public Workspace( MapRepository repository,
                        String name ) {
          super(repository, name);

          initialize();
      }

See Also:
  `InMemoryRepositorySource`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

Copyright © 2008-2012 JBoss, a division of Red Hat. All Rights Reserved.