com.ibm.dtfj.analyzer.ext
Interface IAnalyzerBase

All Known Implementing Classes:
AllBytecodeMethods, AllCompiledMethods, AllEnvVars, AllImageThreads, AllJavaClassLoaders, AllJavaHeaps, AllJavaMonitors, AllJavaThreads, AllJVMInitArgs, AllJVMInitArgs, AllJVMInitArgs, AllLibraries, AllMemorySections, AnalyzerBase, ArrayListWrapper, ArrayListWrapper, ArrayWrapper, CharArrayWrapper, ClassFinder, ClassInstanceCounter, CollectionAnalyzerBase, CollectionWrapperBase, DateWrapper, HashMapWrapper, HashMapWrapper, HashSetWrapper, HashSetWrapper, HashtableWrapper, LinkedListWrapper, LinkedListWrapper, ListClassDefinitions, ListObjectInstances, ListObjectInstancesWithSubClasses, LongTimestampWrapper, LookupObjectByAddress, MapEntryWrapperBase, MapWrapperBase, ObjectFinder, ObjectNavigator, ObjectNavigatorCollection, ObjectWrapper, ObjectWrapperCollection, OneContextHeader, OneImage, OneImage, OneImage, OneImageModule, OneImageProcess, OneImageSection, OneImageSection, OneImageStackFrame, OneImageThread, OneJavaClass, OneJavaClassLoader, OneJavaHeap, OneJavaMethod, OneJavaMonitor, OneJavaMonitor, OneJavaMonitor, OneJavaObject, OneJavaObject, OneJavaRuntime, OneJavaStackFrame, OneJavaThread, PropertiesWrapper, PropertiesWrapper, SectionsTableBase, SimpleAnalyzerBean, StringWrapper, SynchronizedMapWrapper, SynchronizedSetWrapper, ThreadLocalWrapper, TreeMapWrapper, TreeSetWrapper, TreeSetWrapper, ValueWrapper, VectorWrapper

public interface IAnalyzerBase

Define the primary interface to an analyser which will do analysis on a DTFJ Image. Typical analysers will implement one or more of IAnalyzer and IReport in addition to this base interface. For convenience we will also implement some helper base classes that implement a typical combination of interfaces.


Method Summary
 int getCachingPriority()
          Return an indication of how desirable it is for the AnalyzerContext to cache instances of this analyzer, so that multiple calls to loadAnalyzer() will return the cached instance instead of allocating and initializing a new one each time.
 java.lang.String[] getCategories()
           
 IAnalyzerContext getContext()
           
 java.lang.String getLongDescription()
          Produce a long description of the function of this analyser.
 java.lang.String getName()
           
 java.lang.String getShortDescription()
          Return a short description of the analyzer purpose.
 java.lang.String getVersion()
          Get version information for this analyser.
 boolean isPrimaryAnalyzer()
          Some Analyzers are designed to perform analysis tasks and others are designed to perform supporting tasks such as wrapping a DTFJ object and providing extra information.
 void setContext(IAnalyzerContext a)
          Define the context associated with this analyzer instance.
 

Method Detail

setContext

void setContext(IAnalyzerContext a)
Define the context associated with this analyzer instance. This is invoked by the framework after the analyser is created and will thus never be null when the analyser is invoked.

Parameters:
a - - the context to be associated with this analyser

getContext

IAnalyzerContext getContext()
Returns:
- the context associated with this analyser instance

getName

java.lang.String getName()
Returns:
- the unique name associated with this type of analyser

getCategories

java.lang.String[] getCategories()
Returns:
- the set of categories the analyzer associated with. Categories can have tree type hierarchy with '.' used as a path separator. This method should never return null - "no category" should be indicated by an empty array or an empty string.

getVersion

java.lang.String getVersion()
Get version information for this analyser.

Returns:
- a String containing the version information

getShortDescription

java.lang.String getShortDescription()
Return a short description of the analyzer purpose. This will be printed prior to running the analyser.

Returns:
- the short description

getLongDescription

java.lang.String getLongDescription()
Produce a long description of the function of this analyser. The long description may use multiple lines, and should be suitable for using in a help message associated with this analyser. The description should include information about the report options and types of rules accepted by this bean, if any.

Returns:
- a String containing the long description.

getCachingPriority

int getCachingPriority()
Return an indication of how desirable it is for the AnalyzerContext to cache instances of this analyzer, so that multiple calls to loadAnalyzer() will return the cached instance instead of allocating and initializing a new one each time. The caching priority is represented as a number between 0 and 10, where 0 means never cache instances of this analyzer, 10 means always cache all instances, and any number in-between indicates that we should try to cache it as long as there is enough memory available and that we give precedence to higher-priority analyzers when memory is scarce.

Returns:
the caching priority, as a number between 0 and 10

isPrimaryAnalyzer

boolean isPrimaryAnalyzer()
Some Analyzers are designed to perform analysis tasks and others are designed to perform supporting tasks such as wrapping a DTFJ object and providing extra information. At the end of an analysis run we would like to summarise the analyzers which have been run but we also want to avoid having a huge list. Hence we only choose to list analyzers which are designated 'primary' and typically are doing some specific analysis rather that providing a service to other analyzers.

Returns:
true if this is a primary analyzer, false otherwise


© Copyright IBM Corp. 2007, 2008 All Rights Reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.