From cd1aa723b8d6dc0d4958013c699e46d1bc33a0d0 Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Wed, 12 Jun 2013 06:28:30 -0700 Subject: [PATCH] IDEA-69673 Generate toString() template Groovy GString style should be added --- .../template/DefaultConcatMemberGroovy.vm | 26 +++++++++++++++++++ .../template/TemplateResourceLocator.java | 4 ++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultConcatMemberGroovy.vm diff --git a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultConcatMemberGroovy.vm b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultConcatMemberGroovy.vm new file mode 100644 index 000000000000..49039f0cff5d --- /dev/null +++ b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/DefaultConcatMemberGroovy.vm @@ -0,0 +1,26 @@ +public java.lang.String toString() { +#if ( $members.size() > 0 ) +#set ( $i = 0 ) + return """\ +$classname{ +#foreach( $member in $members ) +#if ( $i > 0 ), +#end +#set($d = "$") +#if ( $member.objectArray ) + $member.name=${d}{java.util.Arrays.toString($member.accessor)}## +#elseif ( $member.primitiveArray) + $member.name=${d}{java.util.Arrays.toString($member.accessor)}## +#elseif ( $member.string ) + $member.name='$d$member.accessor'## +#else + $member.name=$d${member.accessor}## +#end +#set ( $i = $i + 1 ) +#end + +}""" +#else + return "$classname{}" +#end +} \ No newline at end of file diff --git a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplateResourceLocator.java b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplateResourceLocator.java index 550e2ab14492..7877242eb789 100644 --- a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplateResourceLocator.java +++ b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplateResourceLocator.java @@ -29,6 +29,7 @@ import java.io.InputStreamReader; public class TemplateResourceLocator { private static final String DEFAULT_CONCAT = "/org/jetbrains/generate/tostring/template/DefaultConcatMember.vm"; + private static final String DEFAULT_CONCAT_GROOVY = "/org/jetbrains/generate/tostring/template/DefaultConcatMemberGroovy.vm"; private static final String DEFAULT_CONCAT_SUPER = "/org/jetbrains/generate/tostring/template/DefaultConcatMemberSuper.vm"; private static final String DEFAULT_BUFFER = "/org/jetbrains/generate/tostring/template/DefaultBuffer.vm"; private static final String DEFAULT_BUILDER = "/org/jetbrains/generate/tostring/template/DefaultBuilder.vm"; @@ -48,7 +49,8 @@ public class TemplateResourceLocator { new TemplateResource("StringBuffer", readFile(DEFAULT_BUFFER), true), new TemplateResource("StringBuilder (JDK 1.5)", readFile(DEFAULT_BUILDER), true), new TemplateResource("ToStringBuilder (Apache Commons)", readFile(DEFAULT_TOSTRINGBUILDER), true), - new TemplateResource("Objects.toStringHelper (Guava)", readFile(DEFAULT_GUAVA), true) + new TemplateResource("Objects.toStringHelper (Guava)", readFile(DEFAULT_GUAVA), true), + new TemplateResource("Groovy: String concat (+)", readFile(DEFAULT_CONCAT_GROOVY), true), }; } catch (IOException e) {