com.neeve.ods
Class StoreObjectFactoryRegistry

java.lang.Object
  extended by com.neeve.root.RootObject
      extended by com.neeve.ods.OdsObject
          extended by com.neeve.ods.StoreObjectFactoryRegistry

public final class StoreObjectFactoryRegistry
extends OdsObject

The object factory registry.

The object factory registry, a singleton class, stores references to configured object factories. It loads and instantiates object factories and serves them out by name and id.

Threading:
The object factory registry is safe for concurrent access by multiple threads.

Field Summary
static String ADM_COMPATIBILITY_LEVEL
          The ODS ADM Generated Code Compatibility level.
 
Method Summary
 void dumpFactoryVersionInfo(StringBuilder builder)
          Dump the registered factories' version information.
static StoreObjectFactoryRegistry getInstance()
          Get the singleton object factory registry instance.
 IStoreObjectFactory getObjectFactory(short factoryId)
          Get an object factory.
 Set<String> getStoreObjectFactoryNames(Set<String> factories)
          Get the names of the set of registered factories.
static IStoreObjectFactory loadObjectFactory(String className)
          Load (instantiate) an object factory class
 boolean registerIfNoConflict(IStoreObjectFactory factory)
          Registers the given factory, if it doesn't conflict with an existing factory.
 boolean registerIfNoConflict(String factoryClassName)
          Register a object factory by class name, if it doesn't conflict with an existing factory.
 void registerObjectFactory(IStoreObjectFactory factory)
          Register an object factory
 void registerObjectFactory(String factoryClassName)
          Register an object factory by class name
 
Methods inherited from class com.neeve.root.RootObject
getChecked, getThreaded, getTracer, setChecked, setTracer
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ADM_COMPATIBILITY_LEVEL

public static final String ADM_COMPATIBILITY_LEVEL
The ODS ADM Generated Code Compatibility level.

See Also:
Constant Field Values
Method Detail

getInstance

public static final StoreObjectFactoryRegistry getInstance()
Get the singleton object factory registry instance.

Threading:
This method is safe for concurrent access by multiple threads

loadObjectFactory

public static final IStoreObjectFactory loadObjectFactory(String className)
                                                   throws Exception
Load (instantiate) an object factory class

Parameters:
className - The name of the object factory class to instantiate
Throws:
Exception

registerObjectFactory

public final void registerObjectFactory(String factoryClassName)
                                 throws Exception
Register an object factory by class name

Parameters:
factoryClassName - The name of the object factory to register
Throws:
Exception
Threading:
This method is safe for concurrent access by multiple threads.

This method instantiates an object factory of the supplied class name and adds the instantiated factory to the object factory registry. It will replace a factory of the same id if one exists.


registerObjectFactory

public final void registerObjectFactory(IStoreObjectFactory factory)
Register an object factory

Parameters:
factory - The object factory to register
Threading:
This method is safe for concurrent access by multiple threads.

This method adds the supplied object factory to the object factory registry. It will replace a factory of the same id if one exists.


registerIfNoConflict

public final boolean registerIfNoConflict(String factoryClassName)
                                   throws OdsFactoryIdConflictException,
                                          Exception
Register a object factory by class name, if it doesn't conflict with an existing factory.

Parameters:
factoryClassName - The name of the factory class to load and register.
Returns:
true if this call registered the factory or false if the factory was already registered.
Throws:
EAdmCompatibilityException - If the factory is not compatible with the runtime
OdsFactoryIdConflictException - If another factory of a different type is already registered.
Exception - If the factoryClassName cannot be loaded as a store object factory.
Threading:
This method is safe for concurrent access by multiple threads.

This method adds the supplied object factory to the object factory registry. It will not replace a factory of the same id if one exists.


registerIfNoConflict

public final boolean registerIfNoConflict(IStoreObjectFactory factory)
                                   throws OdsFactoryIdConflictException
Registers the given factory, if it doesn't conflict with an existing factory.

Parameters:
factory - The object factory to register
Returns:
true if this call registered the factory or false if the factory was already registered.
Throws:
EAdmCompatibilityException - If the factory is not compatible with the runtime
OdsFactoryIdConflictException - If another factory of a different type is already registered.
Threading:
This method is safe for concurrent access by multiple threads.

This method adds the supplied object factory to the object factory registry. It will not replace a factory of the same id if one exists.


getObjectFactory

public final IStoreObjectFactory getObjectFactory(short factoryId)
Get an object factory.

Parameters:
factoryId - The factory's unique identifier.
Threading:
This method is safe for concurrent access by multiple threads.

getStoreObjectFactoryNames

public final Set<String> getStoreObjectFactoryNames(Set<String> factories)
Get the names of the set of registered factories.

Parameters:
factories - The set to add the factory names to.
Returns:
Returns the updated set of factories.
Threading:
This method is safe for concurrent access by multiple threads.

dumpFactoryVersionInfo

public final void dumpFactoryVersionInfo(StringBuilder builder)
Dump the registered factories' version information.

Parameters:
builder - The set to add the factory names to.
Threading:
This method is safe for concurrent access by multiple threads.


Copyright © 2016 Neeve Research, LLC. All Rights Reserved.