From 34a75c1ae6ee89452debeacbc073410407b73382 Mon Sep 17 00:00:00 2001 From: Keith Donald Date: Thu, 19 Nov 2009 22:16:06 +0000 Subject: [PATCH] improved toString method --- .../support/FormattingConversionService.java | 13 ++++++-- .../joda/JodaTimeFormattingTests.java | 1 + .../support/GenericConversionService.java | 30 +++++++++++++++---- 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/org.springframework.context/src/main/java/org/springframework/format/support/FormattingConversionService.java b/org.springframework.context/src/main/java/org/springframework/format/support/FormattingConversionService.java index f2ee12774f1..a043972767a 100644 --- a/org.springframework.context/src/main/java/org/springframework/format/support/FormattingConversionService.java +++ b/org.springframework.context/src/main/java/org/springframework/format/support/FormattingConversionService.java @@ -78,7 +78,7 @@ public class FormattingConversionService implements FormatterRegistry, Conversio return new PrinterConverter(fieldType, printer, conversionService).convert(source, sourceType, targetType); } public String toString() { - return "@" + annotationType.getName() + " " + fieldType.getName() + " -> " + String.class.getName(); + return "@" + annotationType.getName() + " " + fieldType.getName() + " -> " + String.class.getName() + " : " + annotationFormatterFactory; } }); getConverterRegistry().addGenericConverter(new ConditionalGenericConverter() { @@ -93,7 +93,7 @@ public class FormattingConversionService implements FormatterRegistry, Conversio return new ParserConverter(fieldType, parser, conversionService).convert(source, sourceType, targetType); } public String toString() { - return String.class.getName() + " -> @" + annotationType.getName() + " " + fieldType.getName(); + return String.class.getName() + " -> @" + annotationType.getName() + " " + fieldType.getName() + " : " + annotationFormatterFactory; } }); } @@ -166,6 +166,10 @@ public class FormattingConversionService implements FormatterRegistry, Conversio private Class resolvePrinterObjectType(Printer printer) { return GenericTypeResolver.resolveTypeArgument(printer.getClass(), Printer.class); } + + public String toString() { + return this.fieldType.getName() + " -> " + String.class.getName() + " : " + this.printer; + } } private static class ParserConverter implements GenericConverter { @@ -207,6 +211,11 @@ public class FormattingConversionService implements FormatterRegistry, Conversio } return parsedValue; } + + public String toString() { + return String.class.getName() + " -> " + this.fieldType.getName() + " : " + this.parser; + } + } } diff --git a/org.springframework.context/src/test/java/org/springframework/format/datetime/joda/JodaTimeFormattingTests.java b/org.springframework.context/src/test/java/org/springframework/format/datetime/joda/JodaTimeFormattingTests.java index 152ef8b6307..f7973a439a4 100644 --- a/org.springframework.context/src/test/java/org/springframework/format/datetime/joda/JodaTimeFormattingTests.java +++ b/org.springframework.context/src/test/java/org/springframework/format/datetime/joda/JodaTimeFormattingTests.java @@ -31,6 +31,7 @@ public class JodaTimeFormattingTests { public void setUp() { JodaTimeFormattingConfigurer configurer = new JodaTimeFormattingConfigurer(); configurer.installJodaTimeFormatting(conversionService); + System.out.println(conversionService); binder = new DataBinder(new JodaTimeBean()); binder.setConversionService(conversionService); diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java index fcb61d03a49..7b4a05fef77 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java @@ -19,9 +19,12 @@ package org.springframework.core.convert.support; import static org.springframework.core.convert.support.ConversionUtils.invokeConverter; import java.lang.reflect.Array; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.Iterator; import java.util.LinkedList; +import java.util.List; import java.util.Map; import org.apache.commons.logging.Log; @@ -129,15 +132,20 @@ public class GenericConversionService implements ConversionService, ConverterReg } public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("ConversionService converters = ").append("\n"); + List converterStrings = new ArrayList(); for (Map, MatchableConverters> targetConverters : this.converters.values()) { for (MatchableConverters matchable : targetConverters.values()) { - builder.append("\t"); - builder.append(matchable); - builder.append("\n"); + converterStrings.add(matchable.toString()); } } + Collections.sort(converterStrings); + StringBuilder builder = new StringBuilder(); + builder.append("ConversionService converters = ").append("\n"); + for (String converterString : converterStrings) { + builder.append("\t"); + builder.append(converterString); + builder.append("\n"); + } return builder.toString(); } @@ -435,7 +443,17 @@ public class GenericConversionService implements ConversionService, ConverterReg public String toString() { if (this.conditionalConverters != null) { - return "[" + this.conditionalConverters + "; default = " + this.defaultConverter + "]"; + StringBuilder builder = new StringBuilder(); + for (Iterator it = this.conditionalConverters.iterator(); it.hasNext(); ) { + builder.append(it.next()); + if (it.hasNext()) { + builder.append(", "); + } + } + if (this.defaultConverter != null) { + builder.append(", ").append(this.defaultConverter); + } + return builder.toString(); } else { return this.defaultConverter.toString(); }