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    }