All Downloads are FREE. Search and download functionalities are using the official Maven repository.

soot.JastAddJ.ASTNode Maven / Gradle / Ivy

/* This file was generated with JastAdd2 (http://jastadd.org) version R20130212 (r1031) */
package soot.JastAddJ;

import java.util.HashSet;
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;
/**
 * @production ASTNode;
 * @ast node
 * 
 */
public class ASTNode extends beaver.Symbol  implements Cloneable, Iterable {
  /**
   * @apilevel low-level
   */
  public void flushCache() {
  }
  /**
   * @apilevel internal
   */
  public void flushCollectionCache() {
  }
  /**
   * @apilevel internal
   */
  @SuppressWarnings({"unchecked", "cast"})
  public ASTNode clone() throws CloneNotSupportedException {
    ASTNode node = (ASTNode)super.clone();
    node.in$Circle(false);
    node.is$Final(false);
    return node;
  }
  /**
   * @apilevel internal
   */
  @SuppressWarnings({"unchecked", "cast"})
  public ASTNode copy() {
    try {
      ASTNode node = (ASTNode) clone();
      node.parent = null;
      if(children != null)
        node.children = (ASTNode[]) children.clone();
      return node;
    } catch (CloneNotSupportedException e) {
      throw new Error("Error: clone not supported for " +
        getClass().getName());
    }
  }
  /**
   * Create a deep copy of the AST subtree at this node.
   * The copy is dangling, i.e. has no parent.
   * @return dangling copy of the subtree at this node
   * @apilevel low-level
   */
  @SuppressWarnings({"unchecked", "cast"})
  public ASTNode fullCopy() {
    ASTNode tree = (ASTNode) copy();
    if (children != null) {
      for (int i = 0; i < children.length; ++i) {
        ASTNode child = (ASTNode) children[i];
        if(child != null) {
          child = child.fullCopy();
          tree.setChild(child, i);
        }
      }
    }
    return tree;
  }
  /**
   * @ast method 
   * @aspect AccessControl
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/AccessControl.jrag:125
   */
  public void accessControl() {
  }
  /**
   * @ast method 
   * @aspect AnonymousClasses
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/AnonymousClasses.jrag:202
   */
  protected void collectExceptions(Collection c, ASTNode target) {
    for(int i = 0; i < getNumChild(); i++)
      getChild(i).collectExceptions(c, target);
  }
  /**
   * @ast method 
   * @aspect BranchTarget
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/BranchTarget.jrag:44
   */
  public void collectBranches(Collection c) {
    for(int i = 0; i < getNumChild(); i++)
      getChild(i).collectBranches(c);
  }
  /**
   * @ast method 
   * @aspect BranchTarget
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/BranchTarget.jrag:150
   */
  public Stmt branchTarget(Stmt branchStmt) {
    if(getParent() != null)
      return getParent().branchTarget(branchStmt);
    else
      return null;
  }
  /**
   * @ast method 
   * @aspect BranchTarget
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/BranchTarget.jrag:190
   */
  public void collectFinally(Stmt branchStmt, ArrayList list) {
    if(getParent() != null)
      getParent().collectFinally(branchStmt, list);
  }
  /**
   * @ast method 
   * @aspect DeclareBeforeUse
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/DeclareBeforeUse.jrag:13
   */
  public int varChildIndex(Block b) {
    ASTNode node = this;
    while(node.getParent().getParent() != b) {
      node = node.getParent();
    }
    return b.getStmtListNoTransform().getIndexOfChild(node);
  }
  /**
   * @ast method 
   * @aspect DeclareBeforeUse
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/DeclareBeforeUse.jrag:31
   */
  public int varChildIndex(TypeDecl t) {
    ASTNode node = this;
    while(node != null && node.getParent() != null && node.getParent().getParent() != t) {
      node = node.getParent();
    }
    if(node == null)
      return -1;
    return t.getBodyDeclListNoTransform().getIndexOfChild(node);
  }
  /**
   * @ast method 
   * @aspect DefiniteAssignment
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:12
   */
  public void definiteAssignment() {
  }
  /**
   * @ast method 
   * @aspect DA
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:450
   */
  protected boolean checkDUeverywhere(Variable v) {
    for(int i = 0; i < getNumChild(); i++)
      if(!getChild(i).checkDUeverywhere(v))
        return false;
    return true;
  }
  /**
   * @ast method 
   * @aspect DA
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:560
   */
  protected boolean isDescendantTo(ASTNode node) {
    if(this == node)
      return true;
    if(getParent() == null)
      return false;
    return getParent().isDescendantTo(node);
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:12
   */
  protected String sourceFile() {
    ASTNode node = this;
    while(node != null && !(node instanceof CompilationUnit))
      node = node.getParent();
    if(node == null)
      return "Unknown file";
    CompilationUnit u = (CompilationUnit)node;
    return u.relativeName();
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:34
   */
  public ASTNode setLocation(ASTNode node) {
    setStart(node.getStart());
    setEnd(node.getEnd());
    return this;
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:40
   */
  public ASTNode setStart(int i) {
    start = i;
    return this;
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:44
   */
  public int start() {
    return start;
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:47
   */
  public ASTNode setEnd(int i) {
    end = i;
    return this;
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:51
   */
  public int end() {
    return end;
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:55
   */
  public String location() {
    return "" + lineNumber();
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:58
   */
  public String errorPrefix() {
    return sourceFile() + ":" + location() + ":\n" + "  *** Semantic Error: ";
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:61
   */
  public String warningPrefix() {
    return sourceFile() + ":" + location() + ":\n" + "  *** WARNING: ";
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:171
   */
  public void error(String s) {
    ASTNode node = this;
    while(node != null && !(node instanceof CompilationUnit))
      node = node.getParent();
    CompilationUnit cu = (CompilationUnit)node;
    if(getNumChild() == 0 && getStart() != 0 && getEnd() != 0) {  
      int line = getLine(getStart());
      int column = getColumn(getStart());
      int endLine = getLine(getEnd());
      int endColumn = getColumn(getEnd());
      cu.errors.add(new Problem(sourceFile(), s, line, column, endLine, endColumn, Problem.Severity.ERROR, Problem.Kind.SEMANTIC));
    }
    else
      cu.errors.add(new Problem(sourceFile(), s, lineNumber(), Problem.Severity.ERROR, Problem.Kind.SEMANTIC));
  }
  /**
   * @ast method 
   * @aspect ErrorCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:187
   */
  public void warning(String s) {
    ASTNode node = this;
    while(node != null && !(node instanceof CompilationUnit))
      node = node.getParent();
    CompilationUnit cu = (CompilationUnit)node;
    cu.warnings.add(new Problem(sourceFile(), "WARNING: " + s, lineNumber(), Problem.Severity.WARNING));
  }
  /**
   * @ast method 
   * @aspect ExceptionHandling
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ExceptionHandling.jrag:54
   */
  public void exceptionHandling() {
  }
  /**
   * @ast method 
   * @aspect ExceptionHandling
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ExceptionHandling.jrag:224
   */
  protected boolean reachedException(TypeDecl type) {
    for(int i = 0; i < getNumChild(); i++)
      if(getChild(i).reachedException(type))
        return true;
    return false;
  }
  /**
   * @ast method 
   * @aspect LookupMethod
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/LookupMethod.jrag:54
   */
  public static Collection removeInstanceMethods(Collection c) {
    c = new LinkedList(c);
    for(Iterator iter = c.iterator(); iter.hasNext(); ) {
      MethodDecl m = (MethodDecl)iter.next();
      if(!m.isStatic())
        iter.remove();
    }
    return c;
  }
  /**
   * @ast method 
   * @aspect MemberMethods
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/LookupMethod.jrag:359
   */
  protected static void putSimpleSetElement(HashMap map, Object key, Object value) {
    SimpleSet set = (SimpleSet)map.get(key);
    if(set == null) set = SimpleSet.emptySet;
    map.put(key, set.add(value));
  }
  /**
   * @ast method 
   * @aspect VariableScope
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/LookupVariable.jrag:182
   */
  public SimpleSet removeInstanceVariables(SimpleSet oldSet) {
    SimpleSet newSet = SimpleSet.emptySet;
    for(Iterator iter = oldSet.iterator(); iter.hasNext(); ) {
      Variable v = (Variable)iter.next();
      if(!v.isInstanceVariable())
        newSet = newSet.add(v);
    }
    return newSet;
  }
  /**
   * @ast method 
   * @aspect Modifiers
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/Modifiers.jrag:11
   */
  void checkModifiers() {
  }
  /**
   * @ast method 
   * @aspect NameCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/NameCheck.jrag:11
   */
  public void nameCheck() {
  }
  /**
   * @ast method 
   * @aspect NameCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/NameCheck.jrag:14
   */
  public TypeDecl extractSingleType(SimpleSet c) {
    if(c.size() != 1)
      return null;
    return (TypeDecl)c.iterator().next();
  }
  /**
   * @ast method 
   * @aspect AddOptionsToProgram
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/Options.jadd:14
   */
  public Options options() {
    return state().options;
  }
  /**
   * @ast method 
   * @aspect PrettyPrint
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:13
   */
  public String toString() {
    StringBuffer s = new StringBuffer();
    toString(s);
    return s.toString().trim();
  }
  /**
   * @ast method 
   * @aspect PrettyPrint
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:19
   */
  public void toString(StringBuffer s) {
    throw new Error("Operation toString(StringBuffer s) not implemented for " + getClass().getName());
  }
  /**
   * @ast method 
   * @aspect PrettyPrint
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:770
   */
  public String dumpTree() {
    StringBuffer s = new StringBuffer();
    dumpTree(s, 0);
    return s.toString();
  }
  /**
   * @ast method 
   * @aspect PrettyPrint
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:776
   */
  public void dumpTree(StringBuffer s, int j) {
    for(int i = 0; i < j; i++) {
      s.append("  ");
    }
    s.append(dumpString() + "\n");
    for(int i = 0; i < getNumChild(); i++)
      getChild(i).dumpTree(s, j + 1);
  }
  /**
   * @ast method 
   * @aspect PrettyPrint
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:785
   */
  public String dumpTreeNoRewrite() {
    StringBuffer s = new StringBuffer();
    dumpTreeNoRewrite(s, 0);
    return s.toString();
  }
  /**
   * @ast method 
   * @aspect PrettyPrint
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:790
   */
  protected void dumpTreeNoRewrite(StringBuffer s, int indent) {
    for(int i = 0; i < indent; i++)
      s.append("  ");
    s.append(dumpString());
    s.append("\n");
    for(int i = 0; i < getNumChildNoTransform(); i++) {
      getChildNoTransform(i).dumpTreeNoRewrite(s, indent+1);
    }
  }
  /**
   * @ast method 
   * @aspect PrimitiveTypes
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrimitiveTypes.jrag:11
   */
  
  protected static final String PRIMITIVE_PACKAGE_NAME = "@primitive";
  /**
   * @ast method 
   * @aspect TypeCheck
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/TypeCheck.jrag:12
   */
  public void typeCheck() {
  }
  /**
   * @ast method 
   * @aspect UnreachableStatements
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/UnreachableStatements.jrag:12
   */
  void checkUnreachableStmt() {
  }
  /**
   * @ast method 
   * @aspect VariableDeclarationTransformation
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:134
   */
  public void clearLocations() {
    setStart(0);
    setEnd(0);
    for(int i = 0; i < getNumChildNoTransform(); i++)
      getChildNoTransform(i).clearLocations();
  }
  /**
   * @ast method 
   * @aspect Enums
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.5Frontend/Enums.jrag:131
   */
  protected void transformEnumConstructors() {
    for(int i = 0; i < getNumChildNoTransform(); i++) {
      ASTNode child = getChildNoTransform(i);
      if(child != null)
        child.transformEnumConstructors();
    }
  }
  /**
   * @ast method 
   * @aspect Enums
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.5Frontend/Enums.jrag:444
   */
  protected void checkEnum(EnumDecl enumDecl) {
    for(int i = 0; i < getNumChild(); i++)
      getChild(i).checkEnum(enumDecl);
  }
  /**
   * @ast method 
   * @aspect FlushCaches
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Backend/FlushCaches.jrag:3
   */
  public void flushCaches() {
	    flushCache();
	    for(int i = 0; i < getNumChild(); i++)
	      getChild(i).flushCaches();
	  }
  /**
   * @ast method 
   * @aspect InnerClasses
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Backend/InnerClasses.jrag:158
   */
  public void collectEnclosingVariables(HashSet set, TypeDecl typeDecl) {
    for(int i = 0; i < getNumChild(); i++)
      getChild(i).collectEnclosingVariables(set, typeDecl);
  }
  /**
   * @ast method 
   * @aspect Transformations
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Backend/Transformations.jrag:12
   */
  public void transformation() {
    for(int i = 0; i < getNumChild(); i++) {
        getChild(i).transformation();
    }
  }
  /**
   * @ast method 
   * @aspect Transformations
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Backend/Transformations.jrag:209
   */
  protected ASTNode replace(ASTNode node) {
    state().replacePos = node.getParent().getIndexOfChild(node);
    node.getParent().in$Circle(true);
    return node.getParent();
  }
  /**
   * @ast method 
   * @aspect Transformations
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Backend/Transformations.jrag:214
   */
  protected ASTNode with(ASTNode node) {
   ((ASTNode)this).setChild(node, state().replacePos);
   in$Circle(false);
   return node;
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:60
   */
  public void jimplify1phase1() {
    for(int i = 0; i < getNumChild(); i++)
      getChild(i).jimplify1phase1();
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:137
   */
  public void jimplify1phase2() {
    for(int i = 0; i < getNumChild(); i++)
      getChild(i).jimplify1phase2();
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:366
   */
  public void jimplify2() {
    for(int i = 0; i < getNumChild(); i++)
      getChild(i).jimplify2();
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:371
   */
  public void jimplify2(Body b) {
    for(int i = 0; i < getNumChild(); i++)
      getChild(i).jimplify2(b);
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:405
   */
  public soot.Immediate asImmediate(Body b, soot.Value v) {
    if(v instanceof soot.Immediate) return (soot.Immediate)v;
    return b.newTemp(v);
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:409
   */
  public soot.Local asLocal(Body b, soot.Value v) {
    if(v instanceof soot.Local) return (soot.Local)v;
    return b.newTemp(v);
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:413
   */
  public soot.Local asLocal(Body b, soot.Value v, Type t) {
    if(v instanceof soot.Local) return (soot.Local)v;
    soot.Local local = b.newTemp(t);
    b.add(b.newAssignStmt(local, v, null));
    b.copyLocation(v, local);
    return local;
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:420
   */
  public soot.Value asRValue(Body b, soot.Value v) {
    if(v instanceof soot.Local) return v;
    if(v instanceof soot.jimple.Constant) return v;
    if(v instanceof soot.jimple.ConcreteRef) return v;
    if(v instanceof soot.jimple.Expr) return v;
    throw new Error("Need to convert " + v.getClass().getName() + " to RValue");
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:879
   */
  protected soot.jimple.Stmt newLabel() {
    return soot.jimple.Jimple.v().newNopStmt();
  }
  /**
   * @ast method 
   * @aspect EmitJimple
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/EmitJimple.jrag:959
   */
  public void addAttributes() {
  }
  /**
   * @ast method 
   * @aspect Expressions
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/Expressions.jrag:718
   */
  public static soot.Value emitConstant(Constant constant) {
    if(constant instanceof Constant.ConstantInt)
      return IntType.emitConstant(constant.intValue());
    else if(constant instanceof Constant.ConstantLong)
      return soot.jimple.LongConstant.v(constant.longValue());
    else if(constant instanceof Constant.ConstantFloat)
      return soot.jimple.FloatConstant.v(constant.floatValue());
    else if(constant instanceof Constant.ConstantDouble)
      return soot.jimple.DoubleConstant.v(constant.doubleValue());
    else if(constant instanceof Constant.ConstantChar)
      return IntType.emitConstant(constant.intValue());
    else if(constant instanceof Constant.ConstantBoolean)
      return BooleanType.emitConstant(constant.booleanValue());
    else if(constant instanceof Constant.ConstantString)
      return soot.jimple.StringConstant.v(constant.stringValue());
    throw new Error("Unexpected constant");
  }
  /**
   * @ast method 
   * @aspect Statements
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/Statements.jrag:256
   */
  public void endExceptionRange(Body b, ArrayList list) {
    if(list != null) {
      soot.jimple.Stmt label = newLabel();
      b.addLabel(label);
      list.add(label);
      //list.add(b.previousStmt());
    }
  }
  /**
   * @ast method 
   * @aspect Statements
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/Statements.jrag:264
   */
  public void beginExceptionRange(Body b, ArrayList list) {
    if(list != null)
      b.addNextStmt(list);
  }
  /**
	 * Create a deep copy of this subtree.
	 * The copy is dangling, i.e. has no parent.
	 *
	 * @return a dangling copy of the subtree at this node
	 * @ast method 
   * @aspect JastAddExtensions
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java7Frontend/JastAddExtensions.jadd:20
   */
  public ASTNode cloneSubtree() {
		try {
			ASTNode tree = (ASTNode) clone();
			tree.setParent(null);// make dangling
			if (children != null) {
				tree.children = new ASTNode[children.length];
				for (int i = 0; i < children.length; ++i) {
					if (children[i] == null) {
						tree.children[i] = null;
					} else {
						tree.children[i] = children[i].cloneSubtree();
						tree.children[i].setParent(tree);
					}
				}
			}
			return tree;
		} catch (CloneNotSupportedException e) {
			throw new Error("Error: clone not supported for " +
					getClass().getName());
		}
	}
  /**
   * @ast method 
   * @aspect UncheckedConversion
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java7Frontend/UncheckedConversion.jrag:40
   */
  public void checkUncheckedConversion(TypeDecl source, TypeDecl dest) {
    if (source.isUncheckedConversionTo(dest))
      warning("unchecked conversion from raw type "+source.typeName()+
        " to generic type "+dest.typeName());
  }
  /**
	 * Checking of the SafeVarargs annotation is only needed for method
	 * declarations.
	 * @ast method 
   * @aspect Warnings
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java7Frontend/Warnings.jadd:38
   */
  public void checkWarnings() {
	}
  /**
   * @ast method 
   * @aspect EmitJimpleRefinements
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/SootJastAddJ/EmitJimpleRefinements.jrag:197
   */
  public void collectTypesToHierarchy(Collection set) {
	 for(int i = 0; i < getNumChild(); i++)
	  getChild(i).collectTypesToHierarchy(set);
  }
  /**
   * @ast method 
   * @aspect EmitJimpleRefinements
   * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/SootJastAddJ/EmitJimpleRefinements.jrag:215
   */
  public void collectTypesToSignatures(Collection set) {
	 for(int i = 0; i < getNumChild(); i++)
	  getChild(i).collectTypesToSignatures(set);
  }
  /**
   * @ast method 
   * 
   */
  public ASTNode() {
    super();

    init$Children();

  }
  /**
   * Initializes the child array to the correct size.
   * Initializes List and Opt nta children.
   * @apilevel internal
   * @ast method
   * @ast method 
   * 
   */
  public void init$Children() {
  }
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  
  /**
   * @apilevel internal
   */
  public static final boolean generatedWithCircularEnabled = true;
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  
  /**
   * @apilevel internal
   */
  public static final boolean generatedWithCacheCycle = false;
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  
  /**
   * @apilevel internal
   */
  public static final boolean generatedWithComponentCheck = false;
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  
  /**
   * @apilevel internal
   */
  protected static ASTNode$State state = new ASTNode$State();
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  public final ASTNode$State state() { return state; }
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  
  /**
   * @apilevel internal
   */
  public boolean in$Circle = false;
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  public boolean in$Circle() { return in$Circle; }
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  public void in$Circle(boolean b) { in$Circle = b; }
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  
  /**
   * @apilevel internal
   */
  public boolean is$Final = false;
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  public boolean is$Final() { return is$Final; }
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  public void is$Final(boolean b) { is$Final = b; }
  /**
   * @apilevel low-level
   * @ast method 
   * 
   */
  @SuppressWarnings("cast") public T getChild(int i) {
    ASTNode node = this.getChildNoTransform(i);
    if(node == null) return null;
    if(node.is$Final()) {
      return (T) node;
    }
    if(!node.mayHaveRewrite()) {
      node.is$Final(this.is$Final());
      return (T) node;
    }
    if(!node.in$Circle()) {
      int rewriteState;
      int num = this.state().boundariesCrossed;
      do {
        this.state().push(ASTNode$State.REWRITE_CHANGE);
        ASTNode oldNode = node;
        oldNode.in$Circle(true);
        node = node.rewriteTo();
        if(node != oldNode) {
          this.setChild(node, i);
        }
        oldNode.in$Circle(false);
        rewriteState = this.state().pop();
      } while(rewriteState == ASTNode$State.REWRITE_CHANGE);
      if(rewriteState == ASTNode$State.REWRITE_NOCHANGE && this.is$Final()) {
        node.is$Final(true);
        this.state().boundariesCrossed = num;
      }
    }
    else if(this.is$Final() != node.is$Final()) this.state().boundariesCrossed++;
    return (T) node;
  }
  /**
   * @apilevel internal
   * @ast method 
   * 
   */
  
  /**
   * @apilevel internal
   */
  private int childIndex;
  /**
   * @apilevel low-level
   * @ast method 
   * 
   */
  public int getIndexOfChild(ASTNode node) {
    if(node != null && node.childIndex < getNumChildNoTransform() && node == getChildNoTransform(node.childIndex))
      return node.childIndex;
    for(int i = 0; i < getNumChildNoTransform(); i++)
      if(getChildNoTransform(i) == node) {
        node.childIndex = i;
        return i;
      }
    return -1;
  }
  /**
   * @apilevel low-level
   * @ast method 
   * 
   */
  public void addChild(T node) {
    setChild(node, getNumChildNoTransform());
  }
  /**
   * 

This method does not invoke AST transformations.

* @apilevel low-level * @ast method * */ @SuppressWarnings("cast") public final T getChildNoTransform(int i) { return (T) (children != null ? children[i] : null); } /** * @apilevel low-level * @ast method * */ /** * @apilevel low-level */ protected int numChildren; /** * @apilevel low-level * @ast method * */ protected int numChildren() { return numChildren; } /** * @apilevel low-level * @ast method * */ public int getNumChild() { return numChildren(); } /** *

This method does not invoke AST transformations.

* @apilevel low-level * @ast method * */ public final int getNumChildNoTransform() { return numChildren(); } /** * @apilevel low-level * @ast method * */ public void setChild(ASTNode node, int i) { if(children == null) { children = new ASTNode[i+1>4?i+1:4]; } else if (i >= children.length) { ASTNode c[] = new ASTNode[i << 1]; System.arraycopy(children, 0, c, 0, children.length); children = c; } children[i] = node; if(i >= numChildren) numChildren = i+1; if(node != null) { node.setParent(this); node.childIndex = i; } } /** * @apilevel low-level * @ast method * */ public void insertChild(ASTNode node, int i) { if(children == null) { children = new ASTNode[i+1>4?i+1:4]; children[i] = node; } else { ASTNode c[] = new ASTNode[children.length + 1]; System.arraycopy(children, 0, c, 0, i); c[i] = node; if(i < children.length) { System.arraycopy(children, i, c, i+1, children.length-i); for(int j = i+1; j < c.length; ++j) { if(c[j] != null) c[j].childIndex = j; } } children = c; } numChildren++; if(node != null) { node.setParent(this); node.childIndex = i; } } /** * @apilevel low-level * @ast method * */ public void removeChild(int i) { if(children != null) { ASTNode child = (ASTNode)children[i]; if(child != null) { child.parent = null; child.childIndex = -1; } if (this instanceof List || this instanceof Opt) { System.arraycopy(children, i+1, children, i, children.length-i-1); children[children.length-1] = null; numChildren--; for(int j = i; j < numChildren; ++j) { if(children[j] != null) { child = (ASTNode) children[j]; child.childIndex = j; } } } else { children[i] = null; } } } /** * @apilevel low-level * @ast method * */ public ASTNode getParent() { if(parent != null && ((ASTNode)parent).is$Final() != is$Final()) { state().boundariesCrossed++; } return (ASTNode)parent; } /** * @apilevel low-level * @ast method * */ public void setParent(ASTNode node) { parent = node; } /** * @apilevel low-level * @ast method * */ /** * @apilevel low-level */ protected ASTNode parent; /** * @apilevel low-level * @ast method * */ /** * @apilevel low-level */ protected ASTNode[] children; /** * @ast method * */ protected boolean duringImplicitConstructor() { if(state().duringImplicitConstructor == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringBoundNames() { if(state().duringBoundNames == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringNameResolution() { if(state().duringNameResolution == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringSyntacticClassification() { if(state().duringSyntacticClassification == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringAnonymousClasses() { if(state().duringAnonymousClasses == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringVariableDeclarationTransformation() { if(state().duringVariableDeclarationTransformation == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringLiterals() { if(state().duringLiterals == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringDU() { if(state().duringDU == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringAnnotations() { if(state().duringAnnotations == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringEnums() { if(state().duringEnums == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @ast method * */ protected boolean duringGenericTypeVariables() { if(state().duringGenericTypeVariables == 0) { return false; } else { state().pop(); state().push(ASTNode$State.REWRITE_INTERRUPT); return true; } } /** * @apilevel low-level * @ast method * */ public java.util.Iterator iterator() { return new java.util.Iterator() { private int counter = 0; public boolean hasNext() { return counter < getNumChild(); } @SuppressWarnings("unchecked") public T next() { if(hasNext()) return (T)getChild(counter++); else return null; } public void remove() { throw new UnsupportedOperationException(); } }; } /** * @apilevel internal * @ast method * */ public boolean mayHaveRewrite() { return false; } /** * The collectErrors method is refined so that it calls * the checkWarnings method on each ASTNode to report * unchecked warnings. * @ast method * @aspect Warnings * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java7Frontend/Warnings.jadd:20 */ public void collectErrors() { nameCheck(); typeCheck(); accessControl(); exceptionHandling(); checkUnreachableStmt(); definiteAssignment(); checkModifiers(); checkWarnings(); for(int i = 0; i < getNumChild(); i++) { getChild(i).collectErrors(); } } /** * @attribute syn * @aspect DU * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:1196 */ public boolean unassignedEverywhere(Variable v, TryStmt stmt) { ASTNode$State state = state(); try { for(int i = 0; i < getNumChild(); i++) { if(!getChild(i).unassignedEverywhere(v, stmt)) return false; } return true; } finally { } } /** * @attribute syn * @aspect ErrorCheck * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ErrorCheck.jrag:22 */ public int lineNumber() { ASTNode$State state = state(); try { ASTNode n = this; while(n.getParent() != null && n.getStart() == 0) { n = n.getParent(); } return getLine(n.getStart()); } finally { } } /** * @attribute syn * @aspect PrettyPrint * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:744 */ public String indent() { ASTNode$State state = state(); try { String indent = extractIndent(); return indent.startsWith("\n") ? indent : ("\n" + indent); } finally { } } /** * @attribute syn * @aspect PrettyPrint * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:749 */ public String extractIndent() { ASTNode$State state = state(); try { if(getParent() == null) return ""; String indent = getParent().extractIndent(); if(getParent().addsIndentationLevel()) indent += " "; return indent; } finally { } } /** * @attribute syn * @aspect PrettyPrint * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:758 */ public boolean addsIndentationLevel() { ASTNode$State state = state(); try { return false; } finally { } } /** * @attribute syn * @aspect PrettyPrint * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:800 */ public String dumpString() { ASTNode$State state = state(); try { return getClass().getName(); } finally { } } /** * @attribute syn * @aspect LookupParTypeDecl * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.5Frontend/Generics.jrag:1056 */ public boolean usesTypeVariable() { ASTNode$State state = state(); try { for(int i = 0; i < getNumChild(); i++) if(getChild(i).usesTypeVariable()) return true; return false; } finally { } } /** * @attribute syn * @aspect InnerClasses * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Backend/InnerClasses.jrag:88 */ public boolean isStringAdd() { ASTNode$State state = state(); try { return false; } finally { } } /** * @attribute syn * @aspect BooleanExpressions * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/JimpleBackend/BooleanExpressions.jrag:21 */ public boolean definesLabel() { ASTNode$State state = state(); try { return false; } finally { } } /** * Fetches the immediately enclosing compilation unit. * @attribute inh * @aspect Literals * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java7Frontend/Literals.jrag:451 */ @SuppressWarnings({"unchecked", "cast"}) public CompilationUnit compilationUnit() { ASTNode$State state = state(); CompilationUnit compilationUnit_value = getParent().Define_CompilationUnit_compilationUnit(this, null); return compilationUnit_value; } /** * @apilevel internal */ public ASTNode rewriteTo() { if(state().peek() == ASTNode$State.REWRITE_CHANGE) { state().pop(); state().push(ASTNode$State.REWRITE_NOCHANGE); } return this; } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_superType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_superType(this, caller); } /** * @apilevel internal */ public ConstructorDecl Define_ConstructorDecl_constructorDecl(ASTNode caller, ASTNode child) { return getParent().Define_ConstructorDecl_constructorDecl(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_componentType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_componentType(this, caller); } /** * @apilevel internal */ public LabeledStmt Define_LabeledStmt_lookupLabel(ASTNode caller, ASTNode child, String name) { return getParent().Define_LabeledStmt_lookupLabel(this, caller, name); } /** * @apilevel internal */ public boolean Define_boolean_isDest(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isDest(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isSource(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isSource(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isIncOrDec(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isIncOrDec(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isDAbefore(ASTNode caller, ASTNode child, Variable v) { return getParent().Define_boolean_isDAbefore(this, caller, v); } /** * @apilevel internal */ public boolean Define_boolean_isDUbefore(ASTNode caller, ASTNode child, Variable v) { return getParent().Define_boolean_isDUbefore(this, caller, v); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeException(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeException(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeRuntimeException(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeRuntimeException(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeError(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeError(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeNullPointerException(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeNullPointerException(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeThrowable(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeThrowable(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_handlesException(ASTNode caller, ASTNode child, TypeDecl exceptionType) { return getParent().Define_boolean_handlesException(this, caller, exceptionType); } /** * @apilevel internal */ public Collection Define_Collection_lookupConstructor(ASTNode caller, ASTNode child) { return getParent().Define_Collection_lookupConstructor(this, caller); } /** * @apilevel internal */ public Collection Define_Collection_lookupSuperConstructor(ASTNode caller, ASTNode child) { return getParent().Define_Collection_lookupSuperConstructor(this, caller); } /** * @apilevel internal */ public Expr Define_Expr_nestedScope(ASTNode caller, ASTNode child) { return getParent().Define_Expr_nestedScope(this, caller); } /** * @apilevel internal */ public Collection Define_Collection_lookupMethod(ASTNode caller, ASTNode child, String name) { return getParent().Define_Collection_lookupMethod(this, caller, name); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeObject(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeObject(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeCloneable(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeCloneable(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeSerializable(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeSerializable(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeBoolean(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeBoolean(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeByte(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeByte(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeShort(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeShort(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeChar(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeChar(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeInt(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeInt(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeLong(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeLong(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeFloat(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeFloat(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeDouble(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeDouble(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeString(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeString(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeVoid(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeVoid(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeNull(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeNull(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_unknownType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_unknownType(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_hasPackage(ASTNode caller, ASTNode child, String packageName) { return getParent().Define_boolean_hasPackage(this, caller, packageName); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_lookupType(ASTNode caller, ASTNode child, String packageName, String typeName) { return getParent().Define_TypeDecl_lookupType(this, caller, packageName, typeName); } /** * @apilevel internal */ public SimpleSet Define_SimpleSet_lookupType(ASTNode caller, ASTNode child, String name) { return getParent().Define_SimpleSet_lookupType(this, caller, name); } /** * @apilevel internal */ public SimpleSet Define_SimpleSet_lookupVariable(ASTNode caller, ASTNode child, String name) { return getParent().Define_SimpleSet_lookupVariable(this, caller, name); } /** * @apilevel internal */ public boolean Define_boolean_mayBePublic(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBePublic(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBeProtected(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBeProtected(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBePrivate(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBePrivate(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBeStatic(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBeStatic(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBeFinal(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBeFinal(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBeAbstract(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBeAbstract(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBeVolatile(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBeVolatile(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBeTransient(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBeTransient(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBeStrictfp(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBeStrictfp(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBeSynchronized(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBeSynchronized(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayBeNative(ASTNode caller, ASTNode child) { return getParent().Define_boolean_mayBeNative(this, caller); } /** * @apilevel internal */ public ASTNode Define_ASTNode_enclosingBlock(ASTNode caller, ASTNode child) { return getParent().Define_ASTNode_enclosingBlock(this, caller); } /** * @apilevel internal */ public VariableScope Define_VariableScope_outerScope(ASTNode caller, ASTNode child) { return getParent().Define_VariableScope_outerScope(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_insideLoop(ASTNode caller, ASTNode child) { return getParent().Define_boolean_insideLoop(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_insideSwitch(ASTNode caller, ASTNode child) { return getParent().Define_boolean_insideSwitch(this, caller); } /** * @apilevel internal */ public Case Define_Case_bind(ASTNode caller, ASTNode child, Case c) { return getParent().Define_Case_bind(this, caller, c); } /** * @apilevel internal */ public String Define_String_typeDeclIndent(ASTNode caller, ASTNode child) { return getParent().Define_String_typeDeclIndent(this, caller); } /** * @apilevel internal */ public NameType Define_NameType_nameType(ASTNode caller, ASTNode child) { return getParent().Define_NameType_nameType(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isAnonymous(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isAnonymous(this, caller); } /** * @apilevel internal */ public Variable Define_Variable_unknownField(ASTNode caller, ASTNode child) { return getParent().Define_Variable_unknownField(this, caller); } /** * @apilevel internal */ public MethodDecl Define_MethodDecl_unknownMethod(ASTNode caller, ASTNode child) { return getParent().Define_MethodDecl_unknownMethod(this, caller); } /** * @apilevel internal */ public ConstructorDecl Define_ConstructorDecl_unknownConstructor(ASTNode caller, ASTNode child) { return getParent().Define_ConstructorDecl_unknownConstructor(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_declType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_declType(this, caller); } /** * @apilevel internal */ public BodyDecl Define_BodyDecl_enclosingBodyDecl(ASTNode caller, ASTNode child) { return getParent().Define_BodyDecl_enclosingBodyDecl(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isMemberType(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isMemberType(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_hostType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_hostType(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_switchType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_switchType(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_returnType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_returnType(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_enclosingInstance(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_enclosingInstance(this, caller); } /** * @apilevel internal */ public String Define_String_methodHost(ASTNode caller, ASTNode child) { return getParent().Define_String_methodHost(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_inExplicitConstructorInvocation(ASTNode caller, ASTNode child) { return getParent().Define_boolean_inExplicitConstructorInvocation(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_inStaticContext(ASTNode caller, ASTNode child) { return getParent().Define_boolean_inStaticContext(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_reportUnreachable(ASTNode caller, ASTNode child) { return getParent().Define_boolean_reportUnreachable(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isMethodParameter(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isMethodParameter(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isConstructorParameter(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isConstructorParameter(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isExceptionHandlerParameter(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isExceptionHandlerParameter(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_mayUseAnnotationTarget(ASTNode caller, ASTNode child, String name) { return getParent().Define_boolean_mayUseAnnotationTarget(this, caller, name); } /** * @apilevel internal */ public ElementValue Define_ElementValue_lookupElementTypeValue(ASTNode caller, ASTNode child, String name) { return getParent().Define_ElementValue_lookupElementTypeValue(this, caller, name); } /** * @apilevel internal */ public boolean Define_boolean_withinSuppressWarnings(ASTNode caller, ASTNode child, String s) { return getParent().Define_boolean_withinSuppressWarnings(this, caller, s); } /** * @apilevel internal */ public boolean Define_boolean_withinDeprecatedAnnotation(ASTNode caller, ASTNode child) { return getParent().Define_boolean_withinDeprecatedAnnotation(this, caller); } /** * @apilevel internal */ public Annotation Define_Annotation_lookupAnnotation(ASTNode caller, ASTNode child, TypeDecl typeDecl) { return getParent().Define_Annotation_lookupAnnotation(this, caller, typeDecl); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_enclosingAnnotationDecl(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_enclosingAnnotationDecl(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_assignConvertedType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_assignConvertedType(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_inExtendsOrImplements(ASTNode caller, ASTNode child) { return getParent().Define_boolean_inExtendsOrImplements(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_typeWildcard(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_typeWildcard(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_lookupWildcardExtends(ASTNode caller, ASTNode child, TypeDecl typeDecl) { return getParent().Define_TypeDecl_lookupWildcardExtends(this, caller, typeDecl); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_lookupWildcardSuper(ASTNode caller, ASTNode child, TypeDecl typeDecl) { return getParent().Define_TypeDecl_lookupWildcardSuper(this, caller, typeDecl); } /** * @apilevel internal */ public LUBType Define_LUBType_lookupLUBType(ASTNode caller, ASTNode child, Collection bounds) { return getParent().Define_LUBType_lookupLUBType(this, caller, bounds); } /** * @apilevel internal */ public GLBType Define_GLBType_lookupGLBType(ASTNode caller, ASTNode child, ArrayList bounds) { return getParent().Define_GLBType_lookupGLBType(this, caller, bounds); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_genericDecl(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_genericDecl(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_variableArityValid(ASTNode caller, ASTNode child) { return getParent().Define_boolean_variableArityValid(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_expectedType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_expectedType(this, caller); } /** * @apilevel internal */ public soot.jimple.Stmt Define_soot_jimple_Stmt_condition_false_label(ASTNode caller, ASTNode child) { return getParent().Define_soot_jimple_Stmt_condition_false_label(this, caller); } /** * @apilevel internal */ public soot.jimple.Stmt Define_soot_jimple_Stmt_condition_true_label(ASTNode caller, ASTNode child) { return getParent().Define_soot_jimple_Stmt_condition_true_label(this, caller); } /** * @apilevel internal */ public int Define_int_localNum(ASTNode caller, ASTNode child) { return getParent().Define_int_localNum(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_enclosedByExceptionHandler(ASTNode caller, ASTNode child) { return getParent().Define_boolean_enclosedByExceptionHandler(this, caller); } /** * @apilevel internal */ public ArrayList Define_ArrayList_exceptionRanges(ASTNode caller, ASTNode child) { return getParent().Define_ArrayList_exceptionRanges(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isCatchParam(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isCatchParam(this, caller); } /** * @apilevel internal */ public CatchClause Define_CatchClause_catchClause(ASTNode caller, ASTNode child) { return getParent().Define_CatchClause_catchClause(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_resourcePreviouslyDeclared(ASTNode caller, ASTNode child, String name) { return getParent().Define_boolean_resourcePreviouslyDeclared(this, caller, name); } /** * @apilevel internal */ public ClassInstanceExpr Define_ClassInstanceExpr_getClassInstanceExpr(ASTNode caller, ASTNode child) { return getParent().Define_ClassInstanceExpr_getClassInstanceExpr(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isAnonymousDecl(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isAnonymousDecl(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isExplicitGenericConstructorAccess(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isExplicitGenericConstructorAccess(this, caller); } /** * @apilevel internal */ public CompilationUnit Define_CompilationUnit_compilationUnit(ASTNode caller, ASTNode child) { return getParent().Define_CompilationUnit_compilationUnit(this, caller); } /** * @apilevel internal */ public SimpleSet Define_SimpleSet_allImportedTypes(ASTNode caller, ASTNode child, String name) { return getParent().Define_SimpleSet_allImportedTypes(this, caller, name); } /** * @apilevel internal */ public String Define_String_packageName(ASTNode caller, ASTNode child) { return getParent().Define_String_packageName(this, caller); } /** * @apilevel internal */ public TypeDecl Define_TypeDecl_enclosingType(ASTNode caller, ASTNode child) { return getParent().Define_TypeDecl_enclosingType(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isNestedType(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isNestedType(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_isLocalClass(ASTNode caller, ASTNode child) { return getParent().Define_boolean_isLocalClass(this, caller); } /** * @apilevel internal */ public String Define_String_hostPackage(ASTNode caller, ASTNode child) { return getParent().Define_String_hostPackage(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_reachable(ASTNode caller, ASTNode child) { return getParent().Define_boolean_reachable(this, caller); } /** * @apilevel internal */ public boolean Define_boolean_inhModifiedInScope(ASTNode caller, ASTNode child, Variable var) { return getParent().Define_boolean_inhModifiedInScope(this, caller, var); } /** * @apilevel internal */ public boolean Define_boolean_reachableCatchClause(ASTNode caller, ASTNode child, TypeDecl exceptionType) { return getParent().Define_boolean_reachableCatchClause(this, caller, exceptionType); } /** * @apilevel internal */ public Collection Define_Collection_TypeDecl__caughtExceptions(ASTNode caller, ASTNode child) { return getParent().Define_Collection_TypeDecl__caughtExceptions(this, caller); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy