UMinho Haskell Libraries (1.0)ContentsIndex
Language.Java.CallGraph
Portability portable
Stability experimental
Maintainer patrickmachado@gmail.com
Contents
Representation
API
Helpers for dot generation
Description
Synopsis
type CallGraph = LRel CGNode CGNode CGEdgeType
data CGNode
= CGClass ClassName
| CGMethod ClassName MethodName [ParameterType]
type CGEdgeType = String
emptyCG :: CallGraph
appendCG :: CallGraph -> CallGraph -> CallGraph
addEdgeToCG :: CGNode -> CGNode -> CGEdgeType -> CallGraph -> CallGraph
addCallEdge :: CGNode -> CGNode -> CallGraph -> CallGraph
addNestEdge :: CGNode -> CGNode -> CallGraph -> CallGraph
doit :: IO ()
java2ccg :: (Term a, MonadPlus m) => CGNode -> Declarations -> a -> m CallGraph
args2str :: [Maybe TypeName] -> [TypeName]
projectCG :: Rel CGNode CGNode -> CallGraph -> CallGraph
cg2dot :: String -> CallGraph -> String
lrel2dot :: String -> (((CGNode, CGNode), CGEdgeType) -> DotStatement) -> CallGraph -> String
printEdge :: ((CGNode, CGNode), CGEdgeType) -> DotStatement
printNode :: CGNode -> DotStatement
edge2str :: (CGNode, CGNode) -> (ClassName, ClassName)
cgnode2str :: CGNode -> ClassName
isInvalid :: CGNode -> Bool
Representation
type CallGraph = LRel CGNode CGNode CGEdgeType
The type of conditional call graphs.
data CGNode
The type of call graph nodes.
Constructors
CGClass ClassName
CGMethod ClassName MethodName [ParameterType]
Instances
Eq CGNode
Ord CGNode
Show CGNode
Read CGNode
type CGEdgeType = String
The type of edges types in call graphs.
emptyCG :: CallGraph
Empty call graph.
appendCG :: CallGraph -> CallGraph -> CallGraph
Append two call graphs to form a new one.
addEdgeToCG :: CGNode -> CGNode -> CGEdgeType -> CallGraph -> CallGraph
Add an edge of given type to a call graph.
addCallEdge :: CGNode -> CGNode -> CallGraph -> CallGraph
Add a call edge to a call graph.
addNestEdge :: CGNode -> CGNode -> CallGraph -> CallGraph
Add a nesting edge to a call graph.
doit :: IO ()
API
java2ccg :: (Term a, MonadPlus m) => CGNode -> Declarations -> a -> m CallGraph
Main conversion function
args2str :: [Maybe TypeName] -> [TypeName]
projectCG :: Rel CGNode CGNode -> CallGraph -> CallGraph
Given a relation, compute the sub graph of a package graph that holds only edges that occur in the relation.
Helpers for dot generation
cg2dot :: String -> CallGraph -> String
Print a call graph to dot file content.
lrel2dot
:: StringGraph name
-> (((CGNode, CGNode), CGEdgeType) -> DotStatement)Function that prints edges
-> CallGraphCall graph
-> StringDot file content
Print a call graph to dot file content.
printEdge :: ((CGNode, CGNode), CGEdgeType) -> DotStatement
Print edge as dot statement
printNode :: CGNode -> DotStatement
Print node as a dot statement.
edge2str :: (CGNode, CGNode) -> (ClassName, ClassName)
Create tuple of string representations for edge.
cgnode2str :: CGNode -> ClassName
Create string representation of node.
isInvalid :: CGNode -> Bool
Test whether the node has any unresolved parts.
Produced by Haddock version 0.6