summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2018-05-02 12:58:51 -0600
committerJeff Sharkey <jsharkey@android.com>2018-05-02 12:58:53 -0600
commit8272936413649b1debf14ec0d78b133a65809e50 (patch)
treeea1f2c949b302345d006e90db7eb330d15910361
parent55c48ce3f2ac765949265b7c1ab8cf968b0495f0 (diff)
downloaddoclava-8272936413649b1debf14ec0d78b133a65809e50.tar.gz
Fully-qualify link labels outside current class.
This results in {@link #localMethod()} appearing as "localMethod()" and {@link OtherClass#method()} appearing as "OtherClass.method()", making it easier to understand conceptual boundaries. Bug: 71554546 Test: manual inspection Change-Id: I33a8497c047885ff88fa608c317a281c069ab68c
-rw-r--r--src/com/google/doclava/LinkReference.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/com/google/doclava/LinkReference.java b/src/com/google/doclava/LinkReference.java
index 0fb7fcb..0bfa42f 100644
--- a/src/com/google/doclava/LinkReference.java
+++ b/src/com/google/doclava/LinkReference.java
@@ -400,7 +400,14 @@ public class LinkReference {
}
}
if (result.label.length() == 0) {
- result.label = result.referencedMemberName;
+ // Qualify labels that link beyond the base context
+ final boolean beyondBase = base != null && containing != null
+ && !base.qualifiedName().equals(containing.qualifiedName());
+ if (beyondBase) {
+ result.label = containing.name() + "." + result.referencedMemberName;
+ } else {
+ result.label = result.referencedMemberName;
+ }
}
setHref(result, containing, result.memberInfo.anchor());
if (DBG) System.out.println(" ---- member reference");