edu.mit.csail.sdg.squander.engine.ForgeConverter Class Reference
[Engine]

Collaboration diagram for edu.mit.csail.sdg.squander.engine.ForgeConverter:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ForgeConverter (SquanderReporter reporter, Object...heapRootObjects)
void setCallContext (Object caller, JMethod m, Object[] methodArgs)
void boundSpecFields (IEvaluator eval)
JavaScene javaScene ()
ForgeScene forgeScene ()
Heap2Bounds heap2Lit ()
ForgeBounds forgeBounds ()
String printBounds ()
ForgeProcedure proc ()
Spec getSpec ()
SolveOptions forgeOptions ()
Iterable< Integer > allInts ()
List< InstanceLiteral > findInstLiteralsForType (ForgeType.Unary colType)
List< ForgeLiteral > findLiteralsForType (ForgeType.Unary colType)
ObjTupleSet extent (ForgeType t)
Object atom2obj (ForgeAtom atom)
Object lit2obj (ForgeLiteral lit)
int minInt ()
int maxInt ()
ForgeConstant conv2fc (ObjTupleSet objTupleSet, ForgeBounds bounds)
ForgeAtom obj2atom (Object obj, ForgeBounds bounds)

Static Public Member Functions

static Object mapToBoolean (final ForgeAtom atom)
static int mapToInt (final ForgeAtom atom)

Private Member Functions

void finish ()
void createFreshObjects (MethodSpec ms)
int getMaxAtomsForType (ForgeType ft)
int maxSize (ForgeDomain d)
String printObjSet (ObjTupleSet objSet)
void initJavaScene ()
void boundOtherStuff ()
ForgeBounds makeForgeBounds (Heap2Bounds heap2lit)
String printUniverseStats ()

Private Attributes

final SquanderReporter reporter
final Heap heap
final JavaScene javaScene
ForgeScene forgeScene
Heap2Bounds heap2lit
ForgeBounds forgeBounds
boolean finished = false
Map< Object, JType.Unary[]> obj2typeparams = new IdentityHashMap<Object, Unary[]>()
Map< ForgeType, Integer > maxAtomsCache = new HashMap<ForgeType, Integer>()
Set< Integer > allInts = null
Map< ForgeType.Unary, List
< InstanceLiteral > > 
instLitsCache = new HashMap<ForgeType.Unary, List<InstanceLiteral>>()
Map< ForgeType.Unary, List
< ForgeLiteral > > 
litsCache = new HashMap<ForgeType.Unary, List<ForgeLiteral>>()

Detailed Description

This class handles conversion of the heap (heap) and specs (embodied inside javaScene) to Forge domains, literals, and bounds (embodied inside forgeScene).

Author:
Aleksandar Milicevic

Definition at line 74 of file ForgeConverter.java.


Constructor & Destructor Documentation

edu.mit.csail.sdg.squander.engine.ForgeConverter.ForgeConverter ( SquanderReporter  reporter,
Object...  heapRootObjects 
)
Parameters:
heapRootObjects heap root objects

Definition at line 89 of file ForgeConverter.java.

References edu.mit.csail.sdg.squander.engine.ForgeConverter.heap, and edu.mit.csail.sdg.squander.engine.ForgeConverter.javaScene().


Member Function Documentation

Object edu.mit.csail.sdg.squander.engine.ForgeConverter.atom2obj ( ForgeAtom  atom  ) 
void edu.mit.csail.sdg.squander.engine.ForgeConverter.boundOtherStuff (  )  [private]
void edu.mit.csail.sdg.squander.engine.ForgeConverter.boundSpecFields ( IEvaluator  eval  ) 
ForgeConstant edu.mit.csail.sdg.squander.engine.ForgeConverter.conv2fc ( ObjTupleSet  objTupleSet,
ForgeBounds  bounds 
)
void edu.mit.csail.sdg.squander.engine.ForgeConverter.createFreshObjects ( MethodSpec  ms  )  [private]
ObjTupleSet edu.mit.csail.sdg.squander.engine.ForgeConverter.extent ( ForgeType  t  ) 
List<InstanceLiteral> edu.mit.csail.sdg.squander.engine.ForgeConverter.findInstLiteralsForType ( ForgeType.Unary  colType  ) 
List<ForgeLiteral> edu.mit.csail.sdg.squander.engine.ForgeConverter.findLiteralsForType ( ForgeType.Unary  colType  ) 

Returns all Forge literals of the given unary Forge type

Definition at line 338 of file ForgeConverter.java.

References edu.mit.csail.sdg.squander.engine.ForgeConverter.allInts(), edu.mit.csail.sdg.squander.engine.ForgeConverter.findInstLiteralsForType(), edu.mit.csail.sdg.squander.engine.ForgeConverter.finished, edu.mit.csail.sdg.squander.engine.ForgeConverter.forgeScene(), edu.mit.csail.sdg.squander.engine.ForgeConverter.litsCache, and edu.mit.csail.sdg.squander.spec.ForgeScene.program.

