196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Projectpackage jdiff; 296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Projectimport java.io.*; 496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Projectimport java.util.*; 596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Projectimport com.sun.javadoc.*; 696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project/** 896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * Class to handle options for JDiff. 996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * 1096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * See the file LICENSE.txt for copyright details. 1196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * @author Matthew Doar, mdoar@pobox.com 1296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project */ 1396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Projectpublic class Options { 1496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 1596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Default constructor. */ 1696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public Options() { 1796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 1896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 1996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** 2096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * Returns the "length" of a given option. If an option takes no 2196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * arguments, its length is one. If it takes one argument, its 2296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * length is two, and so on. This method is called by Javadoc to 2396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * parse the options it does not recognize. It then calls 2496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * {@link #validOptions} to validate them. 2596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * <blockquote> 2696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * <b>Note:</b><br> 2796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * The options arrive as case-sensitive strings. For options that 2896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * are not case-sensitive, use toLowerCase() on the option string 2996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * before comparing it. 3096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * </blockquote> 3196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * 3296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * @param option a String containing an option 3396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * @return an int telling how many components that option has 3496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project */ 3596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public static int optionLength(String option) { 3696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project String opt = option.toLowerCase(); 3796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 3896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Standard options 3996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-authorid")) return 2; 4096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-versionid")) return 2; 4196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-d")) return 2; 4296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-classlist")) return 1; 4396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-title")) return 2; 4496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-docletid")) return 1; 4596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-evident")) return 2; 4696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-skippkg")) return 2; 4796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-skipclass")) return 2; 4896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-execdepth")) return 2; 4996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-help")) return 1; 5096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-version")) return 1; 5196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-package")) return 1; 5296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-protected")) return 1; 5396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-public")) return 1; 5496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-private")) return 1; 5596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-sourcepath")) return 2; 5696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 5796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Options to control JDiff 5896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-apiname")) return 2; 5996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-oldapi")) return 2; 6096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-newapi")) return 2; 6196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 6296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Options to control the location of the XML files 6396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-apidir")) return 2; 6496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-oldapidir")) return 2; 6596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-newapidir")) return 2; 6696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-usercommentsdir")) return 2; 6796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 6896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 6996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Options for the exclusion level for classes and members 7096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-excludeclass")) return 2; 7196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-excludemember")) return 2; 7296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 7396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-firstsentence")) return 1; 7496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-docchanges")) return 1; 7596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-packagesonly")) return 1; 7696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-showallchanges")) return 1; 7796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 7896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Option to change the location for the existing Javadoc 7996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // documentation for the new API. Default is "../" 8096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-javadocnew")) return 2; 8196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Option to change the location for the existing Javadoc 8296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // documentation for the old API. Default is null. 8396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-javadocold")) return 2; 8496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 8596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-baseuri")) return 2; 8696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 8796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Option not to suggest comments at all 8896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-nosuggest")) return 2; 8996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 9096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Option to enable checking that the comments end with a period. 9196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-checkcomments")) return 1; 9296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Option to retain non-printing characters in comments. 9396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-retainnonprinting")) return 1; 9496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Option for the name of the exclude tag 9596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-excludetag")) return 2; 9696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Generate statistical output 9796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-stats")) return 1; 9896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 9996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Set the browser window title 10096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-windowtitle")) return 2; 10196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // Set the report title 10296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (opt.equals("-doctitle")) return 2; 10396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 10496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return 0; 10596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project }//optionLength() 10696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 10796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** 10896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * After parsing the available options using {@link #optionLength}, 10996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * Javadoc invokes this method with an array of options-arrays, where 11096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * the first item in any array is the option, and subsequent items in 11196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * that array are its arguments. So, if -print is an option that takes 11296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * no arguments, and -copies is an option that takes 1 argument, then 11396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * <pre> 11496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * -print -copies 3 11596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * </pre> 11696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * produces an array of arrays that looks like: 11796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * <pre> 11896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * option[0][0] = -print 11996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * option[1][0] = -copies 12096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * option[1][1] = 3 12196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * </pre> 12296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * (By convention, command line switches start with a "-", but 12396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * they don't have to.) 12496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * <p> 12596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * <b>Note:</b><br> 12696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * Javadoc passes <i>all</i>parameters to this method, not just 12796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * those that Javadoc doesn't recognize. The only way to 12896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * identify unexpected arguments is therefore to check for every 12996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * Javadoc parameter as well as doclet parameters. 13096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * 13196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * @param options an array of String arrays, one per option 13296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * @param reporter a DocErrorReporter for generating error messages 13396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * @return true if no errors were found, and all options are 13496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * valid 13596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project */ 13696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public static boolean validOptions(String[][] options, 13796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project DocErrorReporter reporter) { 13896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project final DocErrorReporter errOut = reporter; 13996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 14096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // A nice object-oriented way of handling errors. An instance of this 14196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // class puts out an error message and keeps track of whether or not 14296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project // an error was found. 14396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project class ErrorHandler { 14496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project boolean noErrorsFound = true; 14596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project void msg(String msg) { 14696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project noErrorsFound = false; 14796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project errOut.printError(msg); 14896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 14996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 15096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 15196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project ErrorHandler err = new ErrorHandler(); 15296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (trace) 15396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.out.println("Command line arguments: "); 15496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project for (int i = 0; i < options.length; i++) { 15596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project for (int j = 0; j < options[i].length; j++) { 15696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project Options.cmdOptions += " " + options[i][j]; 15796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (trace) 15896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.out.print(" " + options[i][j]); 15996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 16096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 16196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (trace) 16296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.out.println(); 16396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 16496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project for (int i = 0; i < options.length; i++) { 16596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-apiname")) { 16696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 16796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No version identifier specified after -apiname option."); 16896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else if (JDiff.compareAPIs) { 16996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("Use the -apiname option, or the -oldapi and -newapi options, but not both."); 17096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 17196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project String filename = options[i][1]; 17296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.apiIdentifier = filename; 17396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project filename = filename.replace(' ', '_'); 17496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.outputFileName = filename + ".xml"; 17596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.writeXML = true; 17696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.compareAPIs = false; 17796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 17896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 17996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 18096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-apidir")) { 18196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 18296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No directory specified after -apidir option."); 18396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 18496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.outputDirectory = options[i][1]; 18596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 18696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 18796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 18896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-oldapi")) { 18996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 19096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No version identifier specified after -oldapi option."); 19196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else if (JDiff.writeXML) { 19296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("Use the -apiname or -oldapi option, but not both."); 19396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 19496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project String filename = options[i][1]; 19596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project filename = filename.replace(' ', '_'); 19696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.oldFileName = filename + ".xml"; 19796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.writeXML = false; 19896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.compareAPIs = true; 19996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 20096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 20196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 20296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-oldapidir")) { 20396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 20496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No directory specified after -oldapidir option."); 20596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 20696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.oldDirectory = options[i][1]; 20796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 20896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 20996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 21096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-newapi")) { 21196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 21296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No version identifier specified after -newapi option."); 21396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else if (JDiff.writeXML) { 21496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("Use the -apiname or -newapi option, but not both."); 21596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 21696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project String filename = options[i][1]; 21796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project filename = filename.replace(' ', '_'); 21896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.newFileName = filename + ".xml"; 21996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.writeXML = false; 22096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.compareAPIs = true; 22196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 22296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 22396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 22496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-newapidir")) { 22596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 22696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No directory specified after -newapidir option."); 22796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 22896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project JDiff.newDirectory = options[i][1]; 22996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 23096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 23196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 23296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-usercommentsdir")) { 23396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 23496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("Android: No directory specified after -usercommentsdir option."); 23596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 23696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.commentsDir = options[i][1]; 23796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 23896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 23996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 24096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-d")) { 24196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 24296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No directory specified after -d option."); 24396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 24496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.outputDir = options[i][1]; 24596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 24696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 24796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 24896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-javadocnew")) { 24996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 25096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No location specified after -javadocnew option."); 25196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 25296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.newDocPrefix = options[i][1]; 25396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 25496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 25596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 25696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-javadocold")) { 25796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 25896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No location specified after -javadocold option."); 25996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 26096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.oldDocPrefix = options[i][1]; 26196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 26296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 26396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 26496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-baseuri")) { 26596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 26696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No base location specified after -baseURI option."); 26796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 26896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.baseURI = options[i][1]; 26996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 27096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 27196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 27296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-excludeclass")) { 27396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 27496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No level (public|protected|package|private) specified after -excludeclass option."); 27596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 27696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project String level = options[i][1]; 27796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (level.compareTo("public") != 0 && 27896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project level.compareTo("protected") != 0 && 27996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project level.compareTo("package") != 0 && 28096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project level.compareTo("private") != 0) { 28196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("Level specified after -excludeclass option must be one of (public|protected|package|private)."); 28296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 28396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.classVisibilityLevel = level; 28496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 28596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 28696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 28796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 28896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-excludemember")) { 28996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 29096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No level (public|protected|package|private) specified after -excludemember option."); 29196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 29296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project String level = options[i][1]; 29396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (level.compareTo("public") != 0 && 29496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project level.compareTo("protected") != 0 && 29596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project level.compareTo("package") != 0 && 29696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project level.compareTo("private") != 0) { 29796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("Level specified after -excludemember option must be one of (public|protected|package|private)."); 29896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 29996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.memberVisibilityLevel = level; 30096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 30196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 30296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 30396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 30496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-firstsentence")) { 30596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.saveAllDocs = false; 30696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 30796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 30896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-docchanges")) { 30996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.reportDocChanges = true; 31096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project Diff.noDocDiffs = false; 31196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 31296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 31396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-packagesonly")) { 31496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.packagesOnly = true; 31596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 31696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 31796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-showallchanges")) { 31896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project Diff.showAllChanges = true; 31996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 32096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 32196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-nosuggest")) { 32296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 32396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No level (all|remove|add|change) specified after -nosuggest option."); 32496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 32596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project String level = options[i][1]; 32696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (level.compareTo("all") != 0 && 32796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project level.compareTo("remove") != 0 && 32896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project level.compareTo("add") != 0 && 32996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project level.compareTo("change") != 0) { 33096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("Level specified after -nosuggest option must be one of (all|remove|add|change)."); 33196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 33296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (level.compareTo("removal") == 0) 33396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.noCommentsOnRemovals = true; 33496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project else if (level.compareTo("add") == 0) 33596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.noCommentsOnAdditions = true; 33696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project else if (level.compareTo("change") == 0) 33796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.noCommentsOnChanges = true; 33896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project else if (level.compareTo("all") == 0) { 33996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.noCommentsOnRemovals = true; 34096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.noCommentsOnAdditions = true; 34196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.noCommentsOnChanges = true; 34296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 34396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 34496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 34596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 34696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 34796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-checkcomments")) { 34896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project APIHandler.checkIsSentence = true; 34996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 35096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 35196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-retainnonprinting")) { 35296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.stripNonPrintables = false; 35396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 35496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 35596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-excludetag")) { 35696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 35796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No exclude tag specified after -excludetag option."); 35896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 35996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.excludeTag = options[i][1]; 36096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.excludeTag = RootDocToXML.excludeTag.trim(); 36196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project RootDocToXML.doExclude = true; 36296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 36396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 36496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 36596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-stats")) { 36696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.doStats = true; 36796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 36896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 36996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-doctitle")) { 37096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 37196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No HTML text specified after -doctitle option."); 37296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 37396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.docTitle = options[i][1]; 37496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 37596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 37696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 37796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-windowtitle")) { 37896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i].length < 2) { 37996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("No text specified after -windowtitle option."); 38096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } else { 38196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project HTMLReportGenerator.windowTitle = options[i][1]; 38296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 38396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project continue; 38496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 38596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-version")) { 38696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.out.println("JDiff version: " + JDiff.version); 38796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.exit(0); 38896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 38996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (options[i][0].toLowerCase().equals("-help")) { 39096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project usage(); 39196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.exit(0); 39296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 39396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project }//for 39496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (!JDiff.writeXML && !JDiff.compareAPIs) { 39596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("First use the -apiname option to generate an XML file for one API."); 39696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("Then use the -apiname option again to generate another XML file for a different version of the API."); 39796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project err.msg("Finally use the -oldapi option and -newapi option to generate a report about how the APIs differ."); 39896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 39996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return err.noErrorsFound; 40096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project }// validOptions() 40196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 40296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Display the arguments for JDiff. */ 40396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public static void usage() { 40496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println("JDiff version: " + JDiff.version); 40596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(""); 40696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println("Valid JDiff arguments:"); 40796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(""); 40896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -apiname <Name of a version>"); 40996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -oldapi <Name of a version>"); 41096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -newapi <Name of a version>"); 41196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 41296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" Optional Arguments"); 41396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(); 41496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -d <directory> Destination directory for output HTML files"); 41596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -oldapidir <directory> Location of the XML file for the old API"); 41696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -newapidir <directory> Location of the XML file for the new API"); 41796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -sourcepath <location of Java source files>"); 41896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -javadocnew <location of existing Javadoc files for the new API>"); 41996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -javadocold <location of existing Javadoc files for the old API>"); 42096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -usercommentsdir <directory> Path to dir containing the user_comments* file(s)"); 42196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 42296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -baseURI <base> Use \"base\" as the base location of the various DTDs and Schemas used by JDiff"); 42396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -excludeclass [public|protected|package|private] Exclude classes which are not public, protected etc"); 42496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -excludemember [public|protected|package|private] Exclude members which are not public, protected etc"); 42596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 42696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -firstsentence Save only the first sentence of each comment block with the API."); 42796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -docchanges Report changes in Javadoc comments between the APIs"); 42896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -nosuggest [all|remove|add|change] Do not add suggested comments to all, or the removed, added or chabged sections"); 42996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -checkcomments Check that comments are sentences"); 43096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -stripnonprinting Remove non-printable characters from comments."); 43196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -excludetag <tag> Define the Javadoc tag which implies exclusion"); 43296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -stats Generate statistical output"); 43396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(" -help (generates this output)"); 43496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println(""); 43596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project System.err.println("For more help, see jdiff.html"); 43696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 43796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 43896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** All the options passed on the command line. Logged to XML. */ 43996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public static String cmdOptions = ""; 44096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 44196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Set to enable increased logging verbosity for debugging. */ 44296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project private static boolean trace = false; 44396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project} 444