From 63abcdc97d5805fd5b5eb87506e961e813e77d25 Mon Sep 17 00:00:00 2001 From: "Maxim.Medvedev" Date: Fri, 21 Oct 2011 12:46:13 +0400 Subject: [PATCH] fix toString templates. Default template should overload a user's one with the same name --- .../tostring/template/DefaultBuffer.vm | 2 +- .../tostring/template/DefaultBuilder.vm | 2 +- .../tostring/template/TemplatesManager.java | 21 +++++++++++++------ 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultBuffer.vm b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultBuffer.vm index 24906bdbffb1..7c4f30828d8b 100644 --- a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultBuffer.vm +++ b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultBuffer.vm @@ -17,7 +17,7 @@ $member.name=")## #if ($member.primitiveArray) .append($member.name == null ? "null" : ""); for (int i = 0; $member.name != null && i < $member.name .length; ++i) - sb.append(i == 0 ? "" : ", ").append($member.name[i]); + sb.append(i == 0 ? "" : ", ").append($member.name[$i]); #elseif ($member.objectArray) .append($member.name == null ? "null" : Arrays.asList($member.name).toString()); #elseif ($member.string) diff --git a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultBuilder.vm b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultBuilder.vm index 2654d0ce945a..e424555dbf64 100644 --- a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultBuilder.vm +++ b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultBuilder.vm @@ -17,7 +17,7 @@ $member.name=")## #if ($member.primitiveArray) .append($member.name == null ? "null" : ""); for (int i = 0; $member.name != null && i < $member.name .length; ++i) - sb.append(i == 0 ? "" : ", ").append($member.name[i]); + sb.append(i == 0 ? "" : ", ").append($member.name[$i]); #elseif ($member.objectArray) .append($member.name == null ? "null" : Arrays.asList($member.name).toString()); #elseif ($member.string) diff --git a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplatesManager.java b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplatesManager.java index 1cc2e591612d..5ac07766aeb3 100644 --- a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplatesManager.java +++ b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplatesManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2011 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -69,13 +69,22 @@ public class TemplatesManager implements PersistentStateComponent getAllTemplates() { - Collection templates = new LinkedHashSet(Arrays.asList(TemplateResourceLocator.getDefaultTemplates())); - templates.addAll(myState.templates); - return templates; + public Collection getAllTemplates() { + TemplateResource[] defaultTemplates = TemplateResourceLocator.getDefaultTemplates(); + HashSet names = new HashSet(); + for (TemplateResource defaultTemplate : defaultTemplates) { + names.add(defaultTemplate.getFileName()); } + Collection templates = new LinkedHashSet(Arrays.asList(defaultTemplates)); + for (TemplateResource template : myState.templates) { + if (!names.contains(template.getFileName())) { + templates.add(template); + } + } + return templates; + } - public TemplateResource getDefaultTemplate() { + public TemplateResource getDefaultTemplate() { for (TemplateResource template : getAllTemplates()) { if (Comparing.equal(template.getFileName(), myState.defaultTempalteName)) { return template;