To follow up more debug information: It appears that Castor IS somehow
setting my property correctly with multiple values in the java.util.Set. 
However, my setXXX method is only being called once.  Why does Castor not
call my set method with the entire collection.  My setXXX() method has
special processing which causes my application to fail if not performed.

Also, my instance variables have private access.  My set methods of
course have public access.

Jeremy


On Wed, 03 Mar 2004 15:18:24 -0500, "Jeremy Haile" <[EMAIL PROTECTED]>
said:
> 
> By the way, I am using 0.9.5.3 rc2.  
> 
> 
> On Wed, 03 Mar 2004 15:11:32 -0500, "Jeremy Haile" <[EMAIL PROTECTED]>
> said:
> > I have several collections that are only saving the first element in a
> > set.  My field type is a java.util.Set.  When castor parses the XML file,
> > it only calls the setXXX() method one time (as it should), but passes in
> > a java.util.Set that contains only one element.  Why would castor not be
> > processing the whole collection before calling setXXXX?????
> > 
> > 
> > The mapping for one of the classes I'm having a problem with this with
> > follows:
> > 
> >   <class name="ex.Organization"
> >          access="shared"
> >          auto-complete="false">
> > 
> >     <field name="name"
> >            type="java.lang.String"
> >            get-method="getName"
> >            set-method="setName">
> >       <bind-xml
> >                 node="attribute" />
> >     </field>
> > 
> >     <field name="taxId"
> >            type="java.lang.String"
> >            get-method="getTaxId"
> >            set-method="setTaxId">
> >       <bind-xml
> >                 node="attribute" />
> >     </field>
> > 
> >     <field name="emailAddresses"
> >            type="ex.EmailAddress"
> >            get-method="getEmailAddresses"
> >            set-method="setEmailAddresses"
> >            collection="set">
> >       <bind-xml name="email-address"
> >                 node="element" />
> >     </field>
> > 
> >     <field name="phoneNumbers"
> >            type="ex.PhoneNumber"
> >            get-method="getPhoneNumbers"
> >            set-method="setPhoneNumbers"
> >            collection="set">
> >       <bind-xml name="phone-number"
> >                 node="element" />
> >     </field>
> > 
> >     <field name="postalAddresses"
> >            type="ex.PostalAddress"
> >            get-method="getPostalAddresses"
> >            set-method="setPostalAddresses"
> >            collection="set">
> >       <bind-xml name="postal-address"
> >                 node="element" />
> >     </field>
> > 
> >   </class>
> > 
> > 
> > The debug output from Castor is below.  You can see where my
> > setPhoneNumbers( Set phoneNumbers ) method is called.  I print out the
> > size of the set being passed in as a parameter.  You can also see Castor
> > parse another phone number immediately after, but not call the set
> > method.
> > 
> > [configurator]
> > [configurator] #startElement: organization
> > [configurator] #characters:
> >  
> > [configurator]
> > [configurator] #startElement: email-address
> > [configurator] #endElement: email-address
> > [configurator] #characters:
> >  
> > [configurator]
> > [configurator] #startElement: phone-number
> > [configurator] #endElement: phone-number
> > [configurator] 14:58:44,181 DEBUG [Organization] Setting 1 phone
> > numbers(s) into party.
> > [configurator] #characters:
> >  
> > [configurator]
> > [configurator] #startElement: phone-number
> > [configurator] #endElement: phone-number
> > [configurator] #characters:
> >  
> > [configurator]
> > [configurator] #startElement: postal-address
> > [configurator] #endElement: postal-address
> > [configurator] #characters:
> >  
> > [configurator]
> > [configurator] #endElement: organization
> > [configurator] #characters:
> > 
> > 
> > Just in case you are curious, the setter method with the debug call looks
> > like:
> > 
> >     public void setPhoneNumbers(Set phoneNumbers) {
> >         logger.debug(  "Setting " + phoneNumbers.size() + " phone
> >         numbers(s) into party." );
> >         this.phoneNumbers = phoneNumbers;
> >     }
> > -- 
> >   Jeremy Haile
> >   [EMAIL PROTECTED]
> -- 
>   Jeremy Haile
>   [EMAIL PROTECTED]
> 
> ----------------------------------------------------------- 
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-dev
> 
-- 
  Jeremy Haile
  [EMAIL PROTECTED]

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to