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; /** * @ast node * @declaredat Annotations.ast:16 */ public class AnnotatedCompilationUnit extends CompilationUnit implements Cloneable { /** * @apilevel low-level */ public void flushCache() { super.flushCache(); } /** * @apilevel internal */ public void flushCollectionCache() { super.flushCollectionCache(); } /** * @apilevel internal */ @SuppressWarnings({"unchecked", "cast"}) public AnnotatedCompilationUnit clone() throws CloneNotSupportedException { AnnotatedCompilationUnit node = (AnnotatedCompilationUnit)super.clone(); node.in$Circle(false); node.is$Final(false); return node; } /** * @apilevel internal */ @SuppressWarnings({"unchecked", "cast"}) public AnnotatedCompilationUnit copy() { try { AnnotatedCompilationUnit node = (AnnotatedCompilationUnit)clone(); if(children != null) node.children = (ASTNode[])children.clone(); return node; } catch (CloneNotSupportedException e) { } System.err.println("Error: Could not clone node of type " + getClass().getName() + "!"); return null; } /** * @apilevel low-level */ @SuppressWarnings({"unchecked", "cast"}) public AnnotatedCompilationUnit fullCopy() { AnnotatedCompilationUnit res = (AnnotatedCompilationUnit)copy(); for(int i = 0; i < getNumChildNoTransform(); i++) { ASTNode node = getChildNoTransform(i); if(node != null) node = node.fullCopy(); res.setChild(node, i); } return res; } /** * @ast method * @aspect Annotations * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.5Frontend/Annotations.jrag:21 */ public void nameCheck() { super.nameCheck(); if(!relativeName().endsWith("package-info.java")) error("package annotations should be in a file package-info.java"); } /** * @ast method * @aspect Annotations * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.5Frontend/Annotations.jrag:557 */ public void toString(StringBuffer s) { getModifiers().toString(s); super.toString(s); } /** * @ast method * @aspect AnnotationsCodegen * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddExtensions/Jimple1.5Backend/AnnotationsCodegen.jrag:11 */ public void jimplify1phase2() { super.jimplify1phase2(); ArrayList c = new ArrayList(); getModifiers().addAllAnnotations(c); for(Iterator iter = c.iterator(); iter.hasNext(); ) { soot.tagkit.Tag tag = (soot.tagkit.Tag)iter.next(); //host.addTag(tag); } } /** * @ast method * @declaredat Annotations.ast:1 */ public AnnotatedCompilationUnit() { super(); setChild(new List(), 0); setChild(new List(), 1); } /** * @ast method * @declaredat Annotations.ast:9 */ public AnnotatedCompilationUnit(java.lang.String p0, List<ImportDecl> p1, List<TypeDecl> p2, Modifiers p3) { setPackageDecl(p0); setChild(p1, 0); setChild(p2, 1); setChild(p3, 2); } /** * @ast method * @declaredat Annotations.ast:15 */ public AnnotatedCompilationUnit(beaver.Symbol p0, List<ImportDecl> p1, List<TypeDecl> p2, Modifiers p3) { setPackageDecl(p0); setChild(p1, 0); setChild(p2, 1); setChild(p3, 2); } /** * @apilevel low-level * @ast method * @declaredat Annotations.ast:24 */ protected int numChildren() { return 3; } /** * @apilevel internal * @ast method * @declaredat Annotations.ast:30 */ public boolean mayHaveRewrite() { return false; } /** * Setter for lexeme PackageDecl * @apilevel high-level * @ast method * @declaredat java.ast:5 */ public void setPackageDecl(java.lang.String value) { tokenjava_lang_String_PackageDecl = value; } /** * @ast method * @declaredat java.ast:8 */ public void setPackageDecl(beaver.Symbol symbol) { if(symbol.value != null && !(symbol.value instanceof String)) throw new UnsupportedOperationException("setPackageDecl is only valid for String lexemes"); tokenjava_lang_String_PackageDecl = (String)symbol.value; PackageDeclstart = symbol.getStart(); PackageDeclend = symbol.getEnd(); } /** * Getter for lexeme PackageDecl * @apilevel high-level * @ast method * @declaredat java.ast:19 */ public java.lang.String getPackageDecl() { return tokenjava_lang_String_PackageDecl != null ? tokenjava_lang_String_PackageDecl : ""; } /** * Setter for ImportDeclList * @apilevel high-level * @ast method * @declaredat java.ast:5 */ public void setImportDeclList(List<ImportDecl> list) { setChild(list, 0); } /** * @return number of children in ImportDeclList * @apilevel high-level * @ast method * @declaredat java.ast:12 */ public int getNumImportDecl() { return getImportDeclList().getNumChild(); } /** * Getter for child in list ImportDeclList * @apilevel high-level * @ast method * @declaredat java.ast:19 */ @SuppressWarnings({"unchecked", "cast"}) public ImportDecl getImportDecl(int i) { return (ImportDecl)getImportDeclList().getChild(i); } /** * Add element to list ImportDeclList * @apilevel high-level * @ast method * @declaredat java.ast:27 */ public void addImportDecl(ImportDecl node) { List<ImportDecl> list = (parent == null || state == null) ? getImportDeclListNoTransform() : getImportDeclList(); list.addChild(node); } /** * @apilevel low-level * @ast method * @declaredat java.ast:34 */ public void addImportDeclNoTransform(ImportDecl node) { List<ImportDecl> list = getImportDeclListNoTransform(); list.addChild(node); } /** * Setter for child in list ImportDeclList * @apilevel high-level * @ast method * @declaredat java.ast:42 */ public void setImportDecl(ImportDecl node, int i) { List<ImportDecl> list = getImportDeclList(); list.setChild(node, i); } /** * Getter for ImportDecl list. * @apilevel high-level * @ast method * @declaredat java.ast:50 */ public List<ImportDecl> getImportDecls() { return getImportDeclList(); } /** * @apilevel low-level * @ast method * @declaredat java.ast:56 */ public List<ImportDecl> getImportDeclsNoTransform() { return getImportDeclListNoTransform(); } /** * Getter for list ImportDeclList * @apilevel high-level * @ast method * @declaredat java.ast:63 */ @SuppressWarnings({"unchecked", "cast"}) public List<ImportDecl> getImportDeclList() { List<ImportDecl> list = (List<ImportDecl>)getChild(0); list.getNumChild(); return list; } /** * @apilevel low-level * @ast method * @declaredat java.ast:72 */ @SuppressWarnings({"unchecked", "cast"}) public List<ImportDecl> getImportDeclListNoTransform() { return (List<ImportDecl>)getChildNoTransform(0); } /** * Setter for TypeDeclList * @apilevel high-level * @ast method * @declaredat java.ast:5 */ public void setTypeDeclList(List<TypeDecl> list) { setChild(list, 1); } /** * @return number of children in TypeDeclList * @apilevel high-level * @ast method * @declaredat java.ast:12 */ public int getNumTypeDecl() { return getTypeDeclList().getNumChild(); } /** * Getter for child in list TypeDeclList * @apilevel high-level * @ast method * @declaredat java.ast:19 */ @SuppressWarnings({"unchecked", "cast"}) public TypeDecl getTypeDecl(int i) { return (TypeDecl)getTypeDeclList().getChild(i); } /** * Add element to list TypeDeclList * @apilevel high-level * @ast method * @declaredat java.ast:27 */ public void addTypeDecl(TypeDecl node) { List<TypeDecl> list = (parent == null || state == null) ? getTypeDeclListNoTransform() : getTypeDeclList(); list.addChild(node); } /** * @apilevel low-level * @ast method * @declaredat java.ast:34 */ public void addTypeDeclNoTransform(TypeDecl node) { List<TypeDecl> list = getTypeDeclListNoTransform(); list.addChild(node); } /** * Setter for child in list TypeDeclList * @apilevel high-level * @ast method * @declaredat java.ast:42 */ public void setTypeDecl(TypeDecl node, int i) { List<TypeDecl> list = getTypeDeclList(); list.setChild(node, i); } /** * Getter for TypeDecl list. * @apilevel high-level * @ast method * @declaredat java.ast:50 */ public List<TypeDecl> getTypeDecls() { return getTypeDeclList(); } /** * @apilevel low-level * @ast method * @declaredat java.ast:56 */ public List<TypeDecl> getTypeDeclsNoTransform() { return getTypeDeclListNoTransform(); } /** * Getter for list TypeDeclList * @apilevel high-level * @ast method * @declaredat java.ast:63 */ @SuppressWarnings({"unchecked", "cast"}) public List<TypeDecl> getTypeDeclList() { List<TypeDecl> list = (List<TypeDecl>)getChild(1); list.getNumChild(); return list; } /** * @apilevel low-level * @ast method * @declaredat java.ast:72 */ @SuppressWarnings({"unchecked", "cast"}) public List<TypeDecl> getTypeDeclListNoTransform() { return (List<TypeDecl>)getChildNoTransform(1); } /** * Setter for Modifiers * @apilevel high-level * @ast method * @declaredat Annotations.ast:5 */ public void setModifiers(Modifiers node) { setChild(node, 2); } /** * Getter for Modifiers * @apilevel high-level * @ast method * @declaredat Annotations.ast:12 */ public Modifiers getModifiers() { return (Modifiers)getChild(2); } /** * @apilevel low-level * @ast method * @declaredat Annotations.ast:18 */ public Modifiers getModifiersNoTransform() { return (Modifiers)getChildNoTransform(2); } /** * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.5Frontend/Annotations.jrag:71 * @apilevel internal */ public boolean Define_boolean_mayUseAnnotationTarget(ASTNode caller, ASTNode child, String name) { if(caller == getModifiersNoTransform()) { return name.equals("PACKAGE"); } return getParent().Define_boolean_mayUseAnnotationTarget(this, caller, name); } /** * @declaredat /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.5Frontend/Annotations.jrag:552 * @apilevel internal */ public String Define_String_hostPackage(ASTNode caller, ASTNode child) { if(caller == getModifiersNoTransform()) { return packageName(); } return super.Define_String_hostPackage(caller, child); } /** * @apilevel internal */ public ASTNode rewriteTo() { return super.rewriteTo(); } }