private FieldAndGetterElements getFieldAndGetterForProperty()

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);
  }