r1258 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities
Author: bpoussin Date: 2011-12-01 10:50:20 +0100 (Thu, 01 Dec 2011) New Revision: 1258 Url: http://nuiton.org/repositories/revision/wikitty/1258 Log: change wikitty toString behaviour Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java 2011-11-28 22:22:29 UTC (rev 1257) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java 2011-12-01 09:50:20 UTC (rev 1258) @@ -375,4 +375,9 @@ */ public String toString(String extName); + /** + * Print all field of all extension + */ + public String toStringAllField(); + } \ No newline at end of file Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java 2011-11-28 22:22:29 UTC (rev 1257) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java 2011-12-01 09:50:20 UTC (rev 1258) @@ -120,6 +120,10 @@ return target.toString(extName); } + public String toStringAllField() { + return target.toStringAllField(); + } + @Override public int hashCode() { return target.hashCode(); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java 2011-11-28 22:22:29 UTC (rev 1257) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java 2011-12-01 09:50:20 UTC (rev 1258) @@ -374,7 +374,14 @@ return tagValues; } + /** + * Set all tag values. If argument is null, new empty map is created. + * + */ public void setTagValues(Map<String, String> tagValues) { + if (tagValues == null) { + tagValues = new HashMap<String, String>(); + } Map<String, String> oldValue = this.tagValues; this.tagValues = tagValues; getPropertyChangeSupport().firePropertyChange("tagValues", oldValue, tagValues); @@ -419,7 +426,7 @@ if (StringUtils.isNotBlank(format)) { result = WikittyUtil.format(format, wikitty); } else { - result = wikitty.toString(); + result = wikitty.toStringAllField(); } return result; } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2011-11-28 22:22:29 UTC (rev 1257) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2011-12-01 09:50:20 UTC (rev 1258) @@ -42,11 +42,13 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.ObjectUtil; import org.nuiton.wikitty.WikittyException; import org.nuiton.wikitty.WikittyUtil; +import org.nuiton.wikitty.generator.WikittyTransformerUtil; /** * Wikitty implementation. @@ -940,9 +942,44 @@ public boolean isEmpty() { return fieldValue.isEmpty(); } - + + /** + * Try to find extension with toString tagValue. The first tagValue found + * is used. If no toString tagValue found, then {@link #toStringAllField()} + * is used. + * + * @return + */ @Override public String toString() { + WikittyExtension extFormat = null; + WikittyExtension[] exts = + getExtensions().toArray(new WikittyExtension[getExtensions().size()]); + // on parcours a l'inverse la liste, car les premieres extensions sont + // les extensions requises et donc moins specifiques que les dernieres + for (int i=exts.length-1; i>=0; i--) { + WikittyExtension ext = exts[i]; + String format = ext.getTagValue(WikittyTransformerUtil.TAG_TO_STRING); + if (StringUtils.isNotBlank(format)) { + extFormat = ext; + break; + } + } + + String result; + if (extFormat == null) { + result = toStringAllField(); + } else { + result = extFormat.toString(this); + } + return result; + } + + /** + * Print all field of all extension + */ + @Override + public String toStringAllField() { boolean cr = true; String str = "[" + getId() + ":" + getVersion() + "] {"; for ( String extName : getExtensionNames() ) {
participants (1)
-
bpoussin@users.nuiton.org