From: <iro...@us...> - 2010-02-25 20:57:35
|
Revision: 190 http://pojomatic.svn.sourceforge.net/pojomatic/?rev=190&view=rev Author: iroberts Date: 2010-02-25 20:57:27 +0000 (Thu, 25 Feb 2010) Log Message: ----------- Add a toString method to Pojomator for debugging purposes. Modified Paths: -------------- trunk/PojomaticAll/Pojomatic/src/main/java/org/pojomatic/Pojomator.java trunk/PojomaticAll/Pojomatic/src/main/java/org/pojomatic/internal/PojomatorImpl.java Modified: trunk/PojomaticAll/Pojomatic/src/main/java/org/pojomatic/Pojomator.java =================================================================== --- trunk/PojomaticAll/Pojomatic/src/main/java/org/pojomatic/Pojomator.java 2010-02-25 16:45:45 UTC (rev 189) +++ trunk/PojomaticAll/Pojomatic/src/main/java/org/pojomatic/Pojomator.java 2010-02-25 20:57:27 UTC (rev 190) @@ -136,4 +136,14 @@ * @see #doEquals(Object, Object) */ Differences doDiff(T instance, T other); + + /** + * Return a simple String representation of this Pojomator. This is meant to aid in debugging + * which properties are being used for which purposes. The contents and format of this + * representation are subject to change. + * + * @return a simple String representation of this Pojomator. + */ + @Override + public String toString(); } Modified: trunk/PojomaticAll/Pojomatic/src/main/java/org/pojomatic/internal/PojomatorImpl.java =================================================================== --- trunk/PojomaticAll/Pojomatic/src/main/java/org/pojomatic/internal/PojomatorImpl.java 2010-02-25 16:45:45 UTC (rev 189) +++ trunk/PojomaticAll/Pojomatic/src/main/java/org/pojomatic/internal/PojomatorImpl.java 2010-02-25 20:57:27 UTC (rev 190) @@ -177,6 +177,33 @@ return result.toString(); } + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("Pojomator for ").append(clazz.getName()).append(" with equals properties "); + propertiesList(builder, classProperties.getEqualsProperties()); + builder.append(", hashCodeProperties "); + propertiesList(builder, classProperties.getHashCodeProperties()); + builder.append(", and toStringProperties "); + propertiesList(builder, classProperties.getToStringProperties()); + return builder.toString(); + } + + private void propertiesList(StringBuilder builder, final Iterable<PropertyElement> properties) { + builder.append("{"); + boolean firstElement = true; + for (PropertyElement prop: properties) { + if (!firstElement) { + builder.append(","); + } + else { + firstElement = false; + } + builder.append(prop.getName()); + } + builder.append("}"); + } + private final Class<T> clazz; private final ClassProperties classProperties; private final List<FormattablePropertyElement> formattablePropertyElements = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |