java.lang.Object
edu.ucsb.ccs.jcontractor.transformation.Transformation
edu.ucsb.ccs.jcontractor.transformation.ContractTransformation
edu.ucsb.ccs.jcontractor.transformation.ContractCheckTransformation
edu.ucsb.ccs.jcontractor.transformation.PreconditionCheckTransformation
- public class PreconditionCheckTransformation
- extends ContractCheckTransformation
A transformation to insert code to check the precondition of each
method by calling method_Precondition
. This
transformation requires that PreconditionMethodTransformation has
already been run. The contract check is built by
ContractCheckTransformation. See that class for all the gory
details.
One note on constructors: Because call to the super class
constructor is required to be the first statement of the
constructor, preconditions are checked immediatly after the super
class constructor call, not at method entry.
This transformation depends on:
- PreconditionMethodTransformation
- Version:
- $Id: PreconditionCheckTransformation.java,v 1.9 2002/05/12 00:09:16 parkera Exp $
Methods inherited from class edu.ucsb.ccs.jcontractor.transformation.ContractTransformation |
append, canCheckEntryInvariant, canCheckExitInvariant_Precondition, canCheckExitInvariant, canCheckPostcondition, canCheckPrecondition, canHaveInheritedContract_Precondition, canHaveInheritedContract, canHaveInvariant_Precondition, canHaveInvariant, canHavePostcondition_Precondition, canHavePostcondition, canHavePrecondition_Precondition, canHavePrecondition, canReferenceOld_Precondition, canReferenceOld, contractsCheckable_Precondition, contractsCheckable, createLoadArguments_Postcondition, createLoadArguments_Precondition, createLoadArguments, entryInvariantCheckable_Precondition, findMethod, findMethod, findMethodIndex, getContractClassName_Postcondition, getContractClassName_Postcondition, getContractClassName_Precondition, getContractClassName_Precondition, getContractClassName, getContractClassName, getInvariantMethodName_Postcondition, getInvariantMethodName_Precondition, getInvariantMethodName, getInvariantMethodSignature_Postcondition, getInvariantMethodSignature_Precondition, getInvariantMethodSignature, getPostconditionMethodName_Postcondition, getPostconditionMethodName_Precondition, getPostconditionMethodName, getPostconditionMethodSignature_Postcondition, getPostconditionMethodSignature_Precondition, getPostconditionMethodSignature, getPreconditionMethodName_Postcondition, getPreconditionMethodName_Precondition, getPreconditionMethodName, getPreconditionMethodSignature_Postcondition, getPreconditionMethodSignature_Precondition, getPreconditionMethodSignature, hasExternalContract, hasInterfaceContract, hasSuperClassContract, isContractClass_Postcondition, isContractClass_Precondition, isContractClass, isContractMethod_Postcondition, isContractMethod_Precondition, isContractMethod, isInvariantMethod_Precondition, isInvariantMethod, isPostconditionMethod_Postcondition, isPostconditionMethod, isPreconditionMethod_Precondition, isPreconditionMethod, postconditionCheckable_Precondition, preconditionCheckable_Precondition, prepend, prependToConstructor_Precondition, prependToConstructor, replaceInstruction, replaceInstruction, replaceReturnInstructions_Precondition, replaceReturnInstructions |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PreconditionCheckTransformation
public PreconditionCheckTransformation()
transformMethod
public void transformMethod(org.apache.bcel.generic.MethodGen mg)
- Insert code to check the precondition of a method, and throw a
PreconditionViolationError if it fails. This method assumes that
a precondition method exists for the method being transformed.
(PreconditionMethodTransformation should have been run to ensure
this.)
- Specified by:
transformMethod
in class Transformation