Package com.unitesk.aspectrace.sampleApp
Class FsmGraphProcessor
- java.lang.Object
-
- com.unitesk.aspectrace.sampleApp.FsmGraphProcessor
-
- All Implemented Interfaces:
AspectListener
,CommonListener
,ErrorListener
,FsmListener
,ContextProvider<HtmlReportPage>
,ReferenceResolver<HtmlReportPage>
,ConfigurableGenerator
- Direct Known Subclasses:
FsmAndImpl
public class FsmGraphProcessor extends java.lang.Object implements FsmListener, ErrorListener, CommonListener, ConfigurableGenerator, ReferenceResolver<HtmlReportPage>, ContextProvider<HtmlReportPage>
Поточный генератор страниц, описывающих обходы сценарных КА. Создаёт и присоединяет к генератору страницы сам, как только обнаруживает начало обхода КА. Обеспечивает расстановку тэгов, разрешение ссылок и контекстные секции.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
FsmGraphProcessor.FsmPage
protected static class
FsmGraphProcessor.Transition
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Set<FsmGraphProcessor.FsmPage>
allPages
static java.lang.String
COMMON_TRANSITION_PREFIX
protected boolean
configDetailedIds
protected boolean
configTrackFailures
protected boolean
configTransitionTags
protected int
curErrIdx
protected java.util.Map<java.lang.String,FsmGraphProcessor.FsmPage>
curPage
PrintWriter for current page.protected ErrorCollector
ec
static java.lang.String
FSM_PREFIX
java.io.File
reportDir
protected ReportGenerator
rg
protected java.util.List<java.lang.Integer>
savedFailures
-
Constructor Summary
Constructors Constructor Description FsmGraphProcessor(ReportGenerator rg, ErrorCollector ec)
Create new graph processor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSectionProvider(ContextProvider<HtmlReportPage> sp)
void
attachedToAdapter(java.lang.String aspect, AspectAdapter adapter)
Notifies the listener about it's connection to adapter.void
configure(java.util.Properties config)
ReportPage[]
getPages()
Этот метод вызывать обычно не надо, потому что все страницы добавляются в генератор немедленно после создания для поточной генерации.HtmlReportPage[]
getRelated(java.lang.String channel, HtmlReportPage target)
Получить контекстную информацию для элемента отчёта, соответствующего текущему (по порядку разбора трассы) событию.void
processBrowserMessage(FsmBrowserMessage msg)
void
processChannelMessage(ChannelMessage msg)
Message which defines a channel.void
processFailure(FailureMessage msg)
void
processFsmEnd(FsmEndMessage msg)
void
processFsmStart(FsmStartMessage msg)
void
processGlobalTagChange(TagMessage msg)
Changes tags and synchronized messages for other aspects.void
processingFinished(java.lang.String traceDesc, boolean normally)
Notifies about processing end of the trace source.void
processingStarted(java.lang.String traceDesc)
Notifies about processing start of the trace source.void
processIterationVariable(IterVarMessage msg)
void
processStateMessage(FsmStateMessage msg)
void
processSummaryMessage(FsmSummaryMessage msg)
void
processTagChange(TagMessage msg)
Changes set of tags for this aspect.void
processTransitionMessage(TransitionMessage msg)
HtmlReportPage
resolve(java.lang.String channel, java.lang.String ref)
Resolve something to FSM traverse page.
-
-
-
Field Detail
-
reportDir
public java.io.File reportDir
-
FSM_PREFIX
public static final java.lang.String FSM_PREFIX
- See Also:
- Constant Field Values
-
COMMON_TRANSITION_PREFIX
public static final java.lang.String COMMON_TRANSITION_PREFIX
- See Also:
- Constant Field Values
-
rg
protected ReportGenerator rg
-
ec
protected ErrorCollector ec
-
savedFailures
protected java.util.List<java.lang.Integer> savedFailures
-
curErrIdx
protected int curErrIdx
-
configTransitionTags
protected boolean configTransitionTags
-
configTrackFailures
protected boolean configTrackFailures
-
configDetailedIds
protected boolean configDetailedIds
-
curPage
protected java.util.Map<java.lang.String,FsmGraphProcessor.FsmPage> curPage
PrintWriter for current page.
-
allPages
protected java.util.Set<FsmGraphProcessor.FsmPage> allPages
-
-
Constructor Detail
-
FsmGraphProcessor
public FsmGraphProcessor(ReportGenerator rg, ErrorCollector ec)
Create new graph processor.- Parameters:
rg
- Report generator for streamable page generationec
- Error collector to generate references to errors in transition (may be null).
-
-
Method Detail
-
configure
public void configure(java.util.Properties config)
- Specified by:
configure
in interfaceConfigurableGenerator
-
getPages
public ReportPage[] getPages()
Этот метод вызывать обычно не надо, потому что все страницы добавляются в генератор немедленно после создания для поточной генерации.- Specified by:
getPages
in interfaceConfigurableGenerator
-
addSectionProvider
public void addSectionProvider(ContextProvider<HtmlReportPage> sp)
-
processFsmStart
public void processFsmStart(FsmStartMessage msg)
- Specified by:
processFsmStart
in interfaceFsmListener
-
processFsmEnd
public void processFsmEnd(FsmEndMessage msg)
- Specified by:
processFsmEnd
in interfaceFsmListener
-
processStateMessage
public void processStateMessage(FsmStateMessage msg)
- Specified by:
processStateMessage
in interfaceFsmListener
-
processTransitionMessage
public void processTransitionMessage(TransitionMessage msg)
- Specified by:
processTransitionMessage
in interfaceFsmListener
-
processIterationVariable
public void processIterationVariable(IterVarMessage msg)
- Specified by:
processIterationVariable
in interfaceFsmListener
-
processSummaryMessage
public void processSummaryMessage(FsmSummaryMessage msg)
- Specified by:
processSummaryMessage
in interfaceFsmListener
-
processBrowserMessage
public void processBrowserMessage(FsmBrowserMessage msg)
- Specified by:
processBrowserMessage
in interfaceFsmListener
-
processFailure
public void processFailure(FailureMessage msg)
- Specified by:
processFailure
in interfaceErrorListener
-
processTagChange
public void processTagChange(TagMessage msg)
Description copied from interface:AspectListener
Changes set of tags for this aspect.- Specified by:
processTagChange
in interfaceAspectListener
-
attachedToAdapter
public void attachedToAdapter(java.lang.String aspect, AspectAdapter adapter)
Description copied from interface:AspectListener
Notifies the listener about it's connection to adapter.- Specified by:
attachedToAdapter
in interfaceAspectListener
- Parameters:
aspect
- Related aspectadapter
- Connected adapter
-
processingStarted
public void processingStarted(java.lang.String traceDesc)
Description copied from interface:CommonListener
Notifies about processing start of the trace source.- Specified by:
processingStarted
in interfaceCommonListener
- Parameters:
traceDesc
- Definition of the trace source (for common files - filename).
-
processingFinished
public void processingFinished(java.lang.String traceDesc, boolean normally)
Description copied from interface:CommonListener
Notifies about processing end of the trace source.- Specified by:
processingFinished
in interfaceCommonListener
- Parameters:
traceDesc
- Definition of the trace source (for common files - filename).normally
-true
if processing ends normally,false
otherwise (IOException, syntax error, etc.)
-
processChannelMessage
public void processChannelMessage(ChannelMessage msg)
Description copied from interface:CommonListener
Message which defines a channel.- Specified by:
processChannelMessage
in interfaceCommonListener
-
processGlobalTagChange
public void processGlobalTagChange(TagMessage msg)
Description copied from interface:CommonListener
Changes tags and synchronized messages for other aspects. Note: an empty aspect must not have its own tags. If it nonetheless has then they are processed viaAspectListener.processTagChange(TagMessage)
method.- Specified by:
processGlobalTagChange
in interfaceCommonListener
-
resolve
public HtmlReportPage resolve(java.lang.String channel, java.lang.String ref)
Resolve something to FSM traverse page. Page will manage anchors by itself (seeFsmGraphProcessor.FsmPage.generateRef(HtmlReportPage, String)
)- Specified by:
resolve
in interfaceReferenceResolver<HtmlReportPage>
- Parameters:
channel
- Привязка к каналу (null
, если канал неважен)ref
- Текстовая ссылка.- Returns:
null
или ссылка.
-
getRelated
public HtmlReportPage[] getRelated(java.lang.String channel, HtmlReportPage target)
Description copied from interface:ContextProvider
Получить контекстную информацию для элемента отчёта, соответствующего текущему (по порядку разбора трассы) событию.- Specified by:
getRelated
in interfaceContextProvider<HtmlReportPage>
target
- Элемент отчёта, для которого запрашивается контекст.- Returns:
- Элементы отчёта, входящие в текущее окружение. Если подходящего контекста нет - возвращается null или пустой массив.
-
-