SandMark version 3.0


sandmark.util.opaquepredicatelib
Class RuntimeStrOPLib

java.lang.Object
  |
  +--sandmark.util.opaquepredicatelib.Predicatelib
        |
        +--sandmark.util.opaquepredicatelib.RuntimeStrOPLib

public class RuntimeStrOPLib
extends Predicatelib

RuntimeStrOPLib creates run time deterministic predicates at the requested byte code position of a node within the CFG of a method.

Author:
Ashok Purushotham Ramasamy Venkatraj (ashok@cs.arizona.edu)

Field Summary
 
Fields inherited from class sandmark.util.opaquepredicatelib.Predicatelib
cfc, insertPositionIndex, opaqueType, targetMethodGen
 
Constructor Summary
RuntimeStrOPLib(ClassFileCollection cfc, de.fub.bytecode.generic.MethodGen methodgen)
          Constructor
 
Method Summary
 void applyOpaquePredicate(int sp, int ep, de.fub.bytecode.generic.ConstantPoolGen cpg1, java.util.ArrayList al)
          The main function that insert the opaque predicate at the specific bytecode index
 de.fub.bytecode.generic.MethodGen getMethodGen()
           
 boolean satisfyMethodConstraint()
          This method can be something which analyzes the method to check whether its feasible to construct the particular predicate; for example we can consider constraints such as a lower threshold to method size, number of local variables existing in the method, etc etc
 
Methods inherited from class sandmark.util.opaquepredicatelib.Predicatelib
getOpaqueType, setStartPosition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RuntimeStrOPLib

public RuntimeStrOPLib(ClassFileCollection cfc,
                       de.fub.bytecode.generic.MethodGen methodgen)
Constructor

Method Detail

satisfyMethodConstraint

public boolean satisfyMethodConstraint()
This method can be something which analyzes the method to check whether its feasible to construct the particular predicate; for example we can consider constraints such as a lower threshold to method size, number of local variables existing in the method, etc etc

Specified by:
satisfyMethodConstraint in class Predicatelib

applyOpaquePredicate

public void applyOpaquePredicate(int sp,
                                 int ep,
                                 de.fub.bytecode.generic.ConstantPoolGen cpg1,
                                 java.util.ArrayList al)
The main function that insert the opaque predicate at the specific bytecode index

Parameters:
sp - The insert position index (start of a basic block)
ep - The end byte code position of the basic block
cpg1 - ConstantPoolGen
al - The InstructionList of the BasicBlock

getMethodGen

public de.fub.bytecode.generic.MethodGen getMethodGen()

SandMark version 3.0

Wed Jan 29 10:30:05 MST 2003