Package org.marketcetera.ors.info

Information stores.

See:
          Description

Interface Summary
Messages The internationalization constants used by this package.
ReadInfo A generic store of key-value pairs whose contents are checked against certain conditions upon retrieval.
ReadWriteInfo A generic store of key-value pairs whose contents are checked against certain conditions during management operations.
RequestInfo A store for key-value pairs specific to a request.
SessionInfo A store for key-value pairs specific to a session.
SystemInfo A store for system-wide key-value pairs.
 

Class Summary
NameGenerator A generator of unique names comprising a prefix, a separator, and a monotonically increasing integer.
RequestInfoImpl A store for key-value pairs specific to a request: implementation.
SessionInfoImpl A store for key-value pairs specific to a session: implementation.
SystemInfoImpl A store for system-wide key-value pairs: implementation.
 

Exception Summary
InfoException An exception representing failures during information management.
InfoRuntimeException An exception representing runtime failures during information management.
 

Package org.marketcetera.ors.info Description

Information stores.

Information stores manage the storage and retrieval of system, session, and request information.

All information stores are organized in a map-oriented fashion. Null values are allowed but null keys are not; if a null key is supplied to any store method, an InfoRuntimeException is thrown.

Stores are nested: a request store RequestInfo is contained in a session store SessionInfo, and that in turn is contained in the (usually singleton) system store SystemInfo.

Stores have names and paths. A unique name for a store is typically generated when the store is created, and includes a monotonically inceasing integer specific to each store class. The path of a store includes its own name and those of the stores that contain it. This naming scheme makes it easy to understand how requests and sessions relate to each other.

Stores emit log information (at debug level, with the category being the name of the store's class) when their contents are queried or modified. These messages include the store's path, thereby providing the necessary context to correlate simultaneous actions.

There is minimal provision for multi-threaded access to a store. While the store's information will not get corrupted under multi-threaded access, it is nevertheless possible for certain operations to behave in an unexpected manner: for example, if ReadWriteInfo.setValueIfUnset(String,Object) is called by two threads concurrently upon the same nonexistent key, then both calls may succeed; with external synchronization, should it be provided by the stores' user, only the first call would succeed.

Since:
2.0.0
Version:
$Id: package-info.java 16154 2012-07-14 16:34:05Z colin $
Author:
tlerios@marketcetera.com


Copyright © 2012. All Rights Reserved.