code: private static boolean isApplicable(Method method, Property property, boolean strict, boolean acceptPrefixless) {
          if (!method.getReturnType().isAssignableFrom(property.getTypeRef())) {
              return false;
          }
  
          String capitalized = capitalizeFirst(property.getName());
          if (method.getName().endsWith(GET_PREFIX + capitalized)) {
              return true;
          }
  
          if (method.getName().endsWith(IS_PREFIX + capitalized)) {
              return true;
          }
  
          if (method.getName().endsWith(SHOULD_PREFIX + capitalized)) {
              return true;
          }
  
          if (acceptPrefixless && method.getName().endsWith(property.getName())) {
              return true;
          }
  
          if (!strict) {
              if (method.getName().endsWith(GET_PREFIX + property.getNameCapitalized())) {
                  return true;
              }
  
              if (method.getName().endsWith(IS_PREFIX + property.getNameCapitalized())) {
                  return true;
              }
  
  
              //Some frameworks/tools consider valid getters cases like: get$ref() (e.g. jsonschema2pojo).
              if (method.getName().endsWith(GET_PREFIX + property.getName()) && !Character.isAlphabetic(property.getName().charAt(0))) {
                  return true;
              }
  
              if (method.getName().endsWith(IS_PREFIX + property.getName()) && !Character.isAlphabetic(property.getName().charAt(0))) {
                  return true;
              }
  
              if (method.getName().endsWith(SHOULD_PREFIX + property.getName()) && !Character.isAlphabetic(property.getName().charAt(0))) {
                  return true;
              }
  
          }
          return false;
      }
docs: Returns true if method is a getter of property.
  In strict mode it will not strip non-alphanumeric characters.