Hi Andy,
On Aug 12, 2005, at 12:16 PM, Andy Jefferson wrote:
Issue 106 is the biggest single problem. It is about mapping Object
fields, which are covered in the specification. Section 6.4.3 says
the implementation must support Object fields as First Class Objects.
OK, but the wording of that part of the spec was discussed in the
EG back on
02 April 2005 (thread titled "updates to tck11 project", for those
with EG
access) and the general conclusion was that it was totally vague,
and maybe a
JDO implementation should be able to map "some PC type" to that
Object field
but how it can be testable by the TCK is open to debate. How does
the JDO
impl know that this Object field can only be a "SimpleClass" PC object
maybe ? There's no info that I can see in the metadata to define this.
Good point. I was thinking perhaps we should use the same technique
that we have already used to good effect with collections and maps.
What if we define a new attribute on field called field-type, and for
the TCK we put in "...SimpleClass"? Would that allow you to map it?
The issue is that Object types need to be supported, but as you point
out, there's not enough metadata to give an implementation a clue how
to do it.
What do you think? If it's doable, I can raise it to the jdo-experts.
Thanks for your quick feedback!
Craig
It's the same problem space as interfaces. With those we have the
"implements"
attribute which tells us which actual types we can store there.
Consequently
JPOX models an interface field as being one FK for each
implementation type
(so if there are 3 possible implementations, then the schema has 3
FKs). With
"Object" we have nothing to go on, so at the time of mapping the
schema we
know that we may have to map something. Clearly the JDO
implementation could
define an extension tag (akin to the JPOX "implementation-classes"
that we
had for interfaces) that defines that this Object field can be
represented by
these 2 PC types, but that becomes not testable by the TCK at that
point.
If there's some action on JPOX from this, just let us know so we
can work out
what is needed.
--
Andy
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:[EMAIL PROTECTED]
P.S. A good JDO? O, Gasp!