private static @Nullable NameAndIsSetter getPropertyData(@NotNull String methodName) {
    String part = "";
    boolean isSetter = false;
    if (methodName.startsWith("get")) {
      part = methodName.substring(3);
    }
    else if (methodName.startsWith("is")) {
      part = methodName.substring(2);
    }
    else if (methodName.startsWith("set")) {
      part = methodName.substring(3);
      isSetter = true;
    }

    if (part.isEmpty()) {
      return null;
    }

    int suffixIndex = part.indexOf('$');
    if (suffixIndex > 0) {
      // ignore special kotlin properties
      if (part.endsWith("$annotations")) {
        return null;
      }
      // see XmlSerializerTest.internalVar
      part = part.substring(0, suffixIndex);
    }
    return new NameAndIsSetter(decapitalize(part), isSetter);
  }
private static @Nullable NameAndIsSetter getPropertyData(@NotNull String methodName)