Skip to content

Commit 37b634d

Browse files
committed
Support for resName in lib projects. androidannotations#304
1 parent 3a8d078 commit 37b634d

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

  • AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/rclass

‎AndroidAnnotations/androidannotations/src/main/java/com/googlecode/androidannotations/rclass/RInnerClass.java‎

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
package com.googlecode.androidannotations.rclass;
1717

1818
import java.util.HashMap;
19+
import java.util.HashSet;
1920
import java.util.List;
2021
import java.util.Map;
22+
import java.util.Set;
2123

2224
import javax.lang.model.element.Element;
2325
import javax.lang.model.element.TypeElement;
@@ -33,6 +35,7 @@
3335
public class RInnerClass implements IRInnerClass {
3436

3537
private final Map<Integer, String> idQualifiedNamesByIdValues = new HashMap<Integer, String>();
38+
private final Set<String> idQualifiedNames = new HashSet<String>();
3639

3740
private final String rInnerQualifiedName;
3841

@@ -48,8 +51,12 @@ public RInnerClass(TypeElement rInnerTypeElement) {
4851
for (VariableElement idField : idFields) {
4952
TypeKind fieldType = idField.asType().getKind();
5053
if (fieldType.isPrimitive() && fieldType.equals(TypeKind.INT)) {
54+
String idQualifiedName = rInnerQualifiedName + "." + idField.getSimpleName();
55+
idQualifiedNames.add(idQualifiedName);
5156
Integer idFieldId = (Integer) idField.getConstantValue();
52-
idQualifiedNamesByIdValues.put(idFieldId, rInnerQualifiedName + "." + idField.getSimpleName());
57+
if (idFieldId != null) {
58+
idQualifiedNamesByIdValues.put(idFieldId, idQualifiedName);
59+
}
5360
}
5461
}
5562
} else {
@@ -69,11 +76,11 @@ public String getIdQualifiedName(Integer idValue) {
6976

7077
@Override
7178
public boolean containsField(String name) {
72-
boolean containsField = idQualifiedNamesByIdValues.containsValue(rInnerQualifiedName + "." + name);
79+
boolean containsField = idQualifiedNames.contains(rInnerQualifiedName + "." + name);
7380

7481
if (!containsField) {
7582
String snakeCaseName = CaseHelper.camelCaseToSnakeCase(name);
76-
containsField = idQualifiedNamesByIdValues.containsValue(rInnerQualifiedName + "." + snakeCaseName);
83+
containsField = idQualifiedNames.contains(rInnerQualifiedName + "." + snakeCaseName);
7784
}
7885

7986
return containsField;
@@ -83,12 +90,12 @@ public boolean containsField(String name) {
8390
public String getIdQualifiedName(String name) {
8491
String idQualifiedName = rInnerQualifiedName + "." + name;
8592

86-
if (idQualifiedNamesByIdValues.containsValue(idQualifiedName)) {
93+
if (idQualifiedNames.contains(idQualifiedName)) {
8794
return idQualifiedName;
8895
} else {
8996
String snakeCaseName = CaseHelper.camelCaseToSnakeCase(name);
9097
idQualifiedName = rInnerQualifiedName + "." + snakeCaseName;
91-
if (idQualifiedNamesByIdValues.containsValue(idQualifiedName)) {
98+
if (idQualifiedNames.contains(idQualifiedName)) {
9299
return idQualifiedName;
93100
} else {
94101
return null;

0 commit comments

Comments
 (0)