Package net.mtu.eggplant.dbc

Generated names.

See:
          Description

Interface Summary
AssertLexerTokenTypes  
Java14RecognizerTokenTypes  
JavaTokenTypes  
 

Class Summary
AssertClass Object to represent an instrumented class.
AssertLexer  
AssertMethod Object that contains the data needed to generate instrumented code for a method.
AssertToken  
AssertTools class of static helper methods for assertions.
AssertTools.MethodLock Used for locking methods.
CodeFragment Class that represents a fragment of code that needs to be inserted into a file to instrument it for assertions.
CodeFragmentType Represents a type of assertion.
CodeGenerator  
CodeModification Used for representing a modification to code, rather than just a chunck of code to be inserted.
CodePoint  
CodePointPair  
Configuration Holds all the option values.
Configuration.SourceCompatibilityEnum Enum for which version of source compatibility we're using.
InvariantCondition  
Java14Recognizer  
JavaLexer  
JavaRecognizer Java parser for JonsAssert.
JonsAssert Class that starts everything off.
Symtab Class that keeps track of all classes and interfaces parsed in this run.
 

Exception Summary
AssertionViolation Exception thrown when an assertiong violation occurs.
FileAlreadyParsedException Exception thrown to break out of the parser if the destination file is newer than the source file.
 

Package net.mtu.eggplant.dbc Description

Generated names.

This table shows the names that are generated that might collide with names in instrumented source code. Do not use these names. If there are problems with the names choosen here, please emailme and I'll see what I can do to keep them from colliding. I've created these names to follow standard naming conventions for java source code so that if the code is run through a tool, like jtest, that checks these things the instrumented code doesn't generate unneeded errors. All generated variables and methods will be prepended with jps_. Some are listed in the following table. I've also been writing down skeletons of my instrumented code in MethodSkeletons. This should help explain what's going on.

name description
jps__<packageName>_<className>_check<methodName>PreConditions Name of method used to check preconditions on a method
jps__<packageName>_<className>_check<methodName>PostConditions Name of method used to check postconditions on a method
jps__<packageName>_<className>_checkInvariant Name of method used to check invariants on a class
jps__retval<className> Variable used to store the return value of a method so that it may be used when checking postconditions and still be returned from the method
JPS_<packageName>_<className>_AssertDummy<count> Name of class generated to check preconditions on constructors. count is incremented for each constructor in a class
jps_dummy<count> Name of extra parameters created to uniquify generated constructors. count is incremented for each parameter added to a particular constructor
JPS__<packageName>_<className>_AssertClass Name of class generated to check conditions on interfaces

System properties

This table shows the properties that are used by the instrumented code and their meanings. That is these properties are checked when the instrumented code is run, NOT when the code is instrumented by JonsAssert.

Note: These properties must be set on the commandline.

property description
ENFORCE_ASSERT_CONDITION If "FALSE", then ignore inline assert checks. Default value is "TRUE".
ENFORCE_INVARIANT_CONDITION If "FALSE", then ignore invariant checks. Default value is "TRUE".
ENFORCE_POST_CONDITION If "FALSE", then ignore post condition checks. Default value is "TRUE".
ENFORCE_PRE_CONDITION If "FALSE", then ignore pre condition checks. Default value is "TRUE".
ENFORCE_INHERITED_CONDITIONS If "FALSE", then the instrumented code will not walk the inheritance heirarchy looking for pre/post/invariant conditions when checking the conditions for a class. Default value is "TRUE". This is useful for speeding up the instrumented code while sacrificing a completly accurate run. One way to use this is to set this to FALSE when doing every day development and leave it at TRUE when running in nightly test runs.
ASSERT_BEHAVIOR If "CONTINUE", print out a stack trace and continue. If "EXCEPTION", throw an AssertionViolation If "EXIT" or unset, print a stack trace and call System.exit(1). Default value is "EXIT"