Package mondrian.util

Class ObjectFactory.Singleton<T>

java.lang.Object
mondrian.util.ObjectFactory<T>
mondrian.util.ObjectFactory.Singleton<T>
Direct Known Subclasses:
MemoryMonitorFactory, RolapMemberBase.PropertyValueMapFactoryFactory
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.
  • Field Details

    • 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 Details

    • Singleton

      protected 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 Details

    • 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>
      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
      Throws:
      CreationException - if unable to create the object
    • getTestObject

      protected T getTestObject(String className, Class[] parameterTypes, Object[] parameterValues) throws CreationException
      Create an instance for test purposes.
      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
      Throws:
      CreationException - if unable to create the object