summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFlorian Uunk <feuunk@google.com>2014-06-25 17:01:21 +0100
committerFlorian Uunk <feuunk@google.com>2014-06-25 17:01:21 +0100
commit53d13be6dc155a3d7ae0607f3eafc2c3b98a909f (patch)
tree9fdcef0078f6cf85601ddbc9443dc3973000d8f0 /src
parent39be9e8470ac38baab65cfe8d7e3fa61640ea275 (diff)
downloadandroid_external_doclava-53d13be6dc155a3d7ae0607f3eafc2c3b98a909f.tar.gz
android_external_doclava-53d13be6dc155a3d7ae0607f3eafc2c3b98a909f.tar.bz2
android_external_doclava-53d13be6dc155a3d7ae0607f3eafc2c3b98a909f.zip
Fixes for generating APIs that use external libraries.
Two fixes: - Add stubs for interfaces that are outside of the codebase - Consider interfaces that are outside of the codebase for API consistency Change-Id: Ia4c5a7ec92d169d519d7d580ae36dd60f480dabc
Diffstat (limited to 'src')
-rw-r--r--src/com/google/doclava/ClassInfo.java2
-rw-r--r--src/com/google/doclava/apicheck/ApiInfo.java11
2 files changed, 9 insertions, 4 deletions
diff --git a/src/com/google/doclava/ClassInfo.java b/src/com/google/doclava/ClassInfo.java
index 3cda7ec..7ab7a6a 100644
--- a/src/com/google/doclava/ClassInfo.java
+++ b/src/com/google/doclava/ClassInfo.java
@@ -1730,7 +1730,7 @@ public class ClassInfo extends DocInfo implements ContainerInfo, Comparable, Sco
if (qualifiedName().equals(iface)) {
return true;
}
- for (ClassInfo clImplements : interfaces()) {
+ for (ClassInfo clImplements : realInterfaces()) {
if (clImplements.implementsInterface(iface)) {
return true;
}
diff --git a/src/com/google/doclava/apicheck/ApiInfo.java b/src/com/google/doclava/apicheck/ApiInfo.java
index 11d6f8f..711a9f4 100644
--- a/src/com/google/doclava/apicheck/ApiInfo.java
+++ b/src/com/google/doclava/apicheck/ApiInfo.java
@@ -46,7 +46,12 @@ public class ApiInfo {
continue;
}
for (String iface : ifaces) {
- cl.addInterface(mAllClasses.get(iface));
+ ClassInfo ci = mAllClasses.get(iface);
+ if (ci == null) {
+ // Interface not provided by this codebase. Inject a stub.
+ ci = new ClassInfo(iface);
+ }
+ cl.addInterface(ci);
}
}
}
@@ -78,11 +83,11 @@ public class ApiInfo {
public HashMap<String, PackageInfo> getPackages() {
return mPackages;
}
-
+
protected void mapClassToSuper(ClassInfo classInfo, String superclass) {
mClassToSuper.put(classInfo, superclass);
}
-
+
protected void mapClassToInterface(ClassInfo classInfo, String iface) {
if (!mClassToInterface.containsKey(classInfo)) {
mClassToInterface.put(classInfo, new ArrayList<String>());