tip.cfg
Class ExitPoint

java.lang.Object
  extended by tip.cfg.AProgramPoint
      extended by tip.cfg.ExitPoint
All Implemented Interfaces:
IProgramPoint

public class ExitPoint
extends AProgramPoint

ExitPoint represents the exit point of a control flow graph.

Author:
Johnni Winther, jw@brics.dk

Constructor Summary
ExitPoint()
          Creates a new exit point with no associated node.
ExitPoint(Node _node_)
          Creates a new exit point associated with _node_.
 
Method Summary
<A> A
apply(CFGAnswer<A> caller)
          Returns an answer by calling CFGAnswer.caseExitPoint(Node,ExitPoint) the visitor caller with this exit point.
<Q,A> A
apply(CFGQuestionAnswer<Q,A> caller, Q question)
          Returns an answer by calling CFGQuestionAnswer.caseExitPoint(Node,ExitPoint,Object) the visitor caller with this exit point.
 boolean apply(ICFGAnalysis analysis)
          Calls ICFGAnalysis.caseExitPoint(Node,ExitPoint) on analysis and returns the result.
 ExitPoint clone()
          Returns a clone of the exit point with no predecessors or successors.
 String getNodeText(Answer<String> nodeText)
          Returns a textual representation of the exit point, which is "{exit}".
 String toString()
          Returns a textual representation of this ExitPoint.
 
Methods inherited from class tip.cfg.AProgramPoint
addPredecessor, addSuccessor, getNode, getPredecessors, getSuccessors, getVicinity, removePredecessor, removeSuccessor
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ExitPoint

public ExitPoint()
Creates a new exit point with no associated node.


ExitPoint

public ExitPoint(Node _node_)
Creates a new exit point associated with _node_.

Parameters:
_node_ - the Node associated with this exit point
Method Detail

apply

public boolean apply(ICFGAnalysis analysis)
Calls ICFGAnalysis.caseExitPoint(Node,ExitPoint) on analysis and returns the result.

Returns:
the result of calling ICFGAnalysis.caseExitPoint(Node,ExitPoint) on analysis

getNodeText

public String getNodeText(Answer<String> nodeText)
Returns a textual representation of the exit point, which is "{exit}".

Parameters:
nodeText - the Answer used
Returns:
a textual representation of the exit point

apply

public <A> A apply(CFGAnswer<A> caller)
Returns an answer by calling CFGAnswer.caseExitPoint(Node,ExitPoint) the visitor caller with this exit point.

Parameters:
caller - the Answer used
Returns:
the answer as returned from caller

apply

public <Q,A> A apply(CFGQuestionAnswer<Q,A> caller,
                     Q question)
Returns an answer by calling CFGQuestionAnswer.caseExitPoint(Node,ExitPoint,Object) the visitor caller with this exit point.

Parameters:
caller - the QuestionAnswer used
question - the question used
Returns:
the answer as returned from caller on question

clone

public ExitPoint clone()
Returns a clone of the exit point with no predecessors or successors.

Specified by:
clone in interface IProgramPoint
Specified by:
clone in class AProgramPoint
Returns:
a clone of the exit point with no predecessors or successors

toString

public String toString()
Returns a textual representation of this ExitPoint.

Overrides:
toString in class Object
Returns:
a textual representation of this ExitPoint