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 }