package soot.JastAddJ; import java.util.HashSet;import java.util.LinkedHashSet;import java.io.File;import java.util.*;import beaver.*;import java.util.ArrayList;import java.util.zip.*;import java.io.*;import java.io.FileNotFoundException;import java.util.Collection;import soot.*;import soot.util.*;import soot.jimple.*;import soot.coffi.ClassFile;import soot.coffi.method_info;import soot.coffi.CONSTANT_Utf8_info;import soot.tagkit.SourceFileTag;import soot.coffi.CoffiMethodSource; public abstract class Expr extends ASTNode<ASTNode> implements Cloneable { public void flushCache() { super.flushCache(); false_label_computed = false; false_label_value = null; true_label_computed = false; true_label_value = null; } public void flushCollectionCache() { super.flushCollectionCache(); } @SuppressWarnings({"unchecked", "cast"}) public Expr clone() throws CloneNotSupportedException { Expr node = (Expr)super.clone(); node.false_label_computed = false; node.false_label_value = null; node.true_label_computed = false; node.true_label_value = null; node.in$Circle(false); node.is$Final(false); return node; } // Declared in LookupType.jrag at line 373 public SimpleSet keepAccessibleTypes(SimpleSet oldSet) { SimpleSet newSet = SimpleSet.emptySet; TypeDecl hostType = hostType(); for(Iterator iter = oldSet.iterator(); iter.hasNext(); ) { TypeDecl t = (TypeDecl)iter.next(); if((hostType != null && t.accessibleFrom(hostType)) || (hostType == null && t.accessibleFromPackage(hostPackage()))) newSet = newSet.add(t); } return newSet; } // Declared in LookupVariable.jrag at line 164 // remove fields that are not accessible when using this Expr as qualifier public SimpleSet keepAccessibleFields(SimpleSet oldSet) { SimpleSet newSet = SimpleSet.emptySet; for(Iterator iter = oldSet.iterator(); iter.hasNext(); ) { Variable v = (Variable)iter.next(); if(v instanceof FieldDeclaration) { FieldDeclaration f = (FieldDeclaration)v; if(mayAccess(f)) newSet = newSet.add(f); } } return newSet; } // Declared in LookupVariable.jrag at line 187 public boolean mayAccess(FieldDeclaration f) { if(f.isPublic()) return true; else if(f.isProtected()) { if(f.hostPackage().equals(hostPackage())) return true; TypeDecl C = f.hostType(); TypeDecl S = hostType().subclassWithinBody(C); TypeDecl Q = type(); if(S == null) return false; if(f.isInstanceVariable() && !isSuperAccess()) return Q.instanceOf(S); return true; } else if(f.isPrivate()) return f.hostType().topLevelType() == hostType().topLevelType(); else return f.hostPackage().equals(hostType().hostPackage()); } // Declared in ResolveAmbiguousNames.jrag at line 106 public Dot qualifiesAccess(Access access) { Dot dot = new Dot(this, access); return dot; } // Declared in MethodSignature.jrag at line 76 protected SimpleSet chooseConstructor(Collection constructors, List argList) { SimpleSet potentiallyApplicable = SimpleSet.emptySet; // select potentially applicable constructors for(Iterator iter = constructors.iterator(); iter.hasNext(); ) { ConstructorDecl decl = (ConstructorDecl)iter.next(); if(decl.potentiallyApplicable(argList) && decl.accessibleFrom(hostType())) potentiallyApplicable = potentiallyApplicable.add(decl); } // first phase SimpleSet maxSpecific = SimpleSet.emptySet; for(Iterator iter = potentiallyApplicable.iterator(); iter.hasNext(); ) { ConstructorDecl decl = (ConstructorDecl)iter.next(); if(decl.applicableBySubtyping(argList)) maxSpecific = mostSpecific(maxSpecific, decl); } // second phase if(maxSpecific.isEmpty()) { for(Iterator iter = potentiallyApplicable.iterator(); iter.hasNext(); ) { ConstructorDecl decl = (ConstructorDecl)iter.next(); if(decl.applicableByMethodInvocationConversion(argList)) maxSpecific = mostSpecific(maxSpecific, decl); } } // third phase if(maxSpecific.isEmpty()) { for(Iterator iter = potentiallyApplicable.iterator(); iter.hasNext(); ) { ConstructorDecl decl = (ConstructorDecl)iter.next(); if(decl.isVariableArity() && decl.applicableVariableArity(argList)) maxSpecific = mostSpecific(maxSpecific, decl); } } return maxSpecific; } // Declared in MethodSignature.jrag at line 113 protected static SimpleSet mostSpecific(SimpleSet maxSpecific, ConstructorDecl decl) { if(maxSpecific.isEmpty()) maxSpecific = maxSpecific.add(decl); else { if(decl.moreSpecificThan((ConstructorDecl)maxSpecific.iterator().next())) maxSpecific = SimpleSet.emptySet.add(decl); else if(!((ConstructorDecl)maxSpecific.iterator().next()).moreSpecificThan(decl)) maxSpecific = maxSpecific.add(decl); } return maxSpecific; } // Declared in BooleanExpressions.jrag at line 105 protected soot.Value emitBooleanCondition(Body b) { b.setLine(this); emitEvalBranch(b); soot.jimple.Stmt end_label = newLabel(); b.addLabel(false_label()); Local result = b.newTemp(soot.BooleanType.v()); b.add(b.newAssignStmt(result, BooleanType.emitConstant(false), this)); b.add(b.newGotoStmt(end_label, this)); b.addLabel(true_label()); b.add(b.newAssignStmt(result, BooleanType.emitConstant(true), this)); b.addLabel(end_label); return result; } // Declared in BooleanExpressions.jrag at line 158 public void refined_BooleanExpressions_Expr_emitEvalBranch(Body b) { b.setLine(this); if(isTrue()) b.add(b.newGotoStmt(true_label(), this)); else if(isFalse()) b.add(b.newGotoStmt(false_label(), this)); else { b.add( b.newIfStmt( b.newEqExpr( asImmediate(b, eval(b)), BooleanType.emitConstant(false), this ), false_label(), this ) ); b.add(b.newGotoStmt(true_label(), this)); } } // Declared in Expressions.jrag at line 11 public soot.Value eval(Body b) { throw new Error("Operation eval not supported for " + getClass().getName()); } // Declared in Expressions.jrag at line 259 public soot.Value emitStore(Body b, soot.Value lvalue, soot.Value rvalue, ASTNode location) { b.setLine(this); b.add( b.newAssignStmt( lvalue, asLocal(b, rvalue, lvalue.getType()), location ) ); return rvalue; } // Declared in EmitJimpleRefinements.jrag at line 202 public void collectTypesToHierarchy(Collection<Type> set) { super.collectTypesToHierarchy(set); // collect all expr types that are reference types // select the element type in case it is an array type addDependencyIfNeeded(set, type()); } // Declared in EmitJimpleRefinements.jrag at line 209 protected void addDependencyIfNeeded(Collection<Type> set, TypeDecl type) { type = type.elementType().erasure(); if(type.isReferenceType() && !type.isUnknown()) set.add(type.getSootType()); } // Declared in java.ast at line 3 // Declared in java.ast line 97 public Expr() { super(); } // Declared in java.ast at line 9 protected int numChildren() { return 0; } // Declared in java.ast at line 12 public boolean mayHaveRewrite() { return false; } // Declared in AutoBoxingCodegen.jrag at line 100 // Generate unboxing code for conditions // 14.9 If, 14.12 While, 14.13 Do, 14.14 For // // emitEvalBranch is used to emit the condition from these constructs // refine behavior to include unboxing of the value when needed public void emitEvalBranch(Body b) { if(type().isReferenceType()) { b.setLine(this); b.add( b.newIfStmt( b.newEqExpr( asImmediate(b, type().emitUnboxingOperation(b, eval(b), this)), BooleanType.emitConstant(false), this ), false_label(), this ) ); b.add(b.newGotoStmt(true_label(), this)); } else refined_BooleanExpressions_Expr_emitEvalBranch(b); } // Declared in TypeAnalysis.jrag at line 276 @SuppressWarnings({"unchecked", "cast"}) public abstract TypeDecl type(); // Declared in ConstantExpression.jrag at line 98 @SuppressWarnings({"unchecked", "cast"}) public Constant constant() { ASTNode$State state = state(); Constant constant_value = constant_compute(); return constant_value; } private Constant constant_compute() { throw new UnsupportedOperationException("ConstantExpression operation constant" + " not supported for type " + getClass().getName()); } // Declared in ConstantExpression.jrag at line 241 @SuppressWarnings({"unchecked", "cast"}) public boolean isPositive() { ASTNode$State state = state(); boolean isPositive_value = isPositive_compute(); return isPositive_value; } private boolean isPositive_compute() { return false; } // Declared in ConstantExpression.jrag at line 454 @SuppressWarnings({"unchecked", "cast"}) public boolean representableIn(TypeDecl t) { ASTNode$State state = state(); boolean representableIn_TypeDecl_value = representableIn_compute(t); return representableIn_TypeDecl_value; } private boolean representableIn_compute(TypeDecl t) { if (!type().isByte() && !type().isChar() && !type().isShort() && !type().isInt()) { return false; } if (t.isByte()) return constant().intValue() >= Byte.MIN_VALUE && constant().intValue() <= Byte.MAX_VALUE; if (t.isChar()) return constant().intValue() >= Character.MIN_VALUE && constant().intValue() <= Character.MAX_VALUE; if (t.isShort()) return constant().intValue() >= Short.MIN_VALUE && constant().intValue() <= Short.MAX_VALUE; if(t.isInt()) return constant().intValue() >= Integer.MIN_VALUE && constant().intValue() <= Integer.MAX_VALUE; return false; } // Declared in ConstantExpression.jrag at line 482 @SuppressWarnings({"unchecked", "cast"}) public boolean isConstant() { ASTNode$State state = state(); boolean isConstant_value = isConstant_compute(); return isConstant_value; } private boolean isConstant_compute() { return false; } // Declared in ConstantExpression.jrag at line 511 @SuppressWarnings({"unchecked", "cast"}) public boolean isTrue() { ASTNode$State state = state(); boolean isTrue_value = isTrue_compute(); return isTrue_value; } private boolean isTrue_compute() { return isConstant() && type() instanceof BooleanType && constant().booleanValue(); } // Declared in ConstantExpression.jrag at line 512 @SuppressWarnings({"unchecked", "cast"}) public boolean isFalse() { ASTNode$State state = state(); boolean isFalse_value = isFalse_compute(); return isFalse_value; } private boolean isFalse_compute() { return isConstant() && type() instanceof BooleanType && !constant().booleanValue(); } // Declared in DefiniteAssignment.jrag at line 58 @SuppressWarnings({"unchecked", "cast"}) public Variable varDecl() { ASTNode$State state = state(); Variable varDecl_value = varDecl_compute(); return varDecl_value; } private Variable varDecl_compute() { return null; } // Declared in DefiniteAssignment.jrag at line 340 @SuppressWarnings({"unchecked", "cast"}) public boolean isDAafterFalse(Variable v) { ASTNode$State state = state(); boolean isDAafterFalse_Variable_value = isDAafterFalse_compute(v); return isDAafterFalse_Variable_value; } private boolean isDAafterFalse_compute(Variable v) { return isTrue() || isDAbefore(v); } // Declared in DefiniteAssignment.jrag at line 342 @SuppressWarnings({"unchecked", "cast"}) public boolean isDAafterTrue(Variable v) { ASTNode$State state = state(); boolean isDAafterTrue_Variable_value = isDAafterTrue_compute(v); return isDAafterTrue_Variable_value; } private boolean isDAafterTrue_compute(Variable v) { return isFalse() || isDAbefore(v); } // Declared in DefiniteAssignment.jrag at line 345 @SuppressWarnings({"unchecked", "cast"}) public boolean isDAafter(Variable v) { ASTNode$State state = state(); boolean isDAafter_Variable_value = isDAafter_compute(v); return isDAafter_Variable_value; } private boolean isDAafter_compute(Variable v) { return (isDAafterFalse(v) && isDAafterTrue(v)) || isDAbefore(v); } // Declared in DefiniteAssignment.jrag at line 782 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUafterFalse(Variable v) { ASTNode$State state = state(); boolean isDUafterFalse_Variable_value = isDUafterFalse_compute(v); return isDUafterFalse_Variable_value; } private boolean isDUafterFalse_compute(Variable v) { if(isTrue()) return true; return isDUbefore(v); } // Declared in DefiniteAssignment.jrag at line 788 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUafterTrue(Variable v) { ASTNode$State state = state(); boolean isDUafterTrue_Variable_value = isDUafterTrue_compute(v); return isDUafterTrue_Variable_value; } private boolean isDUafterTrue_compute(Variable v) { if(isFalse()) return true; return isDUbefore(v); } // Declared in DefiniteAssignment.jrag at line 798 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUafter(Variable v) { ASTNode$State state = state(); boolean isDUafter_Variable_value = isDUafter_compute(v); return isDUafter_Variable_value; } private boolean isDUafter_compute(Variable v) { return (isDUafterFalse(v) && isDUafterTrue(v)) || isDUbefore(v); } // Declared in LookupConstructor.jrag at line 32 @SuppressWarnings({"unchecked", "cast"}) public SimpleSet mostSpecificConstructor(Collection constructors) { ASTNode$State state = state(); SimpleSet mostSpecificConstructor_Collection_value = mostSpecificConstructor_compute(constructors); return mostSpecificConstructor_Collection_value; } private SimpleSet mostSpecificConstructor_compute(Collection constructors) { SimpleSet maxSpecific = SimpleSet.emptySet; for(Iterator iter = constructors.iterator(); iter.hasNext(); ) { ConstructorDecl decl = (ConstructorDecl)iter.next(); if(applicableAndAccessible(decl)) { if(maxSpecific.isEmpty()) maxSpecific = maxSpecific.add(decl); else { if(decl.moreSpecificThan((ConstructorDecl)maxSpecific.iterator().next())) maxSpecific = SimpleSet.emptySet.add(decl); else if(!((ConstructorDecl)maxSpecific.iterator().next()).moreSpecificThan(decl)) maxSpecific = maxSpecific.add(decl); } } } return maxSpecific; } // Declared in LookupConstructor.jrag at line 50 @SuppressWarnings({"unchecked", "cast"}) public boolean applicableAndAccessible(ConstructorDecl decl) { ASTNode$State state = state(); boolean applicableAndAccessible_ConstructorDecl_value = applicableAndAccessible_compute(decl); return applicableAndAccessible_ConstructorDecl_value; } private boolean applicableAndAccessible_compute(ConstructorDecl decl) { return false; } // Declared in LookupType.jrag at line 83 @SuppressWarnings({"unchecked", "cast"}) public boolean hasQualifiedPackage(String packageName) { ASTNode$State state = state(); boolean hasQualifiedPackage_String_value = hasQualifiedPackage_compute(packageName); return hasQualifiedPackage_String_value; } private boolean hasQualifiedPackage_compute(String packageName) { return false; } // Declared in LookupType.jrag at line 342 @SuppressWarnings({"unchecked", "cast"}) public SimpleSet qualifiedLookupType(String name) { ASTNode$State state = state(); SimpleSet qualifiedLookupType_String_value = qualifiedLookupType_compute(name); return qualifiedLookupType_String_value; } private SimpleSet qualifiedLookupType_compute(String name) { return keepAccessibleTypes(type().memberTypes(name)); } // Declared in LookupVariable.jrag at line 146 @SuppressWarnings({"unchecked", "cast"}) public SimpleSet qualifiedLookupVariable(String name) { ASTNode$State state = state(); SimpleSet qualifiedLookupVariable_String_value = qualifiedLookupVariable_compute(name); return qualifiedLookupVariable_String_value; } private SimpleSet qualifiedLookupVariable_compute(String name) { if(type().accessibleFrom(hostType())) return keepAccessibleFields(type().memberFields(name)); return SimpleSet.emptySet; } // Declared in QualifiedNames.jrag at line 25 @SuppressWarnings({"unchecked", "cast"}) public String packageName() { ASTNode$State state = state(); String packageName_value = packageName_compute(); return packageName_value; } private String packageName_compute() { return ""; } // Declared in QualifiedNames.jrag at line 62 @SuppressWarnings({"unchecked", "cast"}) public String typeName() { ASTNode$State state = state(); String typeName_value = typeName_compute(); return typeName_value; } private String typeName_compute() { return ""; } // Declared in ResolveAmbiguousNames.jrag at line 13 @SuppressWarnings({"unchecked", "cast"}) public boolean isTypeAccess() { ASTNode$State state = state(); boolean isTypeAccess_value = isTypeAccess_compute(); return isTypeAccess_value; } private boolean isTypeAccess_compute() { return false; } // Declared in ResolveAmbiguousNames.jrag at line 17 @SuppressWarnings({"unchecked", "cast"}) public boolean isMethodAccess() { ASTNode$State state = state(); boolean isMethodAccess_value = isMethodAccess_compute(); return isMethodAccess_value; } private boolean isMethodAccess_compute() { return false; } // Declared in ResolveAmbiguousNames.jrag at line 21 @SuppressWarnings({"unchecked", "cast"}) public boolean isFieldAccess() { ASTNode$State state = state(); boolean isFieldAccess_value = isFieldAccess_compute(); return isFieldAccess_value; } private boolean isFieldAccess_compute() { return false; } // Declared in ResolveAmbiguousNames.jrag at line 25 @SuppressWarnings({"unchecked", "cast"}) public boolean isSuperAccess() { ASTNode$State state = state(); boolean isSuperAccess_value = isSuperAccess_compute(); return isSuperAccess_value; } private boolean isSuperAccess_compute() { return false; } // Declared in ResolveAmbiguousNames.jrag at line 31 @SuppressWarnings({"unchecked", "cast"}) public boolean isThisAccess() { ASTNode$State state = state(); boolean isThisAccess_value = isThisAccess_compute(); return isThisAccess_value; } private boolean isThisAccess_compute() { return false; } // Declared in ResolveAmbiguousNames.jrag at line 37 @SuppressWarnings({"unchecked", "cast"}) public boolean isPackageAccess() { ASTNode$State state = state(); boolean isPackageAccess_value = isPackageAccess_compute(); return isPackageAccess_value; } private boolean isPackageAccess_compute() { return false; } // Declared in ResolveAmbiguousNames.jrag at line 41 @SuppressWarnings({"unchecked", "cast"}) public boolean isArrayAccess() { ASTNode$State state = state(); boolean isArrayAccess_value = isArrayAccess_compute(); return isArrayAccess_value; } private boolean isArrayAccess_compute() { return false; } // Declared in ResolveAmbiguousNames.jrag at line 45 @SuppressWarnings({"unchecked", "cast"}) public boolean isClassAccess() { ASTNode$State state = state(); boolean isClassAccess_value = isClassAccess_compute(); return isClassAccess_value; } private boolean isClassAccess_compute() { return false; } // Declared in ResolveAmbiguousNames.jrag at line 49 @SuppressWarnings({"unchecked", "cast"}) public boolean isSuperConstructorAccess() { ASTNode$State state = state(); boolean isSuperConstructorAccess_value = isSuperConstructorAccess_compute(); return isSuperConstructorAccess_value; } private boolean isSuperConstructorAccess_compute() { return false; } // Declared in ResolveAmbiguousNames.jrag at line 55 @SuppressWarnings({"unchecked", "cast"}) public boolean isLeftChildOfDot() { ASTNode$State state = state(); boolean isLeftChildOfDot_value = isLeftChildOfDot_compute(); return isLeftChildOfDot_value; } private boolean isLeftChildOfDot_compute() { return hasParentDot() && parentDot().getLeft() == this; } // Declared in ResolveAmbiguousNames.jrag at line 56 @SuppressWarnings({"unchecked", "cast"}) public boolean isRightChildOfDot() { ASTNode$State state = state(); boolean isRightChildOfDot_value = isRightChildOfDot_compute(); return isRightChildOfDot_value; } private boolean isRightChildOfDot_compute() { return hasParentDot() && parentDot().getRight() == this; } // Declared in ResolveAmbiguousNames.jrag at line 69 @SuppressWarnings({"unchecked", "cast"}) public AbstractDot parentDot() { ASTNode$State state = state(); AbstractDot parentDot_value = parentDot_compute(); return parentDot_value; } private AbstractDot parentDot_compute() { return getParent() instanceof AbstractDot ? (AbstractDot)getParent() : null; } // Declared in ResolveAmbiguousNames.jrag at line 70 @SuppressWarnings({"unchecked", "cast"}) public boolean hasParentDot() { ASTNode$State state = state(); boolean hasParentDot_value = hasParentDot_compute(); return hasParentDot_value; } private boolean hasParentDot_compute() { return parentDot() != null; } // Declared in ResolveAmbiguousNames.jrag at line 72 @SuppressWarnings({"unchecked", "cast"}) public Access nextAccess() { ASTNode$State state = state(); Access nextAccess_value = nextAccess_compute(); return nextAccess_value; } private Access nextAccess_compute() { return parentDot().nextAccess(); } // Declared in ResolveAmbiguousNames.jrag at line 73 @SuppressWarnings({"unchecked", "cast"}) public boolean hasNextAccess() { ASTNode$State state = state(); boolean hasNextAccess_value = hasNextAccess_compute(); return hasNextAccess_value; } private boolean hasNextAccess_compute() { return isLeftChildOfDot(); } // Declared in TypeAnalysis.jrag at line 504 @SuppressWarnings({"unchecked", "cast"}) public Stmt enclosingStmt() { ASTNode$State state = state(); Stmt enclosingStmt_value = enclosingStmt_compute(); return enclosingStmt_value; } private Stmt enclosingStmt_compute() { ASTNode node = this; while(node != null && !(node instanceof Stmt)) node = node.getParent(); return (Stmt)node; } // Declared in TypeCheck.jrag at line 15 @SuppressWarnings({"unchecked", "cast"}) public boolean isVariable() { ASTNode$State state = state(); boolean isVariable_value = isVariable_compute(); return isVariable_value; } private boolean isVariable_compute() { return false; } // Declared in TypeHierarchyCheck.jrag at line 20 @SuppressWarnings({"unchecked", "cast"}) public boolean isUnknown() { ASTNode$State state = state(); boolean isUnknown_value = isUnknown_compute(); return isUnknown_value; } private boolean isUnknown_compute() { return type().isUnknown(); } // Declared in TypeHierarchyCheck.jrag at line 150 @SuppressWarnings({"unchecked", "cast"}) public boolean staticContextQualifier() { ASTNode$State state = state(); boolean staticContextQualifier_value = staticContextQualifier_compute(); return staticContextQualifier_value; } private boolean staticContextQualifier_compute() { return false; } protected boolean false_label_computed = false; protected soot.jimple.Stmt false_label_value; // Declared in BooleanExpressions.jrag at line 16 @SuppressWarnings({"unchecked", "cast"}) public soot.jimple.Stmt false_label() { if(false_label_computed) { return false_label_value; } ASTNode$State state = state(); int num = state.boundariesCrossed; boolean isFinal = this.is$Final(); false_label_value = false_label_compute(); if(isFinal && num == state().boundariesCrossed) false_label_computed = true; return false_label_value; } private soot.jimple.Stmt false_label_compute() { return getParent().definesLabel() ? condition_false_label() : newLabel(); } protected boolean true_label_computed = false; protected soot.jimple.Stmt true_label_value; // Declared in BooleanExpressions.jrag at line 18 @SuppressWarnings({"unchecked", "cast"}) public soot.jimple.Stmt true_label() { if(true_label_computed) { return true_label_value; } ASTNode$State state = state(); int num = state.boundariesCrossed; boolean isFinal = this.is$Final(); true_label_value = true_label_compute(); if(isFinal && num == state().boundariesCrossed) true_label_computed = true; return true_label_value; } private soot.jimple.Stmt true_label_compute() { return getParent().definesLabel() ? condition_true_label() : newLabel(); } // Declared in BooleanExpressions.jrag at line 82 @SuppressWarnings({"unchecked", "cast"}) public boolean canBeTrue() { ASTNode$State state = state(); boolean canBeTrue_value = canBeTrue_compute(); return canBeTrue_value; } private boolean canBeTrue_compute() { return !isFalse(); } // Declared in BooleanExpressions.jrag at line 92 @SuppressWarnings({"unchecked", "cast"}) public boolean canBeFalse() { ASTNode$State state = state(); boolean canBeFalse_value = canBeFalse_compute(); return canBeFalse_value; } private boolean canBeFalse_compute() { return !isTrue(); } // Declared in DefiniteAssignment.jrag at line 15 @SuppressWarnings({"unchecked", "cast"}) public boolean isDest() { ASTNode$State state = state(); boolean isDest_value = getParent().Define_boolean_isDest(this, null); return isDest_value; } // Declared in DefiniteAssignment.jrag at line 25 @SuppressWarnings({"unchecked", "cast"}) public boolean isSource() { ASTNode$State state = state(); boolean isSource_value = getParent().Define_boolean_isSource(this, null); return isSource_value; } // Declared in DefiniteAssignment.jrag at line 49 @SuppressWarnings({"unchecked", "cast"}) public boolean isIncOrDec() { ASTNode$State state = state(); boolean isIncOrDec_value = getParent().Define_boolean_isIncOrDec(this, null); return isIncOrDec_value; } // Declared in DefiniteAssignment.jrag at line 236 @SuppressWarnings({"unchecked", "cast"}) public boolean isDAbefore(Variable v) { ASTNode$State state = state(); boolean isDAbefore_Variable_value = getParent().Define_boolean_isDAbefore(this, null, v); return isDAbefore_Variable_value; } // Declared in DefiniteAssignment.jrag at line 694 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUbefore(Variable v) { ASTNode$State state = state(); boolean isDUbefore_Variable_value = getParent().Define_boolean_isDUbefore(this, null, v); return isDUbefore_Variable_value; } // Declared in LookupMethod.jrag at line 23 @SuppressWarnings({"unchecked", "cast"}) public Collection lookupMethod(String name) { ASTNode$State state = state(); Collection lookupMethod_String_value = getParent().Define_Collection_lookupMethod(this, null, name); return lookupMethod_String_value; } // Declared in LookupType.jrag at line 49 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeBoolean() { ASTNode$State state = state(); TypeDecl typeBoolean_value = getParent().Define_TypeDecl_typeBoolean(this, null); return typeBoolean_value; } // Declared in LookupType.jrag at line 50 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeByte() { ASTNode$State state = state(); TypeDecl typeByte_value = getParent().Define_TypeDecl_typeByte(this, null); return typeByte_value; } // Declared in LookupType.jrag at line 51 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeShort() { ASTNode$State state = state(); TypeDecl typeShort_value = getParent().Define_TypeDecl_typeShort(this, null); return typeShort_value; } // Declared in LookupType.jrag at line 52 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeChar() { ASTNode$State state = state(); TypeDecl typeChar_value = getParent().Define_TypeDecl_typeChar(this, null); return typeChar_value; } // Declared in LookupType.jrag at line 53 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeInt() { ASTNode$State state = state(); TypeDecl typeInt_value = getParent().Define_TypeDecl_typeInt(this, null); return typeInt_value; } // Declared in LookupType.jrag at line 54 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeLong() { ASTNode$State state = state(); TypeDecl typeLong_value = getParent().Define_TypeDecl_typeLong(this, null); return typeLong_value; } // Declared in LookupType.jrag at line 55 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeFloat() { ASTNode$State state = state(); TypeDecl typeFloat_value = getParent().Define_TypeDecl_typeFloat(this, null); return typeFloat_value; } // Declared in LookupType.jrag at line 56 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeDouble() { ASTNode$State state = state(); TypeDecl typeDouble_value = getParent().Define_TypeDecl_typeDouble(this, null); return typeDouble_value; } // Declared in LookupType.jrag at line 57 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeString() { ASTNode$State state = state(); TypeDecl typeString_value = getParent().Define_TypeDecl_typeString(this, null); return typeString_value; } // Declared in LookupType.jrag at line 58 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeVoid() { ASTNode$State state = state(); TypeDecl typeVoid_value = getParent().Define_TypeDecl_typeVoid(this, null); return typeVoid_value; } // Declared in LookupType.jrag at line 59 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl typeNull() { ASTNode$State state = state(); TypeDecl typeNull_value = getParent().Define_TypeDecl_typeNull(this, null); return typeNull_value; } // Declared in LookupType.jrag at line 72 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl unknownType() { ASTNode$State state = state(); TypeDecl unknownType_value = getParent().Define_TypeDecl_unknownType(this, null); return unknownType_value; } // Declared in LookupType.jrag at line 86 @SuppressWarnings({"unchecked", "cast"}) public boolean hasPackage(String packageName) { ASTNode$State state = state(); boolean hasPackage_String_value = getParent().Define_boolean_hasPackage(this, null, packageName); return hasPackage_String_value; } // Declared in LookupType.jrag at line 95 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl lookupType(String packageName, String typeName) { ASTNode$State state = state(); TypeDecl lookupType_String_String_value = getParent().Define_TypeDecl_lookupType(this, null, packageName, typeName); return lookupType_String_String_value; } // Declared in LookupType.jrag at line 176 @SuppressWarnings({"unchecked", "cast"}) public SimpleSet lookupType(String name) { ASTNode$State state = state(); SimpleSet lookupType_String_value = getParent().Define_SimpleSet_lookupType(this, null, name); return lookupType_String_value; } // Declared in LookupVariable.jrag at line 19 @SuppressWarnings({"unchecked", "cast"}) public SimpleSet lookupVariable(String name) { ASTNode$State state = state(); SimpleSet lookupVariable_String_value = getParent().Define_SimpleSet_lookupVariable(this, null, name); return lookupVariable_String_value; } // Declared in SyntacticClassification.jrag at line 20 @SuppressWarnings({"unchecked", "cast"}) public NameType nameType() { ASTNode$State state = state(); NameType nameType_value = getParent().Define_NameType_nameType(this, null); return nameType_value; } // Declared in TypeAnalysis.jrag at line 511 @SuppressWarnings({"unchecked", "cast"}) public BodyDecl enclosingBodyDecl() { ASTNode$State state = state(); BodyDecl enclosingBodyDecl_value = getParent().Define_BodyDecl_enclosingBodyDecl(this, null); return enclosingBodyDecl_value; } // Declared in TypeAnalysis.jrag at line 568 @SuppressWarnings({"unchecked", "cast"}) public String hostPackage() { ASTNode$State state = state(); String hostPackage_value = getParent().Define_String_hostPackage(this, null); return hostPackage_value; } // Declared in TypeAnalysis.jrag at line 583 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl hostType() { ASTNode$State state = state(); TypeDecl hostType_value = getParent().Define_TypeDecl_hostType(this, null); return hostType_value; } // Declared in TypeHierarchyCheck.jrag at line 11 @SuppressWarnings({"unchecked", "cast"}) public String methodHost() { ASTNode$State state = state(); String methodHost_value = getParent().Define_String_methodHost(this, null); return methodHost_value; } // Declared in TypeHierarchyCheck.jrag at line 134 @SuppressWarnings({"unchecked", "cast"}) public boolean inStaticContext() { ASTNode$State state = state(); boolean inStaticContext_value = getParent().Define_boolean_inStaticContext(this, null); return inStaticContext_value; } // Declared in GenericMethodsInference.jrag at line 33 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl assignConvertedType() { ASTNode$State state = state(); TypeDecl assignConvertedType_value = getParent().Define_TypeDecl_assignConvertedType(this, null); return assignConvertedType_value; } // Declared in BooleanExpressions.jrag at line 48 @SuppressWarnings({"unchecked", "cast"}) public soot.jimple.Stmt condition_false_label() { ASTNode$State state = state(); soot.jimple.Stmt condition_false_label_value = getParent().Define_soot_jimple_Stmt_condition_false_label(this, null); return condition_false_label_value; } // Declared in BooleanExpressions.jrag at line 52 @SuppressWarnings({"unchecked", "cast"}) public soot.jimple.Stmt condition_true_label() { ASTNode$State state = state(); soot.jimple.Stmt condition_true_label_value = getParent().Define_soot_jimple_Stmt_condition_true_label(this, null); return condition_true_label_value; } public ASTNode rewriteTo() { return super.rewriteTo(); } }