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 DefaultCase : {@link Case};
015     * @ast node
016     * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/java.ast:205
017     */
018    public class DefaultCase extends Case 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 DefaultCase clone() throws CloneNotSupportedException {
034        DefaultCase node = (DefaultCase)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 DefaultCase copy() {
044      
045      try {
046        DefaultCase node = (DefaultCase) 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 DefaultCase fullCopy() {
064      
065      DefaultCase tree = (DefaultCase) 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:411
082       */
083      public void nameCheck() {
084        if(bind(this) != this) {
085          error("only one default case statement allowed");
086        }
087      }
088      /**
089       * @ast method 
090       * @aspect PrettyPrint
091       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:569
092       */
093      public void toString(StringBuffer s) {
094        s.append(indent());
095        s.append("default:");
096      }
097      /**
098       * @ast method 
099       * 
100       */
101      public DefaultCase() {
102        super();
103    
104    
105      }
106      /**
107       * Initializes the child array to the correct size.
108       * Initializes List and Opt nta children.
109       * @apilevel internal
110       * @ast method
111       * @ast method 
112       * 
113       */
114      public void init$Children() {
115      }
116      /**
117       * @apilevel low-level
118       * @ast method 
119       * 
120       */
121      protected int numChildren() {
122        return 0;
123      }
124      /**
125       * @apilevel internal
126       * @ast method 
127       * 
128       */
129      public boolean mayHaveRewrite() {
130        return false;
131      }
132      /**
133       * @attribute syn
134       * @aspect NameCheck
135       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/NameCheck.jrag:431
136       */
137      public boolean constValue(Case c) {
138        ASTNode$State state = state();
139        try {  return c instanceof DefaultCase;  }
140        finally {
141        }
142      }
143      /* Type checking for case labels need not be changed as it
144        * already tests if the case labels have expressions which are
145        * assignable to the switch expression
146        * @attribute syn
147       * @aspect StringsInSwitch
148       * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/StringsInSwitch.jrag:38
149       */
150      public boolean isDefaultCase() {
151        ASTNode$State state = state();
152        try {  return true;  }
153        finally {
154        }
155      }
156      /**
157       * @apilevel internal
158       */
159      public ASTNode rewriteTo() {
160        return super.rewriteTo();
161      }
162    }