struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stacy Weng" <stacy_h_w...@yahoo.com>
Subject Re: Digester and inheritance
Date Fri, 01 Mar 2002 20:12:43 GMT
Wouldn't that be a "has-a" relationship?  If I do that, than I would end up with this (since
originally I have many child classes extending from Component):

public class Component {
    public String name = null;
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name=name;
    }
}

public class HelperClass1 {
    private final Component C;
    public String getName() {
        return c.getName;
    }
    public void setName(String name) {
        c.setName(name);
    }
}

public class HelperClass2 {
    private final Component C;
    public String getName() {
        return c.getName;
    }
    public void setName(String name) {
        c.setName(name);
    }
}

public class HelperClass2 {
    private final Component C;
    public String getName() {
        return c.getName;
    }
    public void setName(String name) {
        c.setName(name);
    }
}

The reason I'm extending from Component is because these helper classes "is - a" Component.
 They only have slight variations.  Does digester not handle "is-a" relationships?

--Stacy
ps - Thanks again for taking the time to respond.  I can't stress how much I appreciate it.

  ----- Original Message ----- 
  From: Galbreath, Mark 
  To: 'Struts Users Mailing List' 
  Sent: Friday, March 01, 2002 2:40 PM
  Subject: RE: Digester and inheritance


  You are misusing inheritance.  Instead of extending Component, give
  HelperClass (was ChildClass) a private field that references an instance of
  Component (a design pattern known as "composition").Each instance method in
  HelperClass invokes the corresponding method on the contained instance of
  Component and returns the results (a design pattern known as "forwarding"):

  public class HelperClass {
      private final Component c;
      public void setName( String name) {
          c.setName( name);
      }
      public String getName() {
          return c.getName();
      }
  }

  Cheers!
  Mark

  -----Original Message-----
  From: Stacy Weng [mailto:stacy_h_weng@yahoo.com]
  Sent: Friday, March 01, 2002 2:12 PM

  I have a parent class called Component, and several child classes extending
  from it.   All the common get/set methods are defined in Component.  So,
  after each child is getting created from addObjectCreate() method, I call
  addSetProperties() method to initialize their values (values are from the
  xml file), however, digester can't find the set methods from the child
  class, cause they're defined in the parent class (Component).  The temporary
  solution I had was defining those set methods in the child classes, and have
  them call the super methods.  But that seems to defeat the whole purpose of
  inheritance.  Here's an example with the problem:

  public class Component {
      public String name = null;
      public void setName(String name) {
          this.name=name;
      }
      public void getname() {
          return this.name;
      }
  }

  public class ChildClass extend Component {
      //Other methods that differ from parent class
  }

  for the digester rules:

  digester.addObjectCreate("ChildClassPattern", "some.package.ChildClass");
  digester.addSetProperties("ChildClassPattern");

  so, as it gets to addSetProperties(), it doesn't see any of the get/set
  methods in ChildClass, and yet, it doesn't know to look its parent class,
  Component.

  I hope I'm able to get my problem across.  Thanks again for taking the time
  to respond.

  --Stacy



  ----- Original Message ----- 
    From: Fernando Esteban Barril Otero 
    To: Struts Users Mailing List 
    Sent: Friday, March 01, 2002 1:48 PM
    Subject: Re: Digester and inheritance


    I'm using digester and inheritance without problems. What kind
    of exception are you getting?

    Fernando

    ----- Original Message -----
    From: "Stacy Weng" <stacy_h_weng@yahoo.com>
    To: "Struts Users Mailing List" <struts-user@jakarta.apache.org>
    Sent: Friday, March 01, 2002 1:20 PM
    Subject: Digester and inheritance


    Has anyone encountered problems with inheritance using Digester?  It seems
    to me that the addSetProperties() does not when its object is inherited
  from
    a parent class...hence it assumes the get/set methods aren't defined, when
    they are actually defined in its parent class.  I've looked into the
  source,
    and it seems that the getMethod call that digester uses does not handle
    parent methods.  Is there a patch out there for inheritance with digester?

    Once again, thanks again in advance for any input.  It is greatly
    appreciated.  =)

    --Stacy



    --
    To unsubscribe, e-mail:
  <mailto:struts-user-unsubscribe@jakarta.apache.org>
    For additional commands, e-mail:
  <mailto:struts-user-help@jakarta.apache.org>


  --
  To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@jakarta.apache.org>
  For additional commands, e-mail: <mailto:struts-user-help@jakarta.apache.org>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message