View Javadoc
1 /*** 2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html 3 */ 4 package net.sourceforge.pmd; 5 6 import net.sourceforge.pmd.renderers.CSVRenderer; 7 import net.sourceforge.pmd.renderers.EmacsRenderer; 8 import net.sourceforge.pmd.renderers.HTMLRenderer; 9 import net.sourceforge.pmd.renderers.IDEAJRenderer; 10 import net.sourceforge.pmd.renderers.Renderer; 11 import net.sourceforge.pmd.renderers.SummaryHTMLRenderer; 12 import net.sourceforge.pmd.renderers.TextRenderer; 13 import net.sourceforge.pmd.renderers.VBHTMLRenderer; 14 import net.sourceforge.pmd.renderers.XMLRenderer; 15 import net.sourceforge.pmd.renderers.PapariTextRenderer; 16 17 public class CommandLineOptions { 18 19 private boolean debugEnabled; 20 private boolean jdk13; 21 private boolean shortNamesEnabled; 22 23 private String inputFileName; 24 private String reportFormat; 25 private String ruleSets; 26 27 private String[] args; 28 29 public CommandLineOptions(String[] args) { 30 31 if (args == null || args.length < 3) { 32 throw new RuntimeException(usage()); 33 } 34 35 inputFileName = args[0]; 36 reportFormat = args[1]; 37 ruleSets = args[2]; 38 39 this.args = args; 40 41 for (int i=0; i<args.length; i++) { 42 if (args[i].equals("-debug")) { 43 debugEnabled = true; 44 } else if (args[i].equals("-shortnames")) { 45 shortNamesEnabled = true; 46 } else if (args[i].equals("-jdk13")) { 47 jdk13 = true; 48 } 49 } 50 } 51 52 public Renderer createRenderer() { 53 if (reportFormat.equals("xml")) { 54 return new XMLRenderer(); 55 } else if (reportFormat.equals("ideaj")) { 56 return new IDEAJRenderer(args); 57 } else if (reportFormat.equals("papari")) { 58 return new PapariTextRenderer(); 59 } else if (reportFormat.equals("text")) { 60 return new TextRenderer(); 61 } else if (reportFormat.equals("emacs")) { 62 return new EmacsRenderer(); 63 } else if (reportFormat.equals("csv")) { 64 return new CSVRenderer(); 65 } else if (reportFormat.equals("html")) { 66 return new HTMLRenderer(); 67 } 68 if (reportFormat.equals("summaryhtml")) { 69 return new SummaryHTMLRenderer(); 70 } 71 if (reportFormat.equals("vbhtml")) { 72 return new VBHTMLRenderer(); 73 } 74 if (!reportFormat.equals("")) { 75 try { 76 return (Renderer)Class.forName(reportFormat).newInstance(); 77 } catch (Exception e) { 78 throw new IllegalArgumentException("Can't find the custom format " + reportFormat + ": " + e.getClass().getName()); 79 } 80 } 81 82 throw new IllegalArgumentException("Can't create report with format of " + reportFormat); 83 } 84 85 public boolean containsCommaSeparatedFileList() { 86 return inputFileName.indexOf(',') != -1; 87 } 88 89 public String getInputFileName() { 90 return this.inputFileName; 91 } 92 93 public String getReportFormat() { 94 return this.reportFormat; 95 } 96 97 public String getRulesets() { 98 return this.ruleSets; 99 } 100 101 public boolean debugEnabled() { 102 return debugEnabled; 103 } 104 105 public boolean jdk13() { 106 return jdk13; 107 } 108 109 public boolean shortNamesEnabled() { 110 return shortNamesEnabled; 111 } 112 113 public String usage() { 114 return PMD.EOL + 115 PMD.EOL + 116 "Mandatory arguments:" + PMD.EOL + 117 "1) A java source code filename or directory" + PMD.EOL + 118 "2) A report format " + PMD.EOL + 119 "3) A ruleset filename or a comma-delimited string of ruleset filenames" + PMD.EOL + 120 PMD.EOL + 121 "For example: " + PMD.EOL + 122 "c://> java -jar pmd-1.6.jar c://my//source//code html rulesets/unusedcode.xml,rulesets/imports.xml" + PMD.EOL + 123 PMD.EOL + 124 "Optional arguments that may be put after the mandatory arguments are: " + PMD.EOL + 125 "-debug: prints debugging information " + PMD.EOL + 126 "-jdk13: enables PMD to parse source code written using 'assert' as an identifier" + PMD.EOL + 127 "-shortnames: prints shortened filenames in the report" + PMD.EOL + 128 PMD.EOL + 129 "For example: " + PMD.EOL + 130 "c://> java -jar pmd-1.6.jar c://my//source//code html rulesets/unusedcode.xml,rulesets/imports.xml -jdk13 -debug" + PMD.EOL + 131 PMD.EOL; 132 } 133 } 134 135

This page was automatically generated by Maven