You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/01/31 17:42:26 UTC

svn commit: r1065680 - /commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java

Author: simonetripodi
Date: Mon Jan 31 16:42:25 2011
New Revision: 1065680

URL: http://svn.apache.org/viewvc?rev=1065680&view=rev
Log:
implemented the setNestedProperties() method

Modified:
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java?rev=1065680&r1=1065679&r2=1065680&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java Mon Jan 31 16:42:25 2011
@@ -232,8 +232,42 @@ final class RulesBinderImpl implements R
                 };
             }
 
+            /**
+             * 
+             */
             public NestedPropertiesBuilder setNestedProperties() {
-                return null;
+                return new NestedPropertiesBuilder() {
+
+                    private final Map<String, String> elementNames = new HashMap<String, String>();
+
+                    private boolean trimData = true;
+
+                    private boolean allowUnknownChildElements = false;
+
+                    public SetNestedPropertiesRule get() {
+                        return new SetNestedPropertiesRule(elementNames, trimData, allowUnknownChildElements);
+                    }
+
+                    public LinkedRuleBuilder then() {
+                        return mainBuilder;
+                    }
+
+                    public NestedPropertiesBuilder trimData(boolean trimData) {
+                        this.trimData = trimData;
+                        return this;
+                    }
+
+                    public NestedPropertiesBuilder addAlias(String elementName, String propertyName) {
+                        if (elementName == null) {
+                            addError("{forPattern(\"%s\").setNestedProperties().addAlias(String,String)} empty 'methodName' not allowed",
+                                    keyPattern);
+                        } else {
+                            this.elementNames.put(elementName, propertyName);
+                        }
+                        return this;
+                    }
+
+                };
             }
 
             public BeanPropertySetterBuilder setBeanProperty() {