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:36:54 UTC

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

Author: simonetripodi
Date: Mon Jan 31 16:36:54 2011
New Revision: 1065679

URL: http://svn.apache.org/viewvc?rev=1065679&view=rev
Log:
implemented the setProperties() 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=1065679&r1=1065678&r2=1065679&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:36:54 2011
@@ -18,7 +18,9 @@
 package org.apache.commons.digester3;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.digester3.rulesbinder.BackToLinkedRuleBuilder;
 import org.apache.commons.digester3.rulesbinder.BeanPropertySetterBuilder;
@@ -172,8 +174,40 @@ final class RulesBinderImpl implements R
                 return null;
             }
 
+            /**
+             * 
+             */
             public SetPropertiesBuilder setProperties() {
-                return null;
+                return new SetPropertiesBuilder() {
+
+                    private final Map<String, String> aliases = new HashMap<String, String>();
+
+                    private boolean ignoreMissingProperty = true;
+
+                    public SetPropertiesRule get() {
+                        return new SetPropertiesRule(this.aliases, this.ignoreMissingProperty);
+                    }
+
+                    public LinkedRuleBuilder then() {
+                        return null;
+                    }
+
+                    public SetPropertiesBuilder ignoreMissingProperty(boolean ignoreMissingProperty) {
+                        this.ignoreMissingProperty = ignoreMissingProperty;
+                        return this;
+                    }
+
+                    public SetPropertiesBuilder addAlias(String attributeName, /* @Nullable */String propertyName) {
+                        if (attributeName == null) {
+                            addError("{forPattern(\"%s\").setProperties().addAlias(String,String)} empty 'methodName' not allowed",
+                                    keyPattern);
+                        } else {
+                            this.aliases.put(attributeName, propertyName);
+                        }
+                        return this;
+                    }
+
+                };
             }
 
             /**