List<String> (@NotNull String name, @NotNull String prefix, @NotNull String suffix, boolean upperCaseStyle, boolean preferLongerNames, boolean isArray) { ArrayList<String> answer = new ArrayList<>(); String[] words = NameUtilCore.nameToWords(name); for (int step = 0; step < words.length; step++) { int wordCount = preferLongerNames ? words.length - step : step + 1; String startWord = words[words.length - wordCount]; char c = startWord.charAt(0); if( c == '_' || !Character.isJavaIdentifierStart( c ) ) { continue; } answer.add(compoundSuggestion(prefix, upperCaseStyle, words, wordCount, startWord, c, isArray, true) + suffix); answer.add(compoundSuggestion(prefix, upperCaseStyle, words, wordCount, startWord, c, isArray, false) + suffix); } return answer; }