001 /* This file was generated with JastAdd2 (http://jastadd.org) version R20130213 */ 002 package AST; 003 004 import java.util.HashSet; 005 import java.io.File; 006 import java.util.*; 007 import beaver.*; 008 import java.util.ArrayList; 009 import java.util.zip.*; 010 import java.io.*; 011 import java.io.FileNotFoundException; 012 import java.util.Collection; 013 014 /** 015 * @production ImportDecl : {@link ASTNode} ::= <span class="component">{@link Access}</span>; 016 * @ast node 017 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/java.ast:10 018 */ 019 public abstract class ImportDecl extends ASTNode<ASTNode> implements Cloneable { 020 /** 021 * @apilevel low-level 022 */ 023 public void flushCache() { 024 } 025 /** 026 * @apilevel internal 027 */ 028 public void flushCollectionCache() { 029 } 030 /** 031 * @apilevel internal 032 */ 033 @SuppressWarnings({"unchecked", "cast"}) 034 public ImportDecl clone() throws CloneNotSupportedException { 035 ImportDecl node = (ImportDecl)super.clone(); 036 node.importedTypes_String_values = null; 037 node.importedFields_String_values = null; 038 node.importedMethods_String_values = null; 039 node.in$Circle(false); 040 node.is$Final(false); 041 return node; 042 } 043 /** 044 * @ast method 045 * 046 */ 047 public ImportDecl() { 048 super(); 049 050 051 } 052 /** 053 * Initializes the child array to the correct size. 054 * Initializes List and Opt nta children. 055 * @apilevel internal 056 * @ast method 057 * @ast method 058 * 059 */ 060 public void init$Children() { 061 children = new ASTNode[1]; 062 } 063 /** 064 * @ast method 065 * 066 */ 067 public ImportDecl(Access p0) { 068 setChild(p0, 0); 069 } 070 /** 071 * @apilevel low-level 072 * @ast method 073 * 074 */ 075 protected int numChildren() { 076 return 1; 077 } 078 /** 079 * @apilevel internal 080 * @ast method 081 * 082 */ 083 public boolean mayHaveRewrite() { 084 return false; 085 } 086 /** 087 * Replaces the Access child. 088 * @param node The new node to replace the Access child. 089 * @apilevel high-level 090 * @ast method 091 * 092 */ 093 public void setAccess(Access node) { 094 setChild(node, 0); 095 } 096 /** 097 * Retrieves the Access child. 098 * @return The current node used as the Access child. 099 * @apilevel high-level 100 * @ast method 101 * 102 */ 103 public Access getAccess() { 104 return (Access)getChild(0); 105 } 106 /** 107 * Retrieves the Access child. 108 * <p><em>This method does not invoke AST transformations.</em></p> 109 * @return The current node used as the Access child. 110 * @apilevel low-level 111 * @ast method 112 * 113 */ 114 public Access getAccessNoTransform() { 115 return (Access)getChildNoTransform(0); 116 } 117 protected java.util.Map importedTypes_String_values; 118 /** 119 * @attribute syn 120 * @aspect TypeScopePropagation 121 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:322 122 */ 123 @SuppressWarnings({"unchecked", "cast"}) 124 public SimpleSet importedTypes(String name) { 125 Object _parameters = name; 126 if(importedTypes_String_values == null) importedTypes_String_values = new java.util.HashMap(4); 127 if(importedTypes_String_values.containsKey(_parameters)) { 128 return (SimpleSet)importedTypes_String_values.get(_parameters); 129 } 130 ASTNode$State state = state(); 131 int num = state.boundariesCrossed; 132 boolean isFinal = this.is$Final(); 133 SimpleSet importedTypes_String_value = importedTypes_compute(name); 134 if(isFinal && num == state().boundariesCrossed){ importedTypes_String_values.put(_parameters, importedTypes_String_value); } 135 return importedTypes_String_value; 136 } 137 /** 138 * @apilevel internal 139 */ 140 private SimpleSet importedTypes_compute(String name) { return SimpleSet.emptySet; } 141 /** 142 * @attribute syn 143 * @aspect TypeScopePropagation 144 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:351 145 */ 146 public boolean isOnDemand() { 147 ASTNode$State state = state(); 148 try { return false; } 149 finally { 150 } 151 } 152 /** 153 * @attribute syn 154 * @aspect Names 155 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/QualifiedNames.jrag:51 156 */ 157 public String typeName() { 158 ASTNode$State state = state(); 159 try { 160 Access a = getAccess().lastAccess(); 161 String name = a.isTypeAccess() ? ((TypeAccess)a).nameWithPackage() : ""; 162 while(a.hasPrevExpr() && a.prevExpr() instanceof Access) { 163 Access pred = (Access)a.prevExpr(); 164 if(pred.isTypeAccess()) 165 name = ((TypeAccess)pred).nameWithPackage() + "." + name; 166 a = pred; 167 } 168 return name; 169 } 170 finally { 171 } 172 } 173 protected java.util.Map importedFields_String_values; 174 /** 175 * @attribute syn 176 * @aspect StaticImports 177 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/StaticImports.jrag:30 178 */ 179 @SuppressWarnings({"unchecked", "cast"}) 180 public SimpleSet importedFields(String name) { 181 Object _parameters = name; 182 if(importedFields_String_values == null) importedFields_String_values = new java.util.HashMap(4); 183 if(importedFields_String_values.containsKey(_parameters)) { 184 return (SimpleSet)importedFields_String_values.get(_parameters); 185 } 186 ASTNode$State state = state(); 187 int num = state.boundariesCrossed; 188 boolean isFinal = this.is$Final(); 189 SimpleSet importedFields_String_value = importedFields_compute(name); 190 if(isFinal && num == state().boundariesCrossed){ importedFields_String_values.put(_parameters, importedFields_String_value); } 191 return importedFields_String_value; 192 } 193 /** 194 * @apilevel internal 195 */ 196 private SimpleSet importedFields_compute(String name) { return SimpleSet.emptySet; } 197 protected java.util.Map importedMethods_String_values; 198 /** 199 * @attribute syn 200 * @aspect StaticImports 201 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/StaticImports.jrag:41 202 */ 203 @SuppressWarnings({"unchecked", "cast"}) 204 public Collection importedMethods(String name) { 205 Object _parameters = name; 206 if(importedMethods_String_values == null) importedMethods_String_values = new java.util.HashMap(4); 207 if(importedMethods_String_values.containsKey(_parameters)) { 208 return (Collection)importedMethods_String_values.get(_parameters); 209 } 210 ASTNode$State state = state(); 211 int num = state.boundariesCrossed; 212 boolean isFinal = this.is$Final(); 213 Collection importedMethods_String_value = importedMethods_compute(name); 214 if(isFinal && num == state().boundariesCrossed){ importedMethods_String_values.put(_parameters, importedMethods_String_value); } 215 return importedMethods_String_value; 216 } 217 /** 218 * @apilevel internal 219 */ 220 private Collection importedMethods_compute(String name) { return Collections.EMPTY_LIST; } 221 /** 222 * @attribute inh 223 * @aspect TypeScopePropagation 224 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:349 225 */ 226 @SuppressWarnings({"unchecked", "cast"}) 227 public String packageName() { 228 ASTNode$State state = state(); 229 String packageName_value = getParent().Define_String_packageName(this, null); 230 return packageName_value; 231 } 232 /** 233 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:23 234 * @apilevel internal 235 */ 236 public boolean Define_boolean_isDest(ASTNode caller, ASTNode child) { 237 if(caller == getAccessNoTransform()) { 238 return false; 239 } 240 else { return getParent().Define_boolean_isDest(this, caller); 241 } 242 } 243 /** 244 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:32 245 * @apilevel internal 246 */ 247 public boolean Define_boolean_isSource(ASTNode caller, ASTNode child) { 248 if(caller == getAccessNoTransform()) { 249 return true; 250 } 251 else { return getParent().Define_boolean_isSource(this, caller); 252 } 253 } 254 /** 255 * @apilevel internal 256 */ 257 public ASTNode rewriteTo() { 258 return super.rewriteTo(); 259 } 260 }