public void handleBeforeAnalysisEvent(Object beforeFlow) { if (isInteractThisAnalysis()) { if (autoCon()) { doInteraction(new InteractionEvent(IInteractionConstants.NEW_BEFORE_ANALYSIS_INFO_AUTO, beforeFlow)); } else { doInteraction(new InteractionEvent(IInteractionConstants.NEW_BEFORE_ANALYSIS_INFO, beforeFlow)); } } }
public void handleCallGraphPart(Object info) { doInteraction(new InteractionEvent(IInteractionConstants.CALL_GRAPH_PART, info)); if (!isCgReset()) { handleCallGraphNextMethod(); } else { setCgReset(false); handleReset(); } }
public void handleStopAtNodeEvent(Object u) { if (isInteractThisAnalysis()) { doInteraction(new InteractionEvent(IInteractionConstants.STOP_AT_NODE, u)); } }
public void handleCfgEvent(DirectedGraph<?> g) { if (currentPhaseEnabled()) { logger.debug("Analyzing: " + currentPhaseName()); doInteraction(new InteractionEvent(IInteractionConstants.NEW_ANALYSIS, currentPhaseName())); } if (isInteractThisAnalysis()) { doInteraction(new InteractionEvent(IInteractionConstants.NEW_CFG, g)); } }
public void handleTransformDone(Transform t, Body b) { doneCurrent(true); if (isInteractThisAnalysis()) { doInteraction(new InteractionEvent(IInteractionConstants.DONE, null)); } }
private synchronized void doInteraction(InteractionEvent event) { getInteractionListener().setEvent(event); getInteractionListener().handleEvent(); }
InteractionHandler stop(Object s) { InteractionHandler h = InteractionHandler.v(); List<?> stopList = h.getStopUnitList(); if (stopList != null && stopList.contains(s)) { h.handleStopAtNodeEvent(s); } return h; }
public void handleCallGraphNextMethod() { if (!cgDone()) { getGrapher().setNextMethod(getNextMethod()); getGrapher().handleNextMethod(); } }
public void handleReset() { if (!cgDone()) { getGrapher().reset(); } }
<A, N> void beforeEvent(InteractionHandler i, FlowAnalysis<N, A> a, N s) { A savedFlow = a.filterUnitToBeforeFlow.get(s); if (savedFlow == null) { savedFlow = a.newInitialFlow(); } a.copy(a.unitToBeforeFlow.get(s), savedFlow); i.handleBeforeAnalysisEvent(new FlowInfo<A, N>(savedFlow, s, true)); }
<A, N> void afterEvent(InteractionHandler i, FlowAnalysis<N, A> a, N s) { A savedFlow = a.filterUnitToAfterFlow.get(s); if (savedFlow == null) { savedFlow = a.newInitialFlow(); } a.copy(a.unitToAfterFlow.get(s), savedFlow); i.handleAfterAnalysisEvent(new FlowInfo<A, N>(savedFlow, s, false)); }
/** Constructs a flow analysis on the given <code>DirectedGraph</code>. */ public AbstractFlowAnalysis(DirectedGraph<N> graph) { unitToBeforeFlow = new IdentityHashMap<N, A>(graph.size() * 2 + 1); this.graph = graph; if (Options.v().interactive_mode()) { InteractionHandler.v().handleCfgEvent(graph); } }
@Override public <A, N> void handleFlowOut(FlowAnalysis<N, A> a, N s) { beforeEvent(InteractionHandler.v(), a, s); } };
public soot.toolkits.graph.interaction.InteractionHandler soot_toolkits_graph_interaction_InteractionHandler() { if (instance_soot_toolkits_graph_interaction_InteractionHandler == null) { synchronized (this) { if (instance_soot_toolkits_graph_interaction_InteractionHandler == null) instance_soot_toolkits_graph_interaction_InteractionHandler = new soot.toolkits.graph.interaction.InteractionHandler(g); } } return instance_soot_toolkits_graph_interaction_InteractionHandler; } protected void release_soot_toolkits_graph_interaction_InteractionHandler() {
public InteractionEvent(int type) { type(type); }
public void handleCallGraphStart(Object info, CallGraphGrapher grapher) { setGrapher(grapher); doInteraction(new InteractionEvent(IInteractionConstants.CALL_GRAPH_START, info)); if (!isCgReset()) { handleCallGraphNextMethod(); } else { setCgReset(false); handleReset(); } }
public void handleAfterAnalysisEvent(Object afterFlow) { if (isInteractThisAnalysis()) { if (autoCon()) { doInteraction(new InteractionEvent(IInteractionConstants.NEW_AFTER_ANALYSIS_INFO_AUTO, afterFlow)); } else { doInteraction(new InteractionEvent(IInteractionConstants.NEW_AFTER_ANALYSIS_INFO, afterFlow)); } } }
@Override public <A, N> void handleFlowOut(FlowAnalysis<N, A> a, N s) { afterEvent(InteractionHandler.v(), a, s); } },