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 * @production PackageAccess : {@link Access} ::= <span class="component"><Package:String></span>; 015 * @ast node 016 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/java.ast:29 017 */ 018 public class PackageAccess extends Access implements Cloneable { 019 /** 020 * @apilevel low-level 021 */ 022 public void flushCache() { 023 } 024 /** 025 * @apilevel internal 026 */ 027 public void flushCollectionCache() { 028 } 029 /** 030 * @apilevel internal 031 */ 032 @SuppressWarnings({"unchecked", "cast"}) 033 public PackageAccess clone() throws CloneNotSupportedException { 034 PackageAccess node = (PackageAccess)super.clone(); 035 node.in$Circle(false); 036 node.is$Final(false); 037 return node; 038 } 039 /** 040 * @apilevel internal 041 */ 042 @SuppressWarnings({"unchecked", "cast"}) 043 public PackageAccess copy() { 044 045 try { 046 PackageAccess node = (PackageAccess) clone(); 047 node.parent = null; 048 if(children != null) 049 node.children = (ASTNode[]) children.clone(); 050 051 return node; 052 } catch (CloneNotSupportedException e) { 053 throw new Error("Error: clone not supported for " + getClass().getName()); 054 } 055 056 }/** 057 * Create a deep copy of the AST subtree at this node. 058 * The copy is dangling, i.e. has no parent. 059 * @return dangling copy of the subtree at this node 060 * @apilevel low-level 061 */ 062 @SuppressWarnings({"unchecked", "cast"}) 063 public PackageAccess fullCopy() { 064 065 PackageAccess tree = (PackageAccess) copy(); 066 if (children != null) { 067 for (int i = 0; i < children.length; ++i) { 068 069 ASTNode child = (ASTNode) children[i]; 070 if(child != null) { 071 child = child.fullCopy(); 072 tree.setChild(child, i); 073 } 074 } 075 } 076 return tree; 077 078 } /** 079 * @ast method 080 * @aspect NameCheck 081 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/NameCheck.jrag:50 082 */ 083 public void nameCheck() { 084 if(!hasPackage(packageName())) { 085 error(packageName() + " not found"); 086 } 087 } 088 /** 089 * @ast method 090 * @aspect NodeConstructors 091 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/NodeConstructors.jrag:18 092 */ 093 public PackageAccess(String name, int start, int end) { 094 this(name); 095 this.start = this.Packagestart = start; 096 this.end = this.Packageend = end; 097 } 098 /** 099 * @ast method 100 * @aspect PrettyPrint 101 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:510 102 */ 103 public void toString(StringBuffer s) { 104 s.append(getPackage()); 105 } 106 /** 107 * @ast method 108 * 109 */ 110 public PackageAccess() { 111 super(); 112 113 114 } 115 /** 116 * Initializes the child array to the correct size. 117 * Initializes List and Opt nta children. 118 * @apilevel internal 119 * @ast method 120 * @ast method 121 * 122 */ 123 public void init$Children() { 124 } 125 /** 126 * @ast method 127 * 128 */ 129 public PackageAccess(String p0) { 130 setPackage(p0); 131 } 132 /** 133 * @ast method 134 * 135 */ 136 public PackageAccess(beaver.Symbol p0) { 137 setPackage(p0); 138 } 139 /** 140 * @apilevel low-level 141 * @ast method 142 * 143 */ 144 protected int numChildren() { 145 return 0; 146 } 147 /** 148 * @apilevel internal 149 * @ast method 150 * 151 */ 152 public boolean mayHaveRewrite() { 153 return false; 154 } 155 /** 156 * Replaces the lexeme Package. 157 * @param value The new value for the lexeme Package. 158 * @apilevel high-level 159 * @ast method 160 * 161 */ 162 public void setPackage(String value) { 163 tokenString_Package = value; 164 } 165 /** 166 * @apilevel internal 167 * @ast method 168 * 169 */ 170 171 /** 172 * @apilevel internal 173 */ 174 protected String tokenString_Package; 175 /** 176 * @ast method 177 * 178 */ 179 180 public int Packagestart; 181 /** 182 * @ast method 183 * 184 */ 185 186 public int Packageend; 187 /** 188 * JastAdd-internal setter for lexeme Package using the Beaver parser. 189 * @apilevel internal 190 * @ast method 191 * 192 */ 193 public void setPackage(beaver.Symbol symbol) { 194 if(symbol.value != null && !(symbol.value instanceof String)) 195 throw new UnsupportedOperationException("setPackage is only valid for String lexemes"); 196 tokenString_Package = (String)symbol.value; 197 Packagestart = symbol.getStart(); 198 Packageend = symbol.getEnd(); 199 } 200 /** 201 * Retrieves the value for the lexeme Package. 202 * @return The value for the lexeme Package. 203 * @apilevel high-level 204 * @ast method 205 * 206 */ 207 public String getPackage() { 208 return tokenString_Package != null ? tokenString_Package : ""; 209 } 210 /** 211 * @attribute syn 212 * @aspect LookupFullyQualifiedTypes 213 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:83 214 */ 215 public boolean hasQualifiedPackage(String packageName) { 216 ASTNode$State state = state(); 217 try { return hasPackage(packageName() + "." + packageName); } 218 finally { 219 } 220 } 221 /** 222 * @attribute syn 223 * @aspect TypeScopePropagation 224 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:430 225 */ 226 public SimpleSet qualifiedLookupType(String name) { 227 ASTNode$State state = state(); 228 try { 229 SimpleSet c = SimpleSet.emptySet; 230 TypeDecl typeDecl = lookupType(packageName(), name); 231 if(nextAccess() instanceof ClassInstanceExpr) { 232 if(typeDecl != null && typeDecl.accessibleFrom(hostType())) 233 c = c.add(typeDecl); 234 return c; 235 } 236 else { 237 if(typeDecl != null) { 238 if(hostType() != null && typeDecl.accessibleFrom(hostType())) 239 c = c.add(typeDecl); 240 else if(hostType() == null && typeDecl.accessibleFromPackage(hostPackage())) 241 c = c.add(typeDecl); 242 } 243 return c; 244 } 245 } 246 finally { 247 } 248 } 249 /** 250 * @attribute syn 251 * @aspect VariableScope 252 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupVariable.jrag:148 253 */ 254 public SimpleSet qualifiedLookupVariable(String name) { 255 ASTNode$State state = state(); 256 try { return SimpleSet.emptySet; } 257 finally { 258 } 259 } 260 /** 261 * @attribute syn 262 * @aspect PrettyPrint 263 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:800 264 */ 265 public String dumpString() { 266 ASTNode$State state = state(); 267 try { return getClass().getName() + " [" + getPackage() + "]"; } 268 finally { 269 } 270 } 271 /** 272 * @attribute syn 273 * @aspect Names 274 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/QualifiedNames.jrag:23 275 */ 276 public String name() { 277 ASTNode$State state = state(); 278 try { return getPackage(); } 279 finally { 280 } 281 } 282 /** 283 * @attribute syn 284 * @aspect Names 285 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/QualifiedNames.jrag:25 286 */ 287 public String packageName() { 288 ASTNode$State state = state(); 289 try { 290 StringBuffer s = new StringBuffer(); 291 if(hasPrevExpr()) { 292 s.append(prevExpr().packageName()); 293 s.append("."); 294 } 295 s.append(getPackage()); 296 return s.toString(); 297 } 298 finally { 299 } 300 } 301 /** 302 * @attribute syn 303 * @aspect AccessTypes 304 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:37 305 */ 306 public boolean isPackageAccess() { 307 ASTNode$State state = state(); 308 try { return true; } 309 finally { 310 } 311 } 312 /** 313 * @attribute syn 314 * @aspect SyntacticClassification 315 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/SyntacticClassification.jrag:56 316 */ 317 public NameType predNameType() { 318 ASTNode$State state = state(); 319 try { return NameType.PACKAGE_NAME; } 320 finally { 321 } 322 } 323 /** 324 * @attribute syn 325 * @aspect TypeHierarchyCheck 326 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeHierarchyCheck.jrag:20 327 */ 328 public boolean isUnknown() { 329 ASTNode$State state = state(); 330 try { return !hasPackage(packageName()); } 331 finally { 332 } 333 } 334 /** 335 * @attribute inh 336 * @aspect NameCheck 337 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/NameCheck.jrag:243 338 */ 339 @SuppressWarnings({"unchecked", "cast"}) 340 public boolean hasPackage(String packageName) { 341 ASTNode$State state = state(); 342 boolean hasPackage_String_value = getParent().Define_boolean_hasPackage(this, null, packageName); 343 return hasPackage_String_value; 344 } 345 /** 346 * @apilevel internal 347 */ 348 public ASTNode rewriteTo() { 349 return super.rewriteTo(); 350 } 351 }