private void writeIndent() throws IOException { lineLength += indentSize(); for (int i = 0; i < indent; i++) { writer.write(IDENT_STRING); } }
private void writeClassImpl(CodeTypeElement e) { for (AnnotationMirror annotation : e.getAnnotationMirrors()) { visitAnnotation(e, annotation); writeLn(); writeModifiers(e.getModifiers(), true); if (e.getKind() == ElementKind.ENUM) { write("enum "); } else { write("class "); write(e.getSimpleName()); if (e.getSuperclass() != null && !getQualifiedName(e.getSuperclass()).equals("java.lang.Object")) { write(" extends ").write(useImport(e, e.getSuperclass())); write(" implements "); for (int i = 0; i < e.getImplements().size(); i++) { write(useImport(e, e.getImplements().get(i))); if (i < e.getImplements().size() - 1) { write(", "); write(" {").writeLn(); writeEmptyLn(); indent(1); List<VariableElement> staticFields = getStaticFields(e); List<VariableElement> instanceFields = getInstanceFields(e); field.accept(this, null); if (e.getKind() == ElementKind.ENUM && i < staticFields.size() - 1) {
@Override public Void visitExecutable(CodeExecutableElement e, Void p) { for (AnnotationMirror annotation : e.getAnnotationMirrors()) { visitAnnotation(e, annotation); writeLn(); writeModifiers(e.getModifiers(), !e.getEnclosingClass().getModifiers().contains(Modifier.FINAL)); write(useImport(e, e.getReturnType())); write(" "); write(e.getSimpleName()); write("("); param.accept(this, p); if (i < e.getParameters().size() - 1) { write(", "); write(")"); write(" throws "); for (int i = 0; i < throwables.size(); i++) { write(useImport(e, throwables.get(i))); if (i < throwables.size() - 1) { write(", "); writeLn(";"); } else if (e.getBodyTree() != null) { writeLn(" {"); indent(1);
if (children != null) { for (int i = 0; i < children.size(); i++) { visitTree(children.get(i), p, enclosingElement); if (i < e.getEnclosedElements().size() - 1) { write(", "); break; case INDENT: indent(1); super.visitTree(e, p, enclosingElement); dedent(1); break; case NEW_LINE: writeLn(); break; case STRING: if (e.getString() != null) { write(e.getString()); } else { write("null"); write(imports.createStaticFieldReference(enclosingElement, e.getType(), e.getString())); } else { write("null"); write(imports.createStaticMethodReference(enclosingElement, e.getType(), e.getString())); } else { write("null");
visitAnnotation(f, annotation); write(" "); write(f.getSimpleName()); if (init != null) { write("("); visitTree(init, p, f); write(")"); writeModifiers(f.getModifiers(), true); varType = ((ArrayType) varType).getComponentType(); write(useImport(f, varType)); write("..."); } else { write(useImport(f, varType)); write(" "); write(f.getSimpleName()); if (init != null) { write(" = "); visitTree(init, p, f);
private void visitAnnotation(Element enclosedElement, AnnotationMirror e) { write("@").write(useImport(enclosedElement, e.getAnnotationType())); write("("); final ExecutableElement defaultElement = findExecutableElement(e.getAnnotationType(), "value"); visitAnnotationValue(enclosedElement, values.get(defaultElement)); } else { Set<? extends ExecutableElement> methodsSet = values.keySet(); ExecutableElement method = methodsList.get(i); AnnotationValue value = values.get(method); write(method.getSimpleName().toString()); write(" = "); visitAnnotationValue(enclosedElement, value); write(", "); write(")");
@Override public Void visitType(CodeTypeElement e, Void p) { if (e.isTopLevelClass()) { Writer w = null; try { imports = OrganizedImports.organize(e); w = new TrimTrailingSpaceWriter(createWriter(e)); writer = w; writeRootClass(e); } catch (IOException ex) { throw new RuntimeException(ex); } finally { if (w != null) { try { w.close(); } catch (Throwable e1) { // see eclipse bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=361378 // TODO temporary suppress errors on close. } } writer = null; } } else { writeClassImpl(e); } return null; }
private void writeClassImpl(CodeTypeElement e) { for (AnnotationMirror annotation : e.getAnnotationMirrors()) { visitAnnotation(e, annotation); writeLn(); writeModifiers(e.getModifiers(), true); if (e.getKind() == ElementKind.ENUM) { write("enum "); } else { write("class "); write(e.getSimpleName()); if (e.getSuperclass() != null && !getQualifiedName(e.getSuperclass()).equals("java.lang.Object")) { write(" extends ").write(useImport(e, e.getSuperclass())); write(" implements "); for (int i = 0; i < e.getImplements().size(); i++) { write(useImport(e, e.getImplements().get(i))); if (i < e.getImplements().size() - 1) { write(", "); write(" {").writeLn(); writeEmptyLn(); indent(1); List<VariableElement> staticFields = getStaticFields(e); List<VariableElement> instanceFields = getInstanceFields(e); field.accept(this, null); if (e.getKind() == ElementKind.ENUM && i < staticFields.size() - 1) {
@Override public Void visitExecutable(CodeExecutableElement e, Void p) { for (AnnotationMirror annotation : e.getAnnotationMirrors()) { visitAnnotation(e, annotation); writeLn(); writeModifiers(e.getModifiers(), !e.getEnclosingClass().getModifiers().contains(Modifier.FINAL)); write("<"); for (int i = 0; i < typeParameters.size(); i++) { TypeParameterElement param = typeParameters.get(i); write(param.getSimpleName().toString()); List<? extends TypeMirror> bounds = param.getBounds(); if (!bounds.isEmpty()) { write(" extends "); for (int j = 0; j < bounds.size(); j++) { TypeMirror bound = bounds.get(i); write(useImport(e, bound)); if (j < bounds.size() - 1) { write(" "); write(", "); write(" "); write(", "); write("> "); write(useImport(e, e.getReturnType())); write(" ");
if (children != null) { for (int i = 0; i < children.size(); i++) { visitTree(children.get(i), p, enclosingElement); if (i < e.getEnclosedElements().size() - 1) { write(", "); break; case INDENT: indent(1); super.visitTree(e, p, enclosingElement); dedent(1); break; case NEW_LINE: writeLn(); break; case STRING: if (e.getString() != null) { write(e.getString()); } else { write("null"); write(imports.createStaticFieldReference(enclosingElement, e.getType(), e.getString())); } else { write("null"); write(imports.createStaticMethodReference(enclosingElement, e.getType(), e.getString())); } else { write("null");
visitAnnotation(f, annotation); write(" "); write(f.getSimpleName()); if (init != null) { write("("); visitTree(init, p, f); write(")"); writeModifiers(f.getModifiers(), true); varType = ((ArrayType) varType).getComponentType(); write(useImport(f, varType)); write("..."); } else { write(useImport(f, varType)); write(" "); write(f.getSimpleName()); if (init != null) { write(" = "); visitTree(init, p, f);
private void visitAnnotation(Element enclosedElement, AnnotationMirror e) { write("@").write(useImport(enclosedElement, e.getAnnotationType())); write("("); final ExecutableElement defaultElement = findExecutableElement(e.getAnnotationType(), "value"); visitAnnotationValue(enclosedElement, values.get(defaultElement)); } else { Set<? extends ExecutableElement> methodsSet = values.keySet(); ExecutableElement method = methodsList.get(i); AnnotationValue value = values.get(method); write(method.getSimpleName().toString()); write(" = "); visitAnnotationValue(enclosedElement, value); write(", "); write(")");
try { imports = OrganizedImports.organize(e); w = new TrimTrailingSpaceWriter(createWriter(e)); writer = w; writeRootClass(e); } catch (IOException ex) { if (ex instanceof FilerException) { writeClassImpl(e);
private void writeIndent() throws IOException { lineLength += indentSize(); for (int i = 0; i < indent; i++) { writer.write(IDENT_STRING); } }