private static String getFullyQualifiedName(JCCompilationUnit tree) { Iterator<JCClassDecl> types = Iterables.filter(tree.getTypeDecls(), JCClassDecl.class).iterator(); if (types.hasNext()) { return Iterators.getOnlyElement(types).sym.getQualifiedName().toString(); } // Fallback: if no class is declared, then assume we're looking at a `package-info.java`. return tree.getPackage().packge.package_info.toString(); }
private static class SectKey { private int off; SectKey(int off) { this.off = off; } }
/************************************************************************** * Visitor methods *************************************************************************/ @Override public void visitTopLevel(JCCompilationUnit tree) { print(tree.getPackage()); List<JCTree> l = tree.defs; ArrayList<JCImport> imports = new ArrayList<JCImport>(); while (l.nonEmpty() && l.head.getTag() == JCTree.Tag.IMPORT){ imports.add((JCImport) l.head); l = l.tail; } printImportsBlock(imports, !l.isEmpty()); while (l.nonEmpty()) { printStat(l.head, true, false, false, true, false); l = l.tail; } }
protected void diffTopLevel(JCCompilationUnit oldT, JCCompilationUnit newT, int[] elementBounds) { oldTopLevel = oldT; int localPointer = diffPackage(oldT.getPackage(), newT.getPackage(), elementBounds[0]); PositionEstimator est = EstimatorFactory.imports(oldT.getImports(), newT.getImports(), diffContext); localPointer = diffList(oldT.getImports(), newT.getImports(), localPointer, est, Measure.DEFAULT, printer); est = EstimatorFactory.toplevel(oldT.getTypeDecls(), newT.getTypeDecls(), diffContext); localPointer = diffList(oldT.getTypeDecls(), newT.getTypeDecls(), localPointer, est, Measure.REAL_MEMBER, printer); checkLocalPointer(oldT, newT, localPointer); printer.print(origText.substring(localPointer)); }