private static String maybeNameFromGetterSetter(Member member) {
    if (!(member instanceof Method)) {
      return member.getName();
    }

    Method method = (Method) member;
    String name = member.getName();
    if (IS_SETTER.test(method)) {
      return DECAPITALIZE.apply(name.substring("set".length()));
    }

    if (IS_GETTER.test(method)) {
      for (String prefix: Arrays.asList("is", "get")) {
        if (name.startsWith(prefix) && name.length() > prefix.length()) {
          return DECAPITALIZE.apply(name.substring(prefix.length()));
        }
      }
    }

    return name;
  }
See 8.8 Capitalization of inferred names (JavaBean spec)
criteria/common/src/org/immutables/criteria/backend/JavaBeanNaming.java