mondrian.util
Class ObjectFactory.Singleton<T>

java.lang.Object
  extended by mondrian.util.ObjectFactory<T>
      extended by mondrian.util.ObjectFactory.Singleton<T>
Direct Known Subclasses:
MemoryMonitorFactory
Enclosing class:
ObjectFactory<V>

public abstract static class ObjectFactory.Singleton<T>
extends ObjectFactory<T>

Implementation of ObjectFactory that returns only a single instance of the Object.

 

Nested Class Summary
 
Nested classes/interfaces inherited from class mondrian.util.ObjectFactory
ObjectFactory.Context, ObjectFactory.Singleton<T>
 
Field Summary
protected  T singleInstance
          The single instance of the object created by the factory.
protected  T testSingleInstance
          The test single instance of the object created by the factory.
 
Constructor Summary
protected ObjectFactory.Singleton(Class<T> interfaceClass)
          Creates a new singleton factory object.
 
Method Summary
protected  T getObject(Properties props, Class[] parameterTypes, Object[] parameterValues)
          Returns the singleton Object.
protected  T getTestObject(String className, Class[] parameterTypes, Object[] parameterValues)
          Create an instance for test purposes.
 
Methods inherited from class mondrian.util.ObjectFactory
defaultCreationException, getClassName, getClassName, getDefault, getObject, getObject, getObject, getObject, getStringProperty, removeContext, restoreContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

singleInstance

protected T singleInstance
The single instance of the object created by the factory.


testSingleInstance

protected T testSingleInstance
The test single instance of the object created by the factory. Creating this testSingleInstance does not change the current value of the singleInstance variable.

Constructor Detail

ObjectFactory.Singleton

protected ObjectFactory.Singleton(Class<T> interfaceClass)
Creates a new singleton factory object. The interfaceClass parameter is used to cast the object generated to type right type.

Parameters:
interfaceClass - the class object for the interface implemented by the objects returned by this factory
Method Detail

getObject

protected T getObject(Properties props,
                      Class[] parameterTypes,
                      Object[] parameterValues)
               throws CreationException
Returns the singleton Object. The first time this is called, an object is created where the parameterTypes and parameterValues are constructor parameters and Properties parameter is used to look up a class name.

This returns a same instance of the Object each time its called except if the getClassName method returns a non-null class name which should only happen as needed for unit testing.

Overrides:
getObject in class ObjectFactory<T>
Throws:
CreationException - if unable to create the object
Parameters:
props - the property definitions to use to determine the
parameterTypes - the class parameters that define the signature of the constructor to use
parameterValues - the values to use to construct the current instance of the object
Returns:
the newly created object

getTestObject

protected T getTestObject(String className,
                          Class[] parameterTypes,
                          Object[] parameterValues)
                   throws CreationException
Create an instance for test purposes.

Throws:
CreationException - if unable to create the object
Parameters:
className - the class name used to create Object instance
parameterTypes - the class parameters that define the signature of the constructor to use
parameterValues - the values to use to construct the current instance of the object
Returns:
the newly created object

SourceForge.net_Logo