212 213 // Print superclass information if informative 214 if (kind == CLASS) { 215 TypeMirror supertype = e.getSuperclass(); 216 if (supertype.getKind() != TypeKind.NONE) { 217 TypeElement e2 = (TypeElement) 218 ((DeclaredType) supertype).asElement(); 219 if (e2.getSuperclass().getKind() != TypeKind.NONE) 220 writer.print(" extends " + supertype); 221 } 222 } 223 224 printInterfaces(e); 225 } 226 writer.println(" {"); 227 indentation++; 228 229 if (kind == ENUM) { 230 List<Element> enclosedElements = 231 new ArrayList<Element>(e.getEnclosedElements()); 232 List<Element> enumConstants = new ArrayList<Element>(); 233 for(Element element : enclosedElements) { 234 if (element.getKind() == ENUM_CONSTANT) 235 enumConstants.add(element); 236 } 237 238 int i; 239 for(i = 0; i < enumConstants.size()-1; i++) { 240 this.visit(enumConstants.get(i), true); 241 writer.print(","); 242 } 243 if (i >= 0 ) { 244 this.visit(enumConstants.get(i), true); 245 writer.print(";"); 246 } 247 248 enclosedElements.removeAll(enumConstants); 249 for(Element element : enclosedElements) 250 this.visit(element); 251 } else { 252 for(Element element : e.getEnclosedElements()) 253 this.visit(element); 254 } 255 256 indentation--; 257 indent(); 258 writer.println("}"); 259 return this; 260 } 261 262 @Override 263 public PrintingElementVisitor visitVariable(VariableElement e, Boolean newLine) { 264 ElementKind kind = e.getKind(); 265 defaultAction(e, newLine); 266 267 if (kind == ENUM_CONSTANT) 268 writer.print(e.getSimpleName()); | 212 213 // Print superclass information if informative 214 if (kind == CLASS) { 215 TypeMirror supertype = e.getSuperclass(); 216 if (supertype.getKind() != TypeKind.NONE) { 217 TypeElement e2 = (TypeElement) 218 ((DeclaredType) supertype).asElement(); 219 if (e2.getSuperclass().getKind() != TypeKind.NONE) 220 writer.print(" extends " + supertype); 221 } 222 } 223 224 printInterfaces(e); 225 } 226 writer.println(" {"); 227 indentation++; 228 229 if (kind == ENUM) { 230 List<Element> enclosedElements = 231 new ArrayList<Element>(e.getEnclosedElements()); 232 // Handle any enum constants specially before other entities. 233 List<Element> enumConstants = new ArrayList<Element>(); 234 for(Element element : enclosedElements) { 235 if (element.getKind() == ENUM_CONSTANT) 236 enumConstants.add(element); 237 } 238 if (!enumConstants.isEmpty()) { 239 int i; 240 for(i = 0; i < enumConstants.size()-1; i++) { 241 this.visit(enumConstants.get(i), true); 242 writer.print(","); 243 } 244 this.visit(enumConstants.get(i), true); 245 writer.println(";\n"); 246 247 enclosedElements.removeAll(enumConstants); 248 } 249 250 for(Element element : enclosedElements) 251 this.visit(element); 252 } else { 253 for(Element element : e.getEnclosedElements()) 254 this.visit(element); 255 } 256 257 indentation--; 258 indent(); 259 writer.println("}"); 260 return this; 261 } 262 263 @Override 264 public PrintingElementVisitor visitVariable(VariableElement e, Boolean newLine) { 265 ElementKind kind = e.getKind(); 266 defaultAction(e, newLine); 267 268 if (kind == ENUM_CONSTANT) 269 writer.print(e.getSimpleName()); |