i think i understand what you code is doing (in general terms). the idea is that you're adding your own rules to the existing xml-rules so that they can be used for parsing, right?
i've taken a look at the code in DigesterRuleParser i'm not too sure that your plan would work. the inner classes cannot simply be extracted to public scope without some refactoring.
i was wondering:
1. whether anyone would really need to subclass PatternRule - or whether a factory method would be good enough.
2. whether it's only PatternRule that really needs more public scope.
answers anyone?
- robert
On Tuesday, October 21, 2003, at 11:23 PM, Ricky Panaglucci wrote:
hello, below is a case, where the existing PatternRule would be usefull
ricardo
myrules.xml: <digester-rules> <pattern value="*/MyObject"> <object-create-rule classname="MyObject"/> <set-generic-property-rule pattern="attr" name="name" value="value"/> </pattern> </digester-rules>
myobject.xml: <?xml version="1.0"?> <jLab> <MyObject"> <attr name="att1" value="val1"/> <attr name="att2" value="val2"/> </MyObject> </jLab>
Digester d=new Digester() DigesterRuleParser drp=new DigesterRuleParser(d);
d.addFactoryCreate("*/set-generic-property-rule", new SetGenericPropertyRuleFactory()); //*** would like to write d.addRule("*/set-generic-property-rule", drp.new PatternRule("pattern")); d.addRule("*/set-generic-property-rule", new XPatternRule("pattern")); d.addSetNext("*/set-generic-property-rule", "add", Rule.class.getName());
RuleSet ruleSet = new FromXmlRuleSet(new Files("myrules").toURL(), drp, d); d.addRuleSet(ruleSet); MyObject obj = (MyObject)d.parse(new File("myobject.xml");
public class SetGenericPropertyRuleFactory extends AbstractObjectCreationFactory { public SetGenericPropertyRuleFactory() {
} public Object createObject(Attributes attributes) { String name = attributes.getValue("name"); String value = attributes.getValue("value"); return new GenericPropertyRule( name, value); } }
public class GenericPropertiesRule extends Rule { //***source copied from SetPropertyRule with some
}
public class XPatternRule { //***source copied from PatternRule }
--- robert burrell donkin <[EMAIL PROTECTED]> wrote: > +1________________________________________________________________________
i'd be happy to see the nested classed in the xmlrules made public if a need could be demonstrated.
- robert
On Monday, October 20, 2003, at 10:12 PM, Simon Kitching wrote:
Hi Ricky,solely for the purpose
You must be referring to xmlrules/DigesterRuleParser.java
I'm no expert on the xmlrules package.
However it is normal practice for classes createdof implementing function X to be declared private.*not* with the
The PatternRule class appears to have been createdintention of providing additional services tousers of Digester, butsolely as an implementation detail of the xmlrulesfunctionality. Assuch, private seems the appropriate scope to me.PatternRule is useful outside
If you feel that the functionality of theof the xmlrules package, then consideration couldbe given to"promoting" the class to public.public (or protected) is
Note however that any class or method declaredpart of the "public interface" to a package, andmust:(a) be documented much more thoroughly thanprivate/package classesneeds to be.(b) be backwards-compatible in future releases (c) be deprecated before removal
So a class really should only be public if itwrote:
Regards,
Simon
On Tue, 2003-10-21 at 10:02, Ricky Panaglucciaccess?hello, why do classes like PatternRule have privatesurrounding
now, for adding my own rules which may use[very"pattern", i just copied the PatternRule sourcebrown imho]
why not make them protected or public?
ricardo
---------------------------------------------------------------------Get the FREE Yahoo!Want to chat instantly with your online friends?Messenger http://mail.messenger.yahoo.co.uk
---------------------------------------------------------------------[EMAIL PROTECTED]To unsubscribe, e-mail:[EMAIL PROTECTED]For additional commands, e-mail:
---------------------------------------------------------------------To unsubscribe, e-mail:[EMAIL PROTECTED]For additional commands, e-mail:[EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
________________________________________________________________________ Want to chat instantly with your online friends? Get the FREE Yahoo! Messenger http://mail.messenger.yahoo.co.uk
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
