Package mondrian.util

Class ObjectFactory.Singleton<T>

    • 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

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