/** * Writes the list of classes that must be present in order to provide the non-hidden APIs known * to javadoc. * * @param filename the path to the file to write the list to */ public static void writeKeepList(String filename) { HashSet<ClassInfo> notStrippable = new HashSet<ClassInfo>(); ClassInfo[] all = Converter.allClasses(); Arrays.sort(all); // just to make the file a little more readable // If a class is public and not hidden, then it and everything it derives // from cannot be stripped. Otherwise we can strip it. for (ClassInfo cl : all) { if (cl.isPublic() && !cl.isHidden()) { cantStripThis(cl, notStrippable); } } PrintStream stream = null; try { stream = new PrintStream(filename); for (ClassInfo cl : notStrippable) { stream.println(getPrintableName(cl)); } } catch (FileNotFoundException e) { System.err.println("error writing file: " + filename); } finally { if (stream != null) { stream.close(); } } }