String (@NotNull String singularName, @NotNull BuilderInfo info) { final String codeBlockTemplate = "if (this.{0}" + LOMBOK_KEY + " == null) '{' \n" + "this.{0}" + LOMBOK_KEY + " = new java.util.ArrayList<{3}>(); \n" + "this.{0}" + LOMBOK_VALUE + " = new java.util.ArrayList<{4}>(); \n" + "'}' \n" + "this.{0}" + LOMBOK_KEY + ".add({1}" + KEY + ");\n" + "this.{0}" + LOMBOK_VALUE + ".add({1}" + VALUE + ");\n" + "return {2};"; final PsiType keyType = getKeyType(info.getManager(), info.getFieldType()); final PsiType valueType = getValueType(info.getManager(), info.getFieldType()); return MessageFormat.format(codeBlockTemplate, info.getFieldName(), singularName, info.getBuilderChainResult(), keyType.getCanonicalText(false), valueType.getCanonicalText(false)); }