SandMark version 3.0


sandmark.util.opaquepredicatelib
Class AlgebraicLib

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

public class AlgebraicLib
extends Predicatelib

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

Author:
{tapas@cs.arizona.edu}

Field Summary
 
Fields inherited from class sandmark.util.opaquepredicatelib.Predicatelib
cfc, insertPositionIndex, opaqueType, targetMethodGen
 
Constructor Summary
AlgebraicLib(ClassFileCollection cfcollection, de.fub.bytecode.generic.MethodGen methodgen, int opaqueType)
          Constructor
 
Method Summary
 int applyOpaquePredicate(de.fub.bytecode.generic.InstructionHandle insertIndex, de.fub.bytecode.generic.InstructionHandle targetIndex)
          entry API for this predicate lib; returns 1 on success, 0 on failure
 de.fub.bytecode.generic.MethodGen getMethodGen()
           
 int getNumSubPredicates()
           
 void insertOpaqueJump(java.util.Vector opaqueInsertList, de.fub.bytecode.generic.InstructionHandle insertHandle)
           
 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

AlgebraicLib

public AlgebraicLib(ClassFileCollection cfcollection,
                    de.fub.bytecode.generic.MethodGen methodgen,
                    int opaqueType)
Constructor

Method Detail

getNumSubPredicates

public int getNumSubPredicates()

insertOpaqueJump

public void insertOpaqueJump(java.util.Vector opaqueInsertList,
                             de.fub.bytecode.generic.InstructionHandle insertHandle)

applyOpaquePredicate

public int applyOpaquePredicate(de.fub.bytecode.generic.InstructionHandle insertIndex,
                                de.fub.bytecode.generic.InstructionHandle targetIndex)
entry API for this predicate lib; returns 1 on success, 0 on failure


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

getMethodGen

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

SandMark version 3.0

Wed Jan 29 10:30:05 MST 2003