use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.
the class PrettyPrinter method visitTopLevel.
@Override
public void visitTopLevel(JCCompilationUnit tree) {
printDocComment(tree);
if (tree.pid != null) {
consumeComments(tree);
aPrint("package ");
print(tree.pid);
println(";", tree.pid);
}
boolean first = true;
for (JCTree child : tree.defs) {
if (!(child instanceof JCImport))
continue;
if (first)
println();
first = false;
print(child);
}
for (JCTree child : tree.defs) {
if (child instanceof JCImport)
continue;
print(child);
}
consumeComments(Integer.MAX_VALUE);
}
use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.
the class PrettyPrinter method print.
private void print(List<? extends JCTree> trees, String infix) {
boolean first = true;
JCTree prev = null;
for (JCTree tree : trees) {
if (suppress(tree))
continue;
if (!first && infix != null && !infix.isEmpty()) {
if ("\n".equals(infix))
println(prev);
else
print(infix);
}
first = false;
print(tree);
prev = tree;
}
}
use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.
the class PrettyPrinter method printClassMembers.
private void printClassMembers(List<JCTree> members, boolean isEnum, boolean isInterface) {
Class<?> prefType = null;
// 1 = normal, 2 = with body, 3 = no enum field yet.
int typeOfPrevEnumMember = isEnum ? 3 : 0;
boolean prevWasEnumMember = isEnum;
for (JCTree member : members) {
if (typeOfPrevEnumMember == 3 && member instanceof JCMethodDecl && (((JCMethodDecl) member).mods.flags & GENERATEDCONSTR) != 0)
continue;
boolean isEnumVar = isEnum && member instanceof JCVariableDecl && (((JCVariableDecl) member).mods.flags & ENUM) != 0;
if (!isEnumVar && prevWasEnumMember) {
prevWasEnumMember = false;
if (typeOfPrevEnumMember == 3)
align();
println(";");
}
if (isEnumVar) {
if (prefType != null && prefType != JCVariableDecl.class)
println();
switch(typeOfPrevEnumMember) {
case 1:
print(", ");
break;
case 2:
println(",");
align();
break;
}
print(member);
JCTree init = ((JCVariableDecl) member).init;
typeOfPrevEnumMember = init instanceof JCNewClass && ((JCNewClass) init).def != null ? 2 : 1;
} else if (member instanceof JCVariableDecl) {
if (prefType != null && prefType != JCVariableDecl.class)
println();
if (isInterface)
flagMod = -1L & ~(PUBLIC | STATIC | FINAL);
print(member);
} else if (member instanceof JCMethodDecl) {
if ((((JCMethodDecl) member).mods.flags & GENERATEDCONSTR) != 0)
continue;
if (prefType != null)
println();
if (isInterface)
flagMod = -1L & ~(PUBLIC | ABSTRACT);
print(member);
} else if (member instanceof JCClassDecl) {
if (prefType != null)
println();
if (isInterface)
flagMod = -1L & ~(PUBLIC | STATIC);
print(member);
} else {
if (prefType != null)
println();
print(member);
}
prefType = member.getClass();
}
if (prevWasEnumMember) {
prevWasEnumMember = false;
if (typeOfPrevEnumMember == 3)
align();
println(";");
}
}
use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.
the class PrettyPrinter method visitTypeArray.
@Override
public void visitTypeArray(JCArrayTypeTree tree) {
JCTree elem = tree.elemtype;
while (elem instanceof JCWildcard) elem = ((JCWildcard) elem).inner;
print(elem);
print("[]");
}
use of com.sun.tools.javac.tree.JCTree in project lombok by rzwitserloot.
the class JavacHandlerUtil method addAllButOne.
private static List<JCTree> addAllButOne(List<JCTree> defs, int idx) {
ListBuffer<JCTree> out = new ListBuffer<JCTree>();
int i = 0;
for (JCTree def : defs) {
if (i++ != idx)
out.append(def);
}
return out.toList();
}
Aggregations