sandmark.watermark.ct.encode
Class Graph2IR
java.lang.Object
|
+--sandmark.watermark.ct.encode.Graph2IR
- public class Graph2IR
- extends java.lang.Object
This class converts a sandmark.util.graph.Graph into a program
that builds this graph. The program is made up of intermedite
code statements, taken from sandmark.watermark.ct.encode.ir.*.
Call like this:
sandmark.util.graph.Graph graph = ...
sandmark.watermark.ct.encode.Split split = new sandmark.watermark.ct.encode.Split(graph,2);
split.split();
sandmark.watermark.ct.encode.storage.GlobalStorage storage = ...
sandmark.watermark.ct.encode.ir.Build B =
sandmark.watermark.ct.encode.Graph2IR(graph,
split.subGraphs,
split.componentGraph,
storage);
Each subgraph is turned into a Java method that when run, will
build that subgraph. A set of fixup methods are also created
which should be run to connect the subgraphs in order to
create the complete graph.
Nested Class Summary |
(package private) static class |
Graph2IR.Path
|
Method Summary |
static List |
addLinks(Graph graph,
Graph subGraph,
Node node,
int[] edgeClass)
|
static Graph2IR.Path |
findPath(Graph graph,
Node root,
Node node)
|
static Graph2IR.Path |
findPath(Graph graph,
Node root,
Node node,
Graph2IR.Path currentPath)
|
static Build |
gen(Graph graph,
Graph[] subGraphs,
Graph componentGraph,
GlobalStorage storage)
|
static List |
genCreator_addBackwardLinks(Graph graph,
Graph subGraph)
|
static List |
genCreator_addForwardLinks(Graph graph,
Graph subGraph)
|
static Method |
genCreator(Graph graph,
Graph subGraph,
boolean isCreator)
|
static List |
genCreators(Graph graph,
Graph[] components,
boolean isCreator)
|
static IR |
genFixup(Graph graph,
Graph subGraph1,
Graph subGraph2,
java.util.HashSet edges)
|
static List |
genFixups(Graph graph,
Graph[] subGraphs)
|
static List |
graph2links(Graph graph,
Graph subGraph,
Graph2IR.Path path)
|
static void |
main(java.lang.String[] args)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Graph2IR
public Graph2IR()
gen
public static Build gen(Graph graph,
Graph[] subGraphs,
Graph componentGraph,
GlobalStorage storage)
addLinks
public static List addLinks(Graph graph,
Graph subGraph,
Node node,
int[] edgeClass)
findPath
public static Graph2IR.Path findPath(Graph graph,
Node root,
Node node,
Graph2IR.Path currentPath)
findPath
public static Graph2IR.Path findPath(Graph graph,
Node root,
Node node)
genCreator_addForwardLinks
public static List genCreator_addForwardLinks(Graph graph,
Graph subGraph)
genCreator_addBackwardLinks
public static List genCreator_addBackwardLinks(Graph graph,
Graph subGraph)
genCreator
public static Method genCreator(Graph graph,
Graph subGraph,
boolean isCreator)
genCreators
public static List genCreators(Graph graph,
Graph[] components,
boolean isCreator)
graph2links
public static List graph2links(Graph graph,
Graph subGraph,
Graph2IR.Path path)
genFixup
public static IR genFixup(Graph graph,
Graph subGraph1,
Graph subGraph2,
java.util.HashSet edges)
genFixups
public static List genFixups(Graph graph,
Graph[] subGraphs)
main
public static void main(java.lang.String[] args)