i haven't verified this yet but does your suggested solution
apply both to abstract classes and interfaces?  
(i was referring specifically to two classes that both implement a
specific interface.)

in other words, can i used abstract mappings to model the latter, 
or do i have to use abstract classes?

yes, it's interesting to see how the xml side of
this is analogous to xml schema substitution groups.

thanks, eitan


On Tue, 2005-08-16 at 11:32 -0700, Dennis Sosnoski wrote:
> Assuming you want to use a common binding for I your best way of 
> handling this is by using a <mapping abstract="true" ...> for I, and 
> <mapping extends="I" ...> mappings for A and B. That way the x reference 
> to I will accept either of the two extensions. This is the limited 
> equivalent of a schema substitution group (limited because the 1.0 code 
> supports only one level of extends).
> 
>   - Dennis
> 
> Eitan Suez wrote:
> 
> >hi all,
> >
> >  given a simple interface modeling scenario where
> >  class A and class B implement interface I, and
> >  finally where class C has a property, x, of type
> >  I.  how does one model this in jibx?
> >
> >  in my mapping file i know i'll be specifying
> >  a mapping for A, B, and C (including C's property,
> >  x).  but the problem is that when jibx tries to
> >  marshal/unmarshal C it knows nothing about the 
> >  interface type.
> >
> >  am i overlooking something?
> >
> >  i solved the problem by writing an "InterfaceMapper"
> >  whose gist is in these two methods:
> >
> >   public void marshal(Object obj, IMarshallingContext ictx)
> >      throws JiBXException
> >   {
> >      ((IMarshallable) obj).marshal(ictx);
> >   }
> >   
> >   public Object unmarshal(Object obj, IUnmarshallingContext ictx)
> >      throws JiBXException
> >   {
> >      return ictx.unmarshalElement();
> >   }
> >
> >  that is, any time you try to marshal x, it will always be of type
> >  A or B and they're both marshallable.  when it's time to unmarshal,
> >  all the information is there for jibx to simply do its job (to know
> >  which concrete implementation of I has been marshalled).
> >
> >  the only thing i'm not doing here (which is important) is verifying
> >  that:
> >
> >    a. the type of the unmarshalled element is mapped
> >    b. the type of the unmarshalled element is an instance of I
> >
> >  i'm hoping that there's already a way to do this in jibx without a 
> >  customer marshaller.  if not, then i think something like the above
> >  might be useful to include in/add to jibx.
> >
> >thanks, eitan
> >
> >
> >
> >-------------------------------------------------------
> >SF.Net email is Sponsored by the Better Software Conference & EXPO
> >September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
> >Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
> >Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
> >_______________________________________________
> >jibx-users mailing list
> >[email protected]
> >https://lists.sourceforge.net/lists/listinfo/jibx-users
> >
> >  
> >
> 
> 
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO
> September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
> Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
> Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
> _______________________________________________
> jibx-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jibx-users


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
jibx-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to