IMO, "abstract" is limited to its Java definition, and is of no
consequence to the runtime inheritance processing (note that
'resolvingInherited' query property is true by default). So the most
important aspect of it is generating a corresponding Java class with
an "abstract" keyword, so that Java could throw on any attempts to
instantiate it.
Andrus
On May 31, 2007, at 3:32 AM, Aristedes Maniatis wrote:
On 31/05/2007, at 2:40 AM, Kevin Menard wrote:
I'm clearly showing my ignorance on the matter here, but what does it
mean for an object to know that it's abstract? Isn't that a
property of
the class? What happens when you subclass the ObjEntity?
Cayenne will need to know this information. For instance, you might
have inheritance with an abstract superclass Person. Then
performing a query on that class, Cayenne will need to
automatically return objects of Student and Tutor subclasses and
not the Person superclass. Effectively the flag
"setResolvingInherited" will be switched on automatically.
If nothing else, this information needs to be stored in the Datamap
and the logical place is in the ObjEntity itself.
When we get to vertical inheritance there will be at least one
other property added to the ObjEntity: the name of the relationship
used to find the superclass.
Ari Maniatis
-------------------------->
Aristedes Maniatis
phone +61 2 9660 9700
PGP fingerprint 08 57 20 4B 80 69 59 E2 A9 BF 2D 48 C2 20 0C C8