public final class MemoryMonitorFactory extends ObjectFactory.Singleton<MemoryMonitor>
MemoryMonitorFactory is used to get the application's
 MemoryMonitor. The MemoryMonitorFactory is
 based upon the ObjectFactory.Singleton generic. The
 MemoryMonitorFactory implementation has a single, default
 MemoryMonitor per JVM instance which can be overridden
 using the provided ThreadLocal variable. Normally, this
 ThreadLocal override should only be used during JUnit testing.
 The JUnit test, set the ThreadLocal variable to the name of its
 own implementation of the MemoryMonitor interface and
 then calls the ObjectFactory getObject method.
 After doing the test, the ThreadLocal variable should
 be cleared.
 
 The ObjectFactory.Singleton permits the use
 of System properties to provide a class name to the
 factory. This can be used to create a MemoryMonitor
 that is not the default one. The property name is the
 MemoryMonitor class name, "mondrian.util.MemoryMonitor".
ObjectFactory.Context, ObjectFactory.Singleton<T>singleInstance, testSingleInstance| Modifier and Type | Method and Description | 
|---|---|
static void | 
clearThreadLocalClassName()
Clears the class name (regardless of whether a class name was set). 
 | 
protected boolean | 
enabled()
Returns whether the use of a  
MemoryMonitor is enabled. | 
protected String | 
getClassName()
Get the class name set in the  
ThreadLocal or null. | 
protected MemoryMonitor | 
getDefault(Class[] parameterTypes,
          Object[] parameterValues)
The  
MemoryMonitorFactory's implementation of the
 ObjectFactory's abstract method which returns
 the default MemoryMonitor instance. | 
static MemoryMonitor | 
getMemoryMonitor()
Access the  
MemoryMonitorFactory instance. | 
protected StringProperty | 
getStringProperty()
Return the  MemoryMonitorFactory
 | 
static void | 
setThreadLocalClassName(String className)
Sets the class name of a   
MemoryMonitor implementation. | 
getObject, getTestObjectgetClassName, getObject, getObject, getObject, getObject, removeContext, restoreContextpublic static MemoryMonitor getMemoryMonitor()
MemoryMonitorFactory instance.MemoryMonitor.public static void setThreadLocalClassName(String className)
MemoryMonitor implementation.
 This should be called (obviously) before calling the
 MemoryMonitorFactory getMemoryMonitor
 method to get the MemoryMonitor implementation.
 Generally, this is only used for testing.className - Class namepublic static void clearThreadLocalClassName()
setThreadLocalClassName,
 the setting whould be done in a try-block and a call to this
 clear method should be in the finally-clause of that try-block.protected boolean enabled()
MemoryMonitor is enabled.true if enabled and false otherwise.protected String getClassName()
ThreadLocal or null.getClassName in class ObjectFactory<MemoryMonitor>protected StringProperty getStringProperty()
MemoryMonitorFactory
getStringProperty in class ObjectFactory<MemoryMonitor>MemoryMonitorFactory property nameprotected MemoryMonitor getDefault(Class[] parameterTypes, Object[] parameterValues) throws CreationException
MemoryMonitorFactory's implementation of the
 ObjectFactory's abstract method which returns
 the default MemoryMonitor instance.
 For Java4 or if the MemoryMonitorFactory is not enabled
 then this method returns the "faux" MemoryMonitor
 implementation, it does nothing. When enabled and for
 Java5 and above JVMs, and instance of the
 NotificationMemoryMonitor is returned.getDefault in class ObjectFactory<MemoryMonitor>parameterTypes - not usedparameterValues - not usedMemoryMonitor instanceCreationException - if the MemoryMonitor can not be
 created.