commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject How does using Interface for mapping object-to-xml works in Betwixt?
Date Tue, 27 Jan 2004 16:04:12 GMT
I seems to have different result when i map an object-to-xml  using an object instance as compared
to that of an interface.
The scenario is as such:
I have a Person class which implements an interface PersonIntf and when this object is mapped
into xml using the Person instance, i have the following result  
  <person age="21" name="John Smith">
      <address street1="Street1" postalcode="12345"/>

but when i used the same Person object instance but now using the PersonIntf via the XMLInspector.setClassNormalizer()
i have the following result - the <address> element info are all missing
  <person age="21" name="John Smith">
      <address street1="" postalcode=""/>  <!-- street1 & postalcode not being
mapped -->

Did i missed something here? I suspect that the XMLIntrospector did not include the super
interface of PersonIntf => AddressIntf, am i right?

I have all my classes listed below, i am using the nightly build downloaded last night.

Any help will be greatly appreciated. Thanks in advance

===Address Interface Class ===
public interface AddressIntf {
    public String getStreet1();    
    public int getPostalcode(); 
    public void setStreet1(String st);
    public void setPostalcode(int pc);
    //convenience method
    public void setAddress(String st, int pc);

===Person Interface Class===
public interface PersonIntf extends AddressIntf{
    public String getName();
    public int getAge();
    public void setName(String name);
    public void setAge(int age);
    //derive attr
    public AddressIntf getAddress();  

===Person Class===
public class Person implements PersonIntf {
    private String name;
    private int age;
    private Address address;
    public Person() {address = new Address();}
    public Person(String name, int age) {
       this(name, age, null, 0);
    public Person(String name, int age, String street1, int postalcode){ = name;
        this.age = age;
        this.address = new Address(street1, postalcode);
    public String getName() { return name;}
    public void setName(String name) { = name;}
    public int getAge() {return age;}
    public void setAge(int age) {this.age = age;}
    public AddressIntf getAddress() {return address;}
    public void setAddress(Address address) {this.address=address;}
    public void setAddress(String st, int pc) {address.setAddress(st, pc);}
    public String getStreet1(){ return address.getStreet1();}
    public void setStreet1(String st){ address.setStreet1(st);}
    public int getPostalcode(){ return address.getPostalcode();}
    public void setPostalcode(int pc){address.setPostalcode(pc);}
    public String toString() {return "PersonBean[name='" + name + "',age='" + age + ", address["
+ address +"']";}
    private class Address implements AddressIntf {
        private String street1;
        private int postalcode;
        /** Creates a new instance of Name */
        public Address() {}
        public Address(String street1, int postalcode){
        public String getStreet1() {return street1;}
        public void setStreet1(String street1) {this.street1 = street1;}
        public int getPostalcode() {return postalcode;}
        public void setPostalcode(int postalcode) {this.postalcode = postalcode;}
        public void setAddress(String street1, int postalcode){
        public String toString(){return "street1="+street1+", postalcode="+postalcode;}

New! Unlimited Netscape Internet Service.
Only $9.95 a month -- Sign up today at
Act now to get a personalized email address!

Netscape. Just the Net You Need.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message