Referenced by edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodPartImpl.createBounds(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodPart2Impl.createBounds(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodImpl.createBounds(), edu.mit.csail.sdg.squander.engine.ForgeConverter.extent(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkod2Impl.getExtent(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodPart2Impl.getPostLower(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodImpl.getPostLower(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodPartImpl.nextAtomForLiteral(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodPartImpl.partitionDomains(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodPartImpl.processFirst(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodPartImpl.processNext(), edu.mit.csail.sdg.squander.engine.SquanderResult.restoreEmpty(), edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodPartImpl.sort(), and edu.mit.csail.sdg.squander.engine.kk.SquanderKodkodImpl.Tr2KK.visit().

void edu.mit.csail.sdg.squander.engine.ForgeConverter.finish (  )  [private]

Definition at line 140 of file ForgeConverter.java.

References edu.mit.csail.sdg.squander.engine.ForgeConverter.boundOtherStuff(), edu.mit.csail.sdg.squander.spec.ForgeScene.createLiteral(), edu.mit.csail.sdg.squander.spec.ForgeScene.createLocalsForMethod(), edu.mit.csail.sdg.squander.engine.SquanderReporter.end(), edu.mit.csail.sdg.squander.engine.Heap2Bounds.ensureAdequateIntBitWidth(), edu.mit.csail.sdg.squander.annotations.Options.ensureAllInts(), edu.mit.csail.sdg.squander.spec.ForgeScene.ensureAllInts, edu.mit.csail.sdg.squander.spec.ForgeScene.ensureInt(), edu.mit.csail.sdg.squander.engine.ForgeConverter.finished, edu.mit.csail.sdg.squander.engine.ForgeConverter.forgeScene(), edu.mit.csail.sdg.squander.engine.Heap.getHeapObjects(), edu.mit.csail.sdg.squander.engine.ForgeConverter.getMaxAtomsForType(), edu.mit.csail.sdg.squander.engine.ForgeConverter.heap, edu.mit.csail.sdg.squander.engine.ForgeConverter.heap2lit, edu.mit.csail.sdg.squander.engine.ForgeConverter.javaScene(), edu.mit.csail.sdg.squander.spec.JavaScene.method, edu.mit.csail.sdg.squander.spec.JavaScene.methodSpec(), edu.mit.csail.sdg.squander.spec.ForgeScene.numTypes, edu.mit.csail.sdg.squander.engine.ForgeConverter.obj2typeparams, edu.mit.csail.sdg.squander.spec.MethodSpec.options, edu.mit.csail.sdg.squander.engine.ForgeConverter.printUniverseStats(), edu.mit.csail.sdg.squander.engine.Heap2Bounds.reachableObjects(), edu.mit.csail.sdg.squander.engine.ForgeConverter.reporter, edu.mit.csail.sdg.squander.spec.JavaScene.translateSpecs(), edu.mit.csail.sdg.squander.engine.SquanderReporter.translatingSpecs(), edu.mit.csail.sdg.squander.engine.Heap2Bounds.traverse(), and edu.mit.csail.sdg.squander.engine.SquanderReporter.traversingHeap().

Referenced by edu.mit.csail.sdg.squander.engine.ForgeConverter.setCallContext().

SolveOptions edu.mit.csail.sdg.squander.engine.ForgeConverter.forgeOptions (  ) 
int edu.mit.csail.sdg.squander.engine.ForgeConverter.getMaxAtomsForType ( ForgeType  ft  )  [private]
Spec edu.mit.csail.sdg.squander.engine.ForgeConverter.getSpec (  ) 
Heap2Bounds edu.mit.csail.sdg.squander.engine.ForgeConverter.heap2Lit (  ) 
void edu.mit.csail.sdg.squander.engine.ForgeConverter.initJavaScene (  )  [private]
Object edu.mit.csail.sdg.squander.engine.ForgeConverter.lit2obj ( ForgeLiteral  lit  ) 
ForgeBounds edu.mit.csail.sdg.squander.engine.ForgeConverter.makeForgeBounds ( Heap2Bounds  heap2lit  )  [private]
static Object edu.mit.csail.sdg.squander.engine.ForgeConverter.mapToBoolean ( final ForgeAtom  atom  )  [static]
static int edu.mit.csail.sdg.squander.engine.ForgeConverter.mapToInt ( final ForgeAtom  atom  )  [static]
int edu.mit.csail.sdg.squander.engine.ForgeConverter.maxInt (  ) 
int edu.mit.csail.sdg.squander.engine.ForgeConverter.maxSize ( ForgeDomain  d  )  [private]
int edu.mit.csail.sdg.squander.engine.ForgeConverter.minInt (  ) 
ForgeAtom edu.mit.csail.sdg.squander.engine.ForgeConverter.obj2atom ( Object  obj,
ForgeBounds  bounds 
)
String edu.mit.csail.sdg.squander.engine.ForgeConverter.printBounds (  ) 
String edu.mit.csail.sdg.squander.engine.ForgeConverter.printObjSet ( ObjTupleSet  objSet  )  [private]
String edu.mit.csail.sdg.squander.engine.ForgeConverter.printUniverseStats (  )  [private]
ForgeProcedure edu.mit.csail.sdg.squander.engine.ForgeConverter.proc (  ) 
void edu.mit.csail.sdg.squander.engine.ForgeConverter.setCallContext ( Object  caller,
JMethod  m,
Object[]  methodArgs 
)

Member Data Documentation

Definition at line 301 of file ForgeConverter.java.

Map<ForgeType.Unary, List<InstanceLiteral> > edu.mit.csail.sdg.squander.engine.ForgeConverter.instLitsCache = new HashMap<ForgeType.Unary, List<InstanceLiteral>>() [private]
Map<ForgeType.Unary, List<ForgeLiteral> > edu.mit.csail.sdg.squander.engine.ForgeConverter.litsCache = new HashMap<ForgeType.Unary, List<ForgeLiteral>>() [private]
Map<ForgeType, Integer> edu.mit.csail.sdg.squander.engine.ForgeConverter.maxAtomsCache = new HashMap<ForgeType, Integer>() [private]
Map<Object, JType.Unary[]> edu.mit.csail.sdg.squander.engine.ForgeConverter.obj2typeparams = new IdentityHashMap<Object, Unary[]>() [private]

The documentation for this class was generated from the following file:
Generated by  doxygen 1.6.2-20100208