okay, I see what you're saying...

the problem with going up a level is that you lose the level of
granularity you sometimes need.  I know that you listed some
workarounds before, and that's what I'm using right now, but it seems
like it'd be a nice little 'enhancement' to allow method hooks at this
level.

Or is it just not possible?  I admit I haven't seen the source code,
so maybe I'm just not getting something.

On Fri, 12 Nov 2004 11:45:43 -0800, Dennis Sosnoski <[EMAIL PROTECTED]> wrote:
> Okay, that makes it clear. The post-set method (along with factory,
> pre-set, and pre-get) only get used when there's an object associated
> with the <structure>. In this case you don't have an actual object, just
> some contained fields. If you go up a level (or more) to where you have
> the definition of your actual object (generally either as a <mapping>
> element or a contained <structure> that references a field of the
> containing object) you can use the post-set method there.
> 
> It should really be an error to specify post-set on a <structure> that
> doesn't define an object. I'll add a check for this in the beta 4 code,
> which has much better error checking and handling in general.
> 
>   - Dennis
> 
> 
> 
> Beet wrote:
> 
> >Here's the fragment from the mapping file:
> >
> >...
> ><structure name="Batch" usage="optional" test-method="hasBatch"
> >post-set="postset">
> >       <value name="TS" style="attribute" field="ts"/>
> >       <value name="MaxKG" field="maxKGPerBatch"/>
> ></structure>
> >...
> >
> >it doesn't matter what I put into "postset" because it doesn't ever
> >get called.  I've run a debugger and it never stops in that method.
> >
> >
> >
> >On Fri, 12 Nov 2004 10:58:50 -0800, Dennis Sosnoski <[EMAIL PROTECTED]> 
> >wrote:
> >
> >
> >>It's probably best if you can show an example of what you're trying to
> >>do, with the fragment of the binding definition and the actual post-set
> >>method code.
> >>
> >>- Dennis
> >>
> >>
> >>
> >>Beet wrote:
> >>
> >>
> >>
> >>>The problem is that I'm using the default attribute to set each
> >>>element value to the empty string if it doesn't exist, so nothing is
> >>>ever null.  Right now I've had to settle for doing similar to what you
> >>>suggested as your second option, but I don't really like it because,
> >>>since nothing is ever null, I use the empty string for comparison.  So
> >>>if all the subelements in my optional structure are empty, then the
> >>>boolean never gets set.
> >>>
> >>>I'm just curious as to why post-set doesn't work in this instance.  Is
> >>>there a reason for this?
> >>>
> >>>
> >>>On Thu, 11 Nov 2004 19:59:00 -0800, Dennis Sosnoski <[EMAIL PROTECTED]> 
> >>>wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Beet wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>I have a XML element, 'Worksheet,' which consists entirely of optional
> >>>>>structures.
> >>>>>
> >>>>>In my java file, I have a bunch of booleans that denote the existence
> >>>>>of the optional structures.  However, after marshalling, I cannot get
> >>>>>JiBX to set these booleans to true if the optional element exists.
> >>>>>The default constructor sets these values to false.  I tried putting
> >>>>>post-set hooks on the optional elements, but they seem to be ignored.
> >>>>>I assume the correct thing to do is to set a post-set on the main
> >>>>>parent, 'Worksheet'.   However, I don't know how to check for the
> >>>>>existence of optional sub-elements at that level.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>There are several ways you could handle this. One would be to use
> >>>>set-methods for the optional structures, and have the set-methods set
> >>>>the corresponding boolean as well as storing the actual object if the
> >>>>value passed in is non-null. Another would be to do basically the same
> >>>>thing in the post-set method, and look for the values that are
> >>>>associated with the optional elements. If the optional element is not
> >>>>present in the document JiBX will set a null value for the corresponding
> >>>>object.
> >>>>
> >>>>Does that help, or is there something I'm not understanding about your
> >>>>requirements?
> >>>>
> >>>> - Dennis
> >>>>
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by:
> Sybase ASE Linux Express Edition - download now for FREE
> LinuxWorld Reader's Choice Award Winner for best database on Linux.
> http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
> _______________________________________________
> jibx-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jibx-users
>


-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
_______________________________________________
jibx-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to