home *** CD-ROM | disk | FTP | other *** search
- package sun.tools.javadoc;
-
- import java.io.File;
- import java.io.IOException;
- import java.text.MessageFormat;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.MissingResourceException;
- import java.util.ResourceBundle;
- import java.util.Vector;
- import sun.tools.java.ClassDeclaration;
- import sun.tools.java.ClassDefinition;
- import sun.tools.java.ClassFile;
- import sun.tools.java.ClassPath;
- import sun.tools.java.Constants;
- import sun.tools.java.FieldDefinition;
- import sun.tools.java.Identifier;
- import sun.tools.java.Package;
- import sun.tools.javac.BatchEnvironment;
- import sun.tools.javac.SourceClass;
- import sun.tools.tree.Node;
- import sun.tools.util.ModifierFilter;
-
- public final class Main implements Constants {
- public static final String program = "javadoc";
- public static BatchEnvironment env;
- public static File destDir;
- public static DocumentationGenerator generator;
- public static boolean showAuthors;
- public static boolean showVersion;
- public static boolean showPackage;
- public static ModifierFilter showAccess = new ModifierFilter(5L);
- public static boolean showDeprecated = true;
- public static boolean showIndex = true;
- public static boolean showTree = true;
- private static ResourceBundle messageRB;
-
- static void error(String var0) {
- System.out.println("javadoc: " + var0);
- if (env != null) {
- ++env.nerrors;
- }
-
- }
-
- static void initResource() {
- try {
- messageRB = ResourceBundle.getBundle("sun.tools.javadoc.resources.javadoc");
- } catch (MissingResourceException var0) {
- throw new Error("Fatal: Resource for javadoc is missing");
- }
- }
-
- public static String getText(String var0) {
- return getText(var0, (String)null);
- }
-
- public static String getText(String var0, int var1) {
- return getText(var0, Integer.toString(var1), (String)null);
- }
-
- public static String getText(String var0, String var1) {
- return getText(var0, var1, (String)null);
- }
-
- public static String getText(String var0, String var1, String var2) {
- return getText(var0, var1, var2, (String)null);
- }
-
- public static String getText(String var0, String var1, String var2, String var3) {
- if (messageRB == null) {
- initResource();
- }
-
- try {
- String var4 = messageRB.getString(var0);
- String[] var5 = new String[]{var1, var2, var3};
- return MessageFormat.format(var4, var5);
- } catch (MissingResourceException var6) {
- throw new Error("Fatal: Resource for javadoc is broken. There is no " + var0 + " key in resource.");
- }
- }
-
- static void exit() {
- byte var0 = 0;
- if (env == null) {
- var0 = 1;
- } else {
- env.flushErrors();
- if (env.nerrors > 0) {
- if (env.nerrors > 1) {
- System.out.print(getText("main.errors", env.nerrors));
- } else {
- System.out.print(getText("main.error", env.nerrors));
- }
-
- if (env.nwarnings > 0) {
- if (env.nwarnings > 1) {
- System.out.print(getText("main.warnings", env.nwarnings));
- } else {
- System.out.print(getText("main.warning", env.nwarnings));
- }
- }
-
- System.out.println();
- var0 = 1;
- } else if (env.nwarnings > 0) {
- if (env.nwarnings > 1) {
- System.out.print(getText("main.warnings", env.nwarnings));
- } else {
- System.out.print(getText("main.warning", env.nwarnings));
- }
- }
- }
-
- System.exit(var0);
- }
-
- static void usage() {
- System.out.println(getText("main.usage"));
- }
-
- public static void main(String[] var0) {
- String var1 = System.getProperty("java.class.path");
- int var2 = 4;
- long var3 = System.currentTimeMillis();
- Vector var5 = new Vector();
- Vector var6 = new Vector();
- String var7 = "HTML";
- String var8 = null;
- String var9 = null;
- var2 |= 256;
-
- for(int var10 = 0; var10 < var0.length; ++var10) {
- String var11 = var0[var10];
- if (var11.equals("-verbose")) {
- var2 |= 1;
- } else if (var11.equals("-version")) {
- showVersion = true;
- } else if (var11.equals("-nodeprecated")) {
- showDeprecated = false;
- } else if (!var11.equals("-author") && !var11.equals("-authors")) {
- if (var11.equals("-private")) {
- showAccess = new ModifierFilter(-9223372036854775801L);
- } else if (var11.equals("-package")) {
- showAccess = new ModifierFilter(-9223372036854775803L);
- } else if (var11.equals("-protected")) {
- showAccess = new ModifierFilter(5L);
- } else if (var11.equals("-public")) {
- showAccess = new ModifierFilter(1L);
- } else if (!var11.equals("-sourcepath") && !var11.equals("-classpath")) {
- if (var11.equals("-doctype")) {
- if (var10 + 1 < var0.length) {
- ++var10;
- var7 = var0[var10];
- } else {
- error(getText("main.requires_argument", "-docType"));
- usage();
- exit();
- }
- } else if (var11.equals("-noindex")) {
- showIndex = false;
- } else if (var11.equals("-notree")) {
- showTree = false;
- } else if (var11.equals("-d")) {
- if (var10 + 1 < var0.length) {
- ++var10;
- destDir = new File(var0[var10]);
- if (!destDir.exists()) {
- error(getText("main.does_not_exist", destDir.getPath()));
- exit();
- }
- } else {
- error(getText("main.requires_argument", "-d"));
- usage();
- exit();
- }
- } else if (var11.equals("-encoding")) {
- if (var10 + 1 < var0.length) {
- ++var10;
- var8 = var0[var10];
- } else {
- error(getText("main.requires_argument", "-encoding"));
- usage();
- exit();
- }
- } else if (var11.equals("-docencoding")) {
- if (var10 + 1 < var0.length) {
- ++var10;
- var9 = var0[var10];
- } else {
- error(getText("main.requires_argument", "-docencoding"));
- usage();
- exit();
- }
- } else if (var11.startsWith("-")) {
- error(getText("main.invalid_flag", var11));
- usage();
- exit();
- } else if (var11.endsWith(".java") && var11.indexOf(46) == var11.length() - 5) {
- var6.addElement(var11);
- } else {
- var5.addElement(var11);
- }
- } else if (var10 + 1 < var0.length) {
- ++var10;
- var1 = var0[var10];
- } else {
- error(getText("main.requires_argument", var11));
- usage();
- exit();
- }
- } else {
- showAuthors = true;
- }
- }
-
- if (var5.size() == 0 && var6.size() == 0) {
- error(getText("main.No_packages_or_classes_specified"));
- usage();
- exit();
- }
-
- if (var1 == null) {
- var1 = ".";
- }
-
- ClassPath var33 = new ClassPath(var1);
- env = new BatchEnvironment(var33);
- BatchEnvironment var10000 = env;
- var10000.flags |= var2;
- env.setCharacterEncoding(var8);
-
- try {
- Class var12 = Class.forName("sun.tools.javadoc." + var7 + "DocumentationGenerator");
- generator = (DocumentationGenerator)var12.newInstance();
- } catch (Exception var28) {
- System.out.println(getText("main.Cannot_generate", var7));
- return;
- }
-
- try {
- Enumeration var34 = var6.elements();
-
- while(var34.hasMoreElements()) {
- File var13 = new File((String)var34.nextElement());
-
- try {
- env.parseFile(new ClassFile(var13));
- } catch (IOException var27) {
- env.error(0, "cant.read", var13.getPath());
- }
- }
-
- Vector var35 = new Vector();
- Enumeration var14 = env.getClasses();
-
- while(var14.hasMoreElements()) {
- ClassDeclaration var15 = (ClassDeclaration)var14.nextElement();
- ClassDefinition var16 = var15.getClassDefinition();
- if (var15.isDefined() && var16 instanceof SourceClass && showAccess.checkClass(var16)) {
- var35.addElement(var15);
- }
- }
-
- Vector var36 = (Vector)var35.clone();
- Hashtable var37 = new Hashtable();
- Enumeration var17 = var5.elements();
-
- while(var17.hasMoreElements()) {
- Identifier var18 = Identifier.lookup((String)var17.nextElement());
- Package var19 = new Package(var33, var18);
- boolean var20 = false;
- Enumeration var21 = var19.getSourceFiles();
-
- while(var21.hasMoreElements()) {
- if (!var20) {
- System.out.println(getText("main.Loading_source_files_for", var18.toString()));
- var20 = true;
- }
-
- ClassFile var22 = (ClassFile)var21.nextElement();
-
- try {
- env.parseFile(var22);
- } catch (IOException var26) {
- env.error(0, "cant.read", var22.getPath());
- }
- }
-
- if (!var20) {
- System.out.println(getText("main.Warning_No_source_files_for_package", var18.toString()));
- } else {
- Enumeration var42 = env.getClasses();
-
- while(var42.hasMoreElements()) {
- ClassDeclaration var23 = (ClassDeclaration)var42.nextElement();
- ClassDefinition var24 = var23.getClassDefinition();
- if (var23.isDefined() && !var24.isSynthetic() && var24 instanceof SourceClass && showAccess.checkClass(var24)) {
- var36.addElement(var23);
- }
-
- if (var24 != null && var37.get(var23) == null) {
- for(FieldDefinition var25 = var24.getFirstField(); var25 != null; var25 = var25.getNextField()) {
- if (var25.isMethod() && var25.getValue() != null) {
- var25.setValue((Node)null);
- }
- }
-
- var37.put(var23, var23);
- }
- }
- }
- }
-
- if (var9 == null) {
- var9 = var8;
- }
-
- generator.init(var36, var9);
- generator.genPackagesDocumentation(var5);
- Enumeration var38 = var5.elements();
-
- while(var38.hasMoreElements()) {
- Identifier var39 = Identifier.lookup((String)var38.nextElement());
- generator.genPackageDocumentation(var39);
- env.flushErrors();
- }
-
- Enumeration var40 = var35.elements();
-
- while(var40.hasMoreElements()) {
- ClassDeclaration var41 = (ClassDeclaration)var40.nextElement();
- generator.genClassDocumentation(var41, (ClassDeclaration)null, (ClassDeclaration)null);
- env.flushErrors();
- }
-
- if (showIndex) {
- System.out.println(getText("main.Generating_index"));
- generator.genFieldIndex();
- }
-
- if (showTree) {
- System.out.println(getText("main.Generating_tree"));
- generator.genClassTree();
- }
- } catch (Error var29) {
- ((Throwable)var29).printStackTrace();
- env.error(0, "fatal.error");
- env.flushErrors();
- System.exit(1);
- } catch (Exception var30) {
- ((Throwable)var30).printStackTrace();
- env.error(0, "fatal.exception");
- env.flushErrors();
- System.exit(1);
- }
-
- if (env.verbose()) {
- var3 = System.currentTimeMillis() - var3;
- System.out.println(getText("main.done_in", Long.toString(var3)));
- }
-
- exit();
- }
- }
-