class Fabric8NameHelper extends NameHelper {

  private static final Map<String, String> PROTECTED_WORD_MAP = new HashMap<>();
  static {
    PROTECTED_WORD_MAP.put("class", "className");
  }
  private static final Pattern SINGLE_LETTER_PREFIX_WORD_PROPERTY = Pattern.compile("^[a-z]((-[a-zA-Z])|[A-Z])(.*)$");

  public Fabric8NameHelper(GenerationConfig generationConfig) {
    super(generationConfig);
  }

  @Override
  public String getFieldName(String propertyName, JsonNode node) {
    final String fieldName = super.getFieldName(propertyName, node);
    return PROTECTED_WORD_MAP.getOrDefault(fieldName, fieldName);
  }

  @Override
  public String getGetterName(String propertyName, JType type, JsonNode node) {
    return correctCamelCaseWithPrefix(propertyName, super.getGetterName(propertyName, type, node));
  }

  @Override
  public String getSetterName(String propertyName, JsonNode node) {
    return correctCamelCaseWithPrefix(propertyName, super.getSetterName(propertyName, node));
  }

  static String correctCamelCaseWithPrefix(String propertyName, String functionName) {<FILL_FUNCTION_BODY>}
}

    final Matcher m = SINGLE_LETTER_PREFIX_WORD_PROPERTY.matcher(propertyName);
    if (m.matches()) {
      // https://github.com/joelittlejohn/jsonschema2pojo/issues/1028 + Sundr.io expecting the opposite (setXKubernetes... instead of setxKubernetes)
      return functionName.substring(0, 3) + functionName.substring(3, 4).toUpperCase() + functionName.substring(4);
    }
    return functionName;
  
<no_super_class>