However I stumbled on a issue with the current implementation, strings are always considered as comma separated values and splitted into a List. This behavior isn't desirable for a resource file with several sentences, or even for a common configuration file storing a number format like "###,##0.00".
That's why I'm suggesting an additional flag enabling or disabling property splitting, it would be enabled by default. I'm attaching a patch implementing this idea.
Emmanuel Bourg
Index: src/java/org/apache/commons/configuration/AbstractConfiguration.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/configuration/src/java/org/apache/commons/configuration/AbstractConfiguration.java,v retrieving revision 1.2 diff -u -r1.2 AbstractConfiguration.java --- src/java/org/apache/commons/configuration/AbstractConfiguration.java 24 Dec 2003 14:28:22 -0000 1.2 +++ src/java/org/apache/commons/configuration/AbstractConfiguration.java 13 Jan 2004 16:13:42 -0000 @@ -86,6 +86,9 @@ /** end token */ protected static final String END_TOKEN = "}"; + /** split properties on PropertiesTokenizer.DELIMITER */ + protected boolean splitString = true; + /** * Empty constructor. */ @@ -126,10 +129,13 @@ { if (token instanceof String) { - for(Iterator it = processString((String) token).iterator(); - it.hasNext();) - { - addPropertyDirect(key, it.next()); + if (splitString) { + for (Iterator it = processString((String) token).iterator(); it.hasNext();) + { + addPropertyDirect(key, it.next()); + } + } else { + addPropertyDirect(key, token); } } else if (token instanceof Collection) @@ -1440,6 +1446,20 @@ value = ((Container) value).get(0); } return value; + } + + /** + * Tell if properties are split on commas or not. + */ + public boolean isSplitString() { + return splitString; + } + + /** + * Enable or disable the splitting of properties. + */ + public void setSplitString(boolean splitString) { + this.splitString = splitString; } /**
smime.p7s
Description: S/MIME Cryptographic Signature