It's intentional...

This is the unwrapped type (wrapperStyle=false), but we define a
source-databinding wrapper (non-null) to help us transform to the
wrapped type.

Though the names aren't the best.. I don't think it's too bad until we
added the 'sourceBare' to the mix.

I think Raymond added this... correct if I'm wrong... but I think the
reason we need it is that we might have a @SOAPBinding BARE annotation
in Java mapped to a WSDL that would actually qualify for wrapper
style.

Since our introspection/construction of the Java and WSDL interfaces
happen separately... we can't take the Java into account when
introspecting the WSDL.   So we need a flag that says.. though the
WSDL looks like there should be a wrapping/unwrapping along with the
transform... we actually don't want one.

Simon mentioned in our offline conversation that you'd think in most
cases only the bare/wrapped mapping would even be valid, but you can
imagine a signature like:  void myMethod(DataObject obj)  where the
same Java could map to either the wrapper element or its single child.

So we signal that we should go down that third block (child->child
mediation with no wrapper) by choosing to not create a wrapper when we
introspect the Java, and then calculating 'sourceBare' as we do in
I2I.

I think that's what's going on anyway..

I do think if we started from scratch and considered all the
combinations of the wrapped vs. bare Java/WSDL interfaces we could
probably find a clearer way of naming/coding this.. but I'm not sure
it's worth taking it that far..   but reanming the sourceBare check as
we discussed would be nice.

Scott

Reply via email to