|
JML | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.multijava.util.Utils
org.jmlspecs.checker.JmlAbstractVisitor
org.jmlspecs.checker.JmlExpressionChecker
A visitor class to check privacy (and purity) of JML expressions.
| Field Summary | |
private boolean |
checkPurity
Indicates whether to check purity or not. |
private CContextType |
context
The context with which to report error if an error is found while checking visibility and purity. |
private long |
privacy
The visibility of specification context against which JML expressions are checked for visibility. |
private boolean |
sideEffectOk
Indicates if side effects are ok. |
| Fields inherited from class org.multijava.util.Utils |
DBG_LEVEL_HIGH, DBG_LEVEL_LOW, DBG_LEVEL_NO |
| Constructor Summary | |
private |
JmlExpressionChecker(CContextType ctx,
long privacy)
Constructs a new instance. |
private |
JmlExpressionChecker(CContextType ctx,
long privacy,
boolean checkPurity)
Constructs a new instance. |
private |
JmlExpressionChecker(CContextType ctx,
long privacy,
boolean checkPurity,
boolean sideEffectOk)
|
| Method Summary | |
private void |
check(boolean cond,
TokenReference tref,
MessageDescription msg)
Checks if the condition, cond is true. |
private void |
check(boolean cond,
TokenReference tref,
MessageDescription msg,
Object obj1)
Checks if the condition, cond is true. |
private void |
check(boolean cond,
TokenReference tref,
MessageDescription msg,
Object obj1,
Object obj2)
Checks if the condition, cond is true. |
private void |
check(boolean cond,
TokenReference tref,
MessageDescription msg,
Object[] obj)
|
private void |
checkType(CType type,
TokenReference ref)
Checks the visibility of the given type, type. |
private void |
checkTypeHelper(CClass clazz,
TokenReference ref)
Checks the visibility of the given class, clazz. |
private CType |
getBaseType(CType type)
Returns the ultimate base type if the given type, type, is an array type. |
private static boolean |
isModelFieldReference(JExpression expr)
Returns true if the given expression,
expr is a reference to a model field. |
static boolean |
isVisibilityOk(long privacy,
long modifiers)
Returns true if a member (field or method) with the given modifiers, modifiers, can be used in a
specification context of the visibility, privacy. |
private int |
methodPureness(CMethod meth,
JExpression prefix)
Returns 1 if the given method, meth, is a pure
method. |
static void |
perform(CContextType ctx,
long privacy,
JExpression expr)
Checks visibility (and purity) of the given expression, expr, in the specification context of visibility,
privacy. |
static void |
perform(CContextType ctx,
long privacy,
JExpression expr,
boolean checkPurity)
Checks visibility (and purity) of the given expression, expr, in the specification context of visibility,
privacy. |
static void |
perform(CContextType ctx,
JExpression expr)
Checks purity of the given expression, expr. |
static void |
performSideEffectOk(CContextType ctx,
JExpression expr)
Checks the given expression allowing side effects. |
void |
visitAddExpression(JAddExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitArrayAccessExpression(JArrayAccessExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitArrayDimsAndInit(JArrayDimsAndInits self)
Checks visibility (and purity) of the given expression, self. |
void |
visitArrayInitializer(JArrayInitializer self)
Checks visibility (and purity) of the given expression, self. |
void |
visitArrayLengthExpression(JArrayLengthExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitAssignmentExpression(JAssignmentExpression self)
Checks visibility (and purity) of the given expression, self. |
protected void |
visitBinaryExpression(JBinaryExpression expr)
Checks visibility (and purity) of the given binary expression, expr. |
void |
visitBitwiseExpression(JBitwiseExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitCastExpression(JCastExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitClassExpression(JClassExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitCompoundAssignmentExpression(JCompoundAssignmentExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitConditionalAndExpression(JConditionalAndExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitConditionalExpression(JConditionalExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitConditionalOrExpression(JConditionalOrExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitDivideExpression(JDivideExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitEqualityExpression(JEqualityExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitExplicitConstructorInvocation(JExplicitConstructorInvocation self)
Checks visibility (and purity) of the given expression, self. |
protected void |
visitExpressions(JExpression[] exprs)
Checks visibility (and purity) of the given expressions, expr. |
void |
visitFieldExpression(JClassFieldExpression self)
Checks the given class field expression for visibility and purity violations. |
void |
visitInstanceofExpression(JInstanceofExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlCodeContract(JmlCodeContract self)
|
void |
visitJmlDurationExpression(JmlDurationExpression self)
Checks visibility of the given expression, self. |
void |
visitJmlElemTypeExpression(JmlElemTypeExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlFreshExpression(JmlFreshExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlInformalExpression(JmlInformalExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlInGroupClause(JmlInGroupClause self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlInvariantForExpression(JmlInvariantForExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlIsInitializedExpression(JmlIsInitializedExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlLabelExpression(JmlLabelExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlLockSetExpression(JmlLockSetExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlMapsIntoClause(JmlMapsIntoClause self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlNonNullElementsExpression(JmlNonNullElementsExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlNotAssignedExpression(JmlNotAssignedExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlNotModifiedExpression(JmlNotModifiedExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlOldExpression(JmlOldExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlPredicate(JmlPredicate self)
|
void |
visitJmlPreExpression(JmlPreExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlReachExpression(JmlReachExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlRelationalExpression(JmlRelationalExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlResultExpression(JmlResultExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlSetComprehension(JmlSetComprehension self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlSpaceExpression(JmlSpaceExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlSpecExpression(JmlSpecExpression self)
|
void |
visitJmlSpecQuantifiedExpression(JmlSpecQuantifiedExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlTypeExpression(JmlTypeExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlTypeOfExpression(JmlTypeOfExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlVariableDefinition(JmlVariableDefinition self)
Checks visibility (and purity) of the given expression, self. |
void |
visitJmlWorkingSpaceExpression(JmlWorkingSpaceExpression self)
Checks visibility of the given expression, self. |
void |
visitLocalVariableExpression(JLocalVariableExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitMathModeExpression(MJMathModeExpression self)
Checks visibility (and purity) of the given expression. |
void |
visitMethodCallExpression(JMethodCallExpression self)
Checks the given method call expression for visibility and purity violations. |
void |
visitMinusExpression(JMinusExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitModuloExpression(JModuloExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitMultExpression(JMultExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitNameExpression(JNameExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitNewAnonymousClassExpression(JNewAnonymousClassExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitNewArrayExpression(JNewArrayExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitNewObjectExpression(JNewObjectExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitParenthesedExpression(JParenthesedExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitPostfixExpression(JPostfixExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitPrefixExpression(JPrefixExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitRelationalExpression(JRelationalExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitShiftExpression(JShiftExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitSuperExpression(JSuperExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitThisExpression(JThisExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitTypeNameExpression(JTypeNameExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitUnaryExpression(JUnaryExpression self)
Checks visibility (and purity) of the given expression, self. |
void |
visitUnaryPromoteExpression(JUnaryPromote self)
Checks visibility (and purity) of the given expression, self. |
void |
visitVariableDefinition(JVariableDefinition self)
Checks visibility (and purity) of the given expression, self. |
void |
visitWarnExpression(MJWarnExpression self)
Checks visibility (and purity) of the given expression. |
private void |
warnPureness(int cond,
TokenReference tref,
Object obj)
Produce a caution message about method pureness if the argument, cond, is -1. |
| Methods inherited from class org.multijava.util.Utils |
assertTrue, assertTrue, combineArrays, escapeString, escapeString, fail, fail, getFilePath, hasFlag, hasOtherFlags, parsePathParts, relativePathTo, splitQualifiedName, splitQualifiedName, stripJavaModifiers, stripNonJavaModifiers, stripPrivateModifier, unescapeString, vectorToArray, vectorToIntArray |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
private CContextType context
private long privacy
private invariant privacy == ACC_PUBLIC || privacy == ACC_SPEC_PUBLIC || privacy == ACC_PROTECTED || privacy == ACC_SPEC_PROTECTED || privacy == ACC_PRIVATE || privacy == 0;
private boolean checkPurity
private boolean sideEffectOk
| Constructor Detail |
private JmlExpressionChecker(CContextType ctx,
long privacy)
requires privacy == ACC_PUBLIC || privacy == ACC_SPEC_PUBLIC || privacy == ACC_PROTECTED || privacy == ACC_SPEC_PROTECTED || privacy == ACC_PRIVATE || privacy == 0;
private JmlExpressionChecker(CContextType ctx,
long privacy,
boolean checkPurity)
requires privacy == ACC_PUBLIC || privacy == ACC_SPEC_PUBLIC || privacy == ACC_PROTECTED || privacy == ACC_SPEC_PROTECTED || privacy == ACC_PRIVATE || privacy == 0;
private JmlExpressionChecker(CContextType ctx,
long privacy,
boolean checkPurity,
boolean sideEffectOk)
| Method Detail |
public static void perform(CContextType ctx,
long privacy,
JExpression expr,
boolean checkPurity)
expr, in the specification context of visibility,
privacy. If there is an error, it is reported
using the given context, ctx. The purity check is
performed only if the argument checkPurity is
true.
requires privacy == ACC_PUBLIC || privacy == ACC_SPEC_PUBLIC || privacy == ACC_PROTECTED || privacy == ACC_SPEC_PROTECTED || privacy == ACC_PRIVATE || privacy == 0;
public static void perform(CContextType ctx,
long privacy,
JExpression expr)
expr, in the specification context of visibility,
privacy. If there is an error, it is reported
using the given context, ctx.
requires privacy == ACC_PUBLIC || privacy == ACC_SPEC_PUBLIC || privacy == ACC_PROTECTED || privacy == ACC_SPEC_PROTECTED || privacy == ACC_PRIVATE || privacy == 0;