aboutsummaryrefslogtreecommitdiff
path: root/processor/src/main/java/org/robolectric/annotation/processing/validator/ImplementsValidator.java
diff options
context:
space:
mode:
Diffstat (limited to 'processor/src/main/java/org/robolectric/annotation/processing/validator/ImplementsValidator.java')
-rw-r--r--processor/src/main/java/org/robolectric/annotation/processing/validator/ImplementsValidator.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/processor/src/main/java/org/robolectric/annotation/processing/validator/ImplementsValidator.java b/processor/src/main/java/org/robolectric/annotation/processing/validator/ImplementsValidator.java
index e1186b9c4..ee4de7ae5 100644
--- a/processor/src/main/java/org/robolectric/annotation/processing/validator/ImplementsValidator.java
+++ b/processor/src/main/java/org/robolectric/annotation/processing/validator/ImplementsValidator.java
@@ -173,19 +173,23 @@ public class ImplementsValidator extends Validator {
AnnotationValue classNameAttr,
TypeElement shadowPickerTypeElement) {
- String sdkClassName;
+ String sdkClassNameFq;
if (valueAttr == null) {
- sdkClassName = Helpers.getAnnotationStringValue(classNameAttr).replace('$', '.');
+ sdkClassNameFq = Helpers.getAnnotationStringValue(classNameAttr);
} else {
- sdkClassName = Helpers.getAnnotationTypeMirrorValue(valueAttr).toString();
+ TypeMirror typeMirror = Helpers.getAnnotationTypeMirrorValue(valueAttr);
+ TypeElement typeElement = MoreElements.asType(types.asElement(typeMirror));
+ sdkClassNameFq = elements.getBinaryName(typeElement).toString();
}
// there's no such type at the current SDK level, so just use strings...
// getQualifiedName() uses Outer.Inner and we want Outer$Inner, so:
String name = getClassFQName(shadowType);
- modelBuilder.addExtraShadow(sdkClassName, name);
+ // SHADOW_MAP currently uses class dot syntax for keys, but SHADOW_PICKER_MAP uses
+ // FQ syntax for keys.
+ modelBuilder.addExtraShadow(sdkClassNameFq.replace('$', '.'), name);
if (shadowPickerTypeElement != null) {
- modelBuilder.addExtraShadowPicker(sdkClassName, shadowPickerTypeElement);
+ modelBuilder.addExtraShadowPicker(sdkClassNameFq, shadowPickerTypeElement);
}
}