summaryrefslogtreecommitdiffstats
path: root/src/com/google/doclava/apicheck/ApiCheck.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/google/doclava/apicheck/ApiCheck.java')
-rw-r--r--src/com/google/doclava/apicheck/ApiCheck.java23
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());