private static String toAccessorName(@NotNull AccessorsInfo accessorsInfo,
                                       String fieldName,
                                       boolean isBoolean,
                                       String booleanPrefix,
                                       String normalPrefix) {
    final String result;

    fieldName = accessorsInfo.removePrefix(fieldName);
    if (accessorsInfo.isFluent()) {
      return fieldName;
    }

    final boolean useBooleanPrefix = isBoolean && !accessorsInfo.isDoNotUseIsPrefix();

    if (useBooleanPrefix) {
      if (fieldName.startsWith("is") && fieldName.length() > 2 && !Character.isLowerCase(fieldName.charAt(2))) {
        final String baseName = fieldName.substring(2);
        result = buildName(booleanPrefix, baseName, accessorsInfo.getCapitalizationStrategy());
      }
      else {
        result = buildName(booleanPrefix, fieldName, accessorsInfo.getCapitalizationStrategy());
      }
    }
    else {
      result = buildName(normalPrefix, fieldName, accessorsInfo.getCapitalizationStrategy());
    }
    return result;
  }
private static String toAccessorName(@NotNull AccessorsInfo accessorsInfo,
                                       String fieldName,
                                       boolean isBoolean,
                                       String booleanPrefix,
                                       String normalPrefix)