in nullaway/src/main/java/com/uber/nullaway/handlers/ApacheThriftIsSetHandler.java [146:171]
private FieldAndGetterElements getFieldAndGetterForProperty(
Symbol.MethodSymbol symbol, String capPropName) {
Element field = null;
Element getter = null;
String fieldName = decapitalize(capPropName);
String getterName = "get" + capPropName;
for (Symbol elem : getEnclosedElements(symbol.owner)) {
if (elem.getKind().isField() && elem.getSimpleName().toString().equals(fieldName)) {
if (field != null) {
throw new RuntimeException("already found field " + fieldName);
}
field = elem;
} else if (elem.getKind().equals(ElementKind.METHOD)
&& elem.getSimpleName().toString().equals(getterName)) {
if (getter != null) {
throw new RuntimeException("already found getter " + getterName);
}
getter = elem;
}
}
if (field != null && field.asType().getKind().isPrimitive()) {
// ignore primitive properties
return new FieldAndGetterElements(null, null);
}
return new FieldAndGetterElements(field, getter);
}