001    /* This file was generated with JastAdd2 (http://jastadd.org) version 2.1.13-12-g880e696 */
002    package org.extendj.ast;
003    
004    import java.util.HashSet;
005    import java.io.File;
006    import java.util.Set;
007    import java.util.Collections;
008    import java.util.Collection;
009    import java.util.ArrayList;
010    import beaver.*;
011    import java.util.*;
012    import java.io.ByteArrayOutputStream;
013    import java.io.PrintStream;
014    import java.lang.reflect.InvocationTargetException;
015    import java.lang.reflect.Method;
016    import org.jastadd.util.*;
017    import java.util.zip.*;
018    import java.io.*;
019    import org.jastadd.util.PrettyPrintable;
020    import org.jastadd.util.PrettyPrinter;
021    import java.io.FileNotFoundException;
022    import java.io.BufferedInputStream;
023    import java.io.DataInputStream;
024    /**
025     * @ast node
026     * @declaredat /home/jesper/git/extendj/java4/grammar/Java.ast:95
027     * @production MemberTypeDecl : {@link MemberDecl};
028    
029     */
030    public abstract class MemberTypeDecl extends MemberDecl implements Cloneable {
031      /**
032       * @declaredat ASTNode:1
033       */
034      public MemberTypeDecl() {
035        super();
036      }
037      /**
038       * Initializes the child array to the correct size.
039       * Initializes List and Opt nta children.
040       * @apilevel internal
041       * @ast method
042       * @declaredat ASTNode:10
043       */
044      public void init$Children() {
045      }
046      /**
047       * @apilevel low-level
048       * @declaredat ASTNode:15
049       */
050      protected int numChildren() {
051        return 0;
052      }
053      /**
054       * @apilevel internal
055       * @declaredat ASTNode:21
056       */
057      public boolean mayHaveRewrite() {
058        return false;
059      }
060      /**
061       * @apilevel internal
062       * @declaredat ASTNode:27
063       */
064      public void flushAttrCache() {
065        super.flushAttrCache();
066      }
067      /**
068       * @apilevel internal
069       * @declaredat ASTNode:33
070       */
071      public void flushCollectionCache() {
072        super.flushCollectionCache();
073      }
074      /**
075       * @apilevel internal
076       * @declaredat ASTNode:39
077       */
078      public void flushRewriteCache() {
079        super.flushRewriteCache();
080      }
081      /**
082       * @apilevel internal
083       * @declaredat ASTNode:45
084       */
085      public MemberTypeDecl clone() throws CloneNotSupportedException {
086        MemberTypeDecl node = (MemberTypeDecl) super.clone();
087        return node;
088      }
089      /**
090       * Create a deep copy of the AST subtree at this node.
091       * The copy is dangling, i.e. has no parent.
092       * @return dangling copy of the subtree at this node
093       * @apilevel low-level
094       * @deprecated Please use treeCopy or treeCopyNoTransform instead
095       * @declaredat ASTNode:56
096       */
097      @Deprecated
098      public abstract MemberTypeDecl fullCopy();
099      /**
100       * Create a deep copy of the AST subtree at this node.
101       * The copy is dangling, i.e. has no parent.
102       * @return dangling copy of the subtree at this node
103       * @apilevel low-level
104       * @declaredat ASTNode:64
105       */
106      public abstract MemberTypeDecl treeCopyNoTransform();
107      /**
108       * Create a deep copy of the AST subtree at this node.
109       * The subtree of this node is traversed to trigger rewrites before copy.
110       * The copy is dangling, i.e. has no parent.
111       * @return dangling copy of the subtree at this node
112       * @apilevel low-level
113       * @declaredat ASTNode:72
114       */
115      public abstract MemberTypeDecl treeCopy();
116      /**
117       * @attribute syn
118       * @aspect TypeScopePropagation
119       * @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:604
120       */
121      @ASTNodeAnnotation.Attribute
122      public abstract TypeDecl typeDecl();
123      /**
124       * @attribute syn
125       * @aspect TypeScopePropagation
126       * @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:599
127       */
128      @ASTNodeAnnotation.Attribute
129      public boolean declaresType(String name) {
130        boolean declaresType_String_value = typeDecl().name().equals(name);
131    
132        return declaresType_String_value;
133      }
134      /**
135       * @attribute syn
136       * @aspect TypeScopePropagation
137       * @declaredat /home/jesper/git/extendj/java4/frontend/LookupType.jrag:601
138       */
139      @ASTNodeAnnotation.Attribute
140      public TypeDecl type(String name) {
141        TypeDecl type_String_value = declaresType(name) ? typeDecl() : null;
142    
143        return type_String_value;
144      }
145      /**
146       * @attribute syn
147       * @aspect Modifiers
148       * @declaredat /home/jesper/git/extendj/java4/frontend/Modifiers.jrag:263
149       */
150      @ASTNodeAnnotation.Attribute
151      public boolean isStatic() {
152        boolean isStatic_value = typeDecl().isStatic();
153    
154        return isStatic_value;
155      }
156      /**
157       * @attribute syn
158       * @aspect Annotations
159       * @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:356
160       */
161      @ASTNodeAnnotation.Attribute
162      public boolean hasAnnotationSuppressWarnings(String annot) {
163        boolean hasAnnotationSuppressWarnings_String_value = typeDecl().hasAnnotationSuppressWarnings(annot);
164    
165        return hasAnnotationSuppressWarnings_String_value;
166      }
167      /**
168       * @attribute syn
169       * @aspect Annotations
170       * @declaredat /home/jesper/git/extendj/java5/frontend/Annotations.jrag:398
171       */
172      @ASTNodeAnnotation.Attribute
173      public boolean isDeprecated() {
174        boolean isDeprecated_value = typeDecl().isDeprecated();
175    
176        return isDeprecated_value;
177      }
178      /**
179       * @attribute syn
180       * @aspect GenericsParTypeDecl
181       * @declaredat /home/jesper/git/extendj/java5/frontend/GenericsParTypeDecl.jrag:90
182       */
183      @ASTNodeAnnotation.Attribute
184      public boolean visibleTypeParameters() {
185        boolean visibleTypeParameters_value = !isStatic();
186    
187        return visibleTypeParameters_value;
188      }
189      /**
190       * @return true if the modifier list includes the SafeVarargs annotation
191       * @attribute syn
192       * @aspect SafeVarargs
193       * @declaredat /home/jesper/git/extendj/java7/frontend/SafeVarargs.jrag:42
194       */
195      @ASTNodeAnnotation.Attribute
196      public boolean hasAnnotationSafeVarargs() {
197        boolean hasAnnotationSafeVarargs_value = typeDecl().hasAnnotationSafeVarargs();
198    
199        return hasAnnotationSafeVarargs_value;
200      }
201      /**
202       * @apilevel internal
203       */
204      public ASTNode rewriteTo() {
205        return super.rewriteTo();
206      }
207    }