diff options
Diffstat (limited to 'src/com/google/doclava/apicheck/ApiCheck.java')
-rw-r--r-- | src/com/google/doclava/apicheck/ApiCheck.java | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/com/google/doclava/apicheck/ApiCheck.java b/src/com/google/doclava/apicheck/ApiCheck.java index 28d7ce0..9698c89 100644 --- a/src/com/google/doclava/apicheck/ApiCheck.java +++ b/src/com/google/doclava/apicheck/ApiCheck.java @@ -23,6 +23,7 @@ import java.io.InputStream; import java.io.PrintStream; import java.net.URL; import java.util.ArrayList; +import java.util.HashSet; import java.util.Set; import java.util.Stack; @@ -39,7 +40,8 @@ public class ApiCheck { for (i = 0; i < allArgs.size(); i++) { // flags with one value attached String flag = allArgs.get(i); - if (flag.equals("-error") || flag.equals("-warning") || flag.equals("-hide")) { + if (flag.equals("-error") || flag.equals("-warning") || flag.equals("-hide") + || flag.equals("-ignoreClass") || flag.equals("-ignorePackage")) { String[] arg = new String[2]; arg[0] = flag; arg[1] = allArgs.get(++i); @@ -81,6 +83,11 @@ public class ApiCheck { args.add(a); } + // Not having having any classes or packages ignored is the common case. + // Avoid a hashCode call in a common loop by not passing in a HashSet in this case. + Set<String> ignoredPackages = null; + Set<String> ignoredClasses = null; + ArrayList<String[]> flags = ApiCheck.parseFlags(args); for (String[] a : flags) { if (a[0].equals("-error") || a[0].equals("-warning") || a[0].equals("-hide")) { @@ -98,6 +105,16 @@ public class ApiCheck { System.err.println("Bad argument: " + a[0] + " " + a[1]); return new Report(2, Errors.getErrors()); } + } else if (a[0].equals("-ignoreClass")) { + if (ignoredClasses == null) { + ignoredClasses = new HashSet<String>(); + } + ignoredClasses.add(a[1]); + } else if (a[0].equals("-ignorePackage")) { + if (ignoredPackages == null) { + ignoredPackages = new HashSet<String>(); + } + ignoredPackages.add(a[1]); } } @@ -121,11 +138,11 @@ public class ApiCheck { // only run the consistency check if we haven't had XML parse errors if (!Errors.hadError) { - oldApi.isConsistent(newApi); + oldApi.isConsistent(newApi, ignoredPackages, ignoredClasses); } if (!Errors.hadError) { - oldRemovedApi.isConsistent(newRemovedApi); + oldRemovedApi.isConsistent(newRemovedApi, ignoredPackages, ignoredClasses); } return new Report(Errors.hadError ? 1 : 0, Errors.getErrors()); |