String (@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; }