Package com.unitesk.aspectrace
Class TraceProcessorManager
- java.lang.Object
-
- com.unitesk.aspectrace.TraceProcessorManager
-
public class TraceProcessorManager extends java.lang.Object
Trace process manager. Controls adapters, sources and trace handlers.Two main use scenarios:
1. PULL. For example, reading from already prepared XML-file using WSTX library which represents pull-interface:
TraceProcessorManager tpm = new TraceProcessorManager(); tpm.addProvider(pull_provider);// 1..* of providers tpm.addListener(...); // 1..* of listeners tpm.process();
2. PUSH. For example, converting data from a push-source:
TraceProcessorManager tpm = new TraceProcessorManager(); tpm.addProvider(push_provider);// 1..* provider tpm.addListener(...); // 1..* listeners push_provider.attachToManager(tpm); <Processing messages from a push force;
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.lang.String,AspectAdapter>
activeAdapters
aspect name +> adapter
.protected java.util.Map<java.lang.String,java.lang.String>
adapterClazz
aspect name +> adapter class name
.protected java.util.List<TraceProvider>
providers
-
Constructor Summary
Constructors Constructor Description TraceProcessorManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(java.lang.String aspect, AspectListener listener)
Adds a listener.void
addProvider(TraceProvider provider)
Adds a trace source.void
addTrace(java.io.File trace)
Adds a trace source from a XML-file.protected void
attachAdapters(TraceProvider provider)
Attaches adapters and handlers to a provider.AspectAdapter
getAdapter(java.lang.String aspect)
Gets an aspect adapter.void
process()
Begins handling in case if of working with active trace providers which work in the model PULL.void
removeListener(java.lang.String aspect, AspectListener listener)
Removes a listener.static void
setAdapterClass(java.lang.String aspect, java.lang.String clazzName)
Sets an adapter class for future trace managers.void
setLocalAdapterClass(java.lang.String aspect, java.lang.String clazzName)
Sets an aspect adapter class for this trace manager.
-
-
-
Field Detail
-
providers
protected java.util.List<TraceProvider> providers
-
adapterClazz
protected java.util.Map<java.lang.String,java.lang.String> adapterClazz
aspect name +> adapter class name
.
-
activeAdapters
protected java.util.Map<java.lang.String,AspectAdapter> activeAdapters
aspect name +> adapter
.
-
-
Method Detail
-
addProvider
public void addProvider(TraceProvider provider)
Adds a trace source.
-
addTrace
public void addTrace(java.io.File trace)
Adds a trace source from a XML-file.
-
setAdapterClass
public static void setAdapterClass(java.lang.String aspect, java.lang.String clazzName)
Sets an adapter class for future trace managers.- Parameters:
aspect
- Aspect name.clazzName
- Adapter class name.
-
setLocalAdapterClass
public void setLocalAdapterClass(java.lang.String aspect, java.lang.String clazzName)
Sets an aspect adapter class for this trace manager.- Parameters:
aspect
- Aspect name.clazzName
- Class adapter name.
-
addListener
public final void addListener(java.lang.String aspect, AspectListener listener) throws java.lang.Exception
Adds a listener.- Throws:
java.lang.Exception
- see documentation forgetAdapter(String)
and forAspectAdapter.addListener(AspectListener)
.
-
getAdapter
public final AspectAdapter getAdapter(java.lang.String aspect) throws java.lang.Exception
Gets an aspect adapter. Adapter is created and is connected to handling.- Throws:
java.lang.IllegalArgumentException
- Unknown aspect or illegal adapter class.java.lang.ClassCastException
- Illegal adapter class.java.lang.IllegalStateException
- Can't change the configuration.java.lang.Exception
- Create adapter instance error (see exceptions generated by Java Reflection API)
-
removeListener
public final void removeListener(java.lang.String aspect, AspectListener listener) throws java.lang.IllegalStateException
Removes a listener.- Throws:
java.lang.IllegalStateException
- Can't change the configuration.
-
process
public void process() throws java.io.IOException, java.lang.IllegalStateException, java.lang.IllegalArgumentException
Begins handling in case if of working with active trace providers which work in the model PULL. Method going through all providers one by one connecting adapters and callingprocess()
.If provider works in the model PUSH then this method is never called.
- Throws:
java.io.IOException
- Input-Output error.java.lang.IllegalStateException
- Handling has already begun.java.lang.IllegalArgumentException
- Trace error.
-
attachAdapters
protected void attachAdapters(TraceProvider provider) throws java.lang.IllegalStateException, java.lang.IllegalArgumentException
Attaches adapters and handlers to a provider. This method is called fromprocess()
in case of the model PULL or fromTraceProvider.attachToManager(TraceProcessorManager)
in case of the model PUSH.- Throws:
java.lang.IllegalStateException
- Handling has already begun.java.lang.IllegalArgumentException
- Provider is not connected to this trace manager.
-
-