Ok, I figured it out. <rules> <definition objectClassName="net.pnh.base.Group"> <enforcer priority="5">net.pnh.rule.GroupRuleEnforcer</enforcer> <enforcer priority="9">net.pnh.rule.GroupRuleEnforcer2</enforcer> <definition/> <definition objectClassName="net.pnh.base.Individual"> <enforcer priority="1">net.pnh.rule.IndividualRuleEnforcer</enforcer> <enforcer priority="4">net.pnh.rule.IndividualRuleEnforcer2</enforcer> <definition/> .... </rules>
I needed to have an EnforcerElement object and add each element to a list in the EnforcerDefinition class. Furthermore, the name attribute in the definition tags was changed to "objectClassName" match the setter in the EnforcerDefinition Class. I needed three classes: 1. EnforcerDefinitions methods: set(EnforcerDefinition edef); 2. EnforcerDefinition methods: addEnforcerElement(EnforcerElement elem) setObjectClassName(String val) 3. EnforcerElement methods: setPriority(int val); setClassName(String val) Here is the digester setting: digester.addObjectCreate("rules/definition", biz.isman.rule.engine.EnforcerDefinition.class); digester.addSetProperties("rules/definition"); // parse through enforcer elements digester.addObjectCreate("rules/definition/enforcer", biz.isman.rule.engine.EnforcerElement.class); digester.addSetProperties("rules/definition/enforcer"); digester.addCallMethod("rules/definition/enforcer", "setClassName", 0); // insert the new EnforcerElement in the EnforcerDefinition digester.addSetNext("rules/definition/enforcer", "addEnforcerElement"); // put the new EnforcerDefinition somewhere for later use. digester.addSetNext("rules/definition", "set"); -----Original Message----- From: Toni Charlot [mailto:[EMAIL PROTECTED]] Sent: Monday, January 13, 2003 4:01 PM To: [EMAIL PROTECTED] Subject: Unmarshalling using the Digester Can anyone figure out what I'm doing wrong here? Oh, please? 001 digester.addObjectCreate("rules/definition/enforcerClassName", 002 biz.isman.rule.engine.EnforcerDefinition.class); 003 004 // 005 digester.addCallMethod("rules/definition/enforcer", "setEnforcerClassName", 0); 006 digester.addSetProperty("rules/definition", "name", "setObjectClassName"); 007 digester.addSetProperties("rules/definition/enforcer"); 008 // 009 digester.addSetNext("rules/definition/enforcer", "addDefinition"); Here is the file I'm trying unmarshall: <rules> <definition name="net.pnh.base.Group"> <enforcer priority="5">net.pnh.rule.GroupRuleEnforcer</enforcer> <enforcer priority="9">net.pnh.rule.GroupRuleEnforcer2</enforcer> <definition/> <definition name="net.pnh.base.Individual"> <enforcer priority="1">net.pnh.rule.IndividualRuleEnforcer</enforcer> <enforcer priority="4">net.pnh.rule.IndividualRuleEnforcer2</enforcer> <definition/> .... </rules> I would like to end up with a list of definitions objects where Definition1: name="net.pnh.base.Group"; enforcer="net.pnh.rule.GroupRuleEnforcer"; priority="5" Definition2: name="net.pnh.base.Group"; enforcer="net.pnh.rule.GroupRuleEnforcer2"; priority="9" .. Thank you. -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>