Author: simonetripodi
Date: Tue Feb  8 19:27:38 2011
New Revision: 1068538

URL: http://svn.apache.org/viewvc?rev=1068538&view=rev
Log:
added method to ignore a child XML element when SetNestedPropertiesRule
when explicitly specifying an alias on SetNestedPropertiesRule, null values are 
not allowed

Modified:
    
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java
    
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/rulesbinder/NestedPropertiesBuilder.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=1068538&r1=1068537&r2=1068538&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
 Tue Feb  8 19:27:38 2011
@@ -320,12 +320,27 @@ final class RulesBinderImpl implements R
                         return this;
                     }
 
+                    public NestedPropertiesBuilder ignoreElement(String 
elementName) {
+                        if (elementName == null) {
+                            
addError("{forPattern(\"%s\").setNestedProperties().ignoreElement(String)} 
empty 'elementName' not allowed",
+                                    keyPattern);
+                        } else {
+                            this.elementNames.put(elementName, null);
+                        }
+                        return this;
+                    }
+
                     public NestedPropertiesBuilder addAlias(String 
elementName, String propertyName) {
                         if (elementName == null) {
-                            
addError("{forPattern(\"%s\").setNestedProperties().addAlias(String,String)} 
empty 'methodName' not allowed",
+                            
addError("{forPattern(\"%s\").setNestedProperties().addAlias(String,String)} 
empty 'elementName' not allowed",
                                     keyPattern);
                         } else {
-                            this.elementNames.put(elementName, propertyName);
+                            if (propertyName == null) {
+                                
addError("{forPattern(\"%s\").setNestedProperties().addAlias(String,String)} 
empty 'propertyName' not allowed",
+                                        keyPattern);
+                            } else {
+                                this.elementNames.put(elementName, 
propertyName);
+                            }
                         }
                         return this;
                     }

Modified: 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/rulesbinder/NestedPropertiesBuilder.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/rulesbinder/NestedPropertiesBuilder.java?rev=1068538&r1=1068537&r2=1068538&view=diff
==============================================================================
--- 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/rulesbinder/NestedPropertiesBuilder.java
 (original)
+++ 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/rulesbinder/NestedPropertiesBuilder.java
 Tue Feb  8 19:27:38 2011
@@ -25,6 +25,14 @@ import org.apache.commons.digester3.SetN
 public interface NestedPropertiesBuilder extends 
BackToLinkedRuleBuilder<SetNestedPropertiesRule> {
 
     /**
+     * Allows ignore a matching element.
+     *
+     * @param elementName The child xml element to be ignored
+     * @return this builder instance
+     */
+    NestedPropertiesBuilder ignoreElement(String elementName);
+
+    /**
      * Allows element2property mapping to be overridden.
      *
      * @param elementName The child xml element to match


Reply via email to