commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ricky Panaglucci <hirnbon...@yahoo.co.uk>
Subject Re: [digester] why private XXXRule in DigesterRuleParser?
Date Tue, 21 Oct 2003 22:23:51 GMT
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
<robertburrelldonkin@blueyonder.co.uk> 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,
> >
> > You must be referring to
> >   xmlrules/DigesterRuleParser.java
> >
> > I'm no expert on the xmlrules package.
> >
> > However it is normal practice for classes created
> solely for the purpose
> > of implementing function X to be declared private.
> >
> > The PatternRule class appears to have been created
> *not* with the
> > intention of providing additional services to
> users of Digester, but
> > solely as an implementation detail of the xmlrules
> functionality. As
> > such, private seems the appropriate scope to me.
> >
> > If you feel that the functionality of the
> PatternRule is useful outside
> > of the xmlrules package, then consideration could
> be given to
> > "promoting" the class to public.
> >
> > Note however that any class or method declared
> public (or protected) is
> > part of the "public interface" to a package, and
> must:
> > (a) be documented much more thoroughly than
> private/package classes
> > (b) be backwards-compatible in future releases
> > (c) be deprecated before removal
> >
> > So a class really should only be public if it
> needs to be.
> >
> >
> > Regards,
> >
> > Simon
> >
> > On Tue, 2003-10-21 at 10:02, Ricky Panaglucci
> wrote:
> >> hello,
> >> why do classes like PatternRule have private
> access?
> >>
> >> now, for adding my own rules which may use
> surrounding
> >> "pattern", i just copied the PatternRule source
> [very
> >> brown imho]
> >>
> >> why not make them protected or public?
> >>
> >>
> >> ricardo
> >>
> >>
>
________________________________________________________________________
> >> Want to chat instantly with your online friends? 
> Get the FREE Yahoo!
> >> Messenger http://mail.messenger.yahoo.co.uk
> >>
> >>
>
---------------------------------------------------------------------
> >> To unsubscribe, e-mail:
> commons-dev-unsubscribe@jakarta.apache.org
> >> For additional commands, e-mail:
> commons-dev-help@jakarta.apache.org
> >>
> >>
> >
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> commons-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail:
> commons-dev-help@jakarta.apache.org
> >
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> commons-dev-help@jakarta.apache.org
>  

________________________________________________________________________
Want to chat instantly with your online friends?  Get the FREE Yahoo!
Messenger http://mail.messenger.yahoo.co.uk

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message