Note that we already have open JIRA issues on creating prototypes.
It's just that no one's gotten around to implementing it yet. For
example,
https://issues.apache.org/cayenne/browse/CAY-225
On 5/30/07, Andrus Adamchik <andru..bjectstyle.org> wrote:
> Yes, "prototype" is a much better word, and such change in
> terminology is very important for this discussion to go forward, as
> "interface" has a very specific meaning in OO development. Let's
> definitely discuss it separately from the inheritance.
>
> Andrus
>
>
> On May 30, 2007, at 12:32 PM, Aristedes Maniatis wrote:
>
> >
> > On 30/05/2007, at 7:16 PM, Andrus Adamchik wrote:
> >
> >> What I am concerned about with DbEntity interfaces is that
> >> DbEntities model database tables and there is no interface concept
> >> in DB world. So I still don't understand why we need DbEntity
> >> inheritance? Could you please elaborate or give some examples?
> >>
> >> The only use I can see for it is a *coincidental* match between
> >> groups of attributes in multiple tables. So is it worth
> >> complicating the mapping by introducing a concept with no analog
> >> in the DB world? My suspicion is that it will be very hard to
> >> explain to the users.
> >
> > Perhaps 'interface' is just the wrong word. The idea is similar to
> > the WO prototype idea and the most common example is 'money' - you
> > can define a money type once as having scale=2 and then just use
> > that in all the dbEntity attributes.
> >
> > Interfaces in ObjEntities are completely different things again.
> > They create actual interfaces in the Java classes. Perhaps we
> > should also shed some of these extra ideas for now and focus on the
> > main goals:
> >
> > 1. abstract classes
> > 2. horizontal inheritance (where dbEntity=NULL for an objEntity)
> > 3. vertical inheritance (where a special ObjRelationship is created
> > to specify the superclass. There may also need to be a qualifier
> > like with single table - Lachlan thinks yes, I'm dubious.)
> >
> > I believe that is the right order to implement the ideas (easiest
> > to hardest).
> >
> >
> >
> > Simultaneously we can work on interfaces. This has two steps:
> >
> > 1. implement interfaces in the modeller, XML, datamap and class
> > templates but have no runtime code in Cayenne for them. This is
> > very easy and quite useful on its own.
> > 2. implement the ability for SelectQuery to return a mixture of
> > objEntities based on a query of the interface
> >
> > They don't really overlap that much except that some of the issues
> > faced in making queries work may be applicable to both interfaces
> > and inheritance.
> >
> >
> > Finally we have dbEntity interfaces (prototypes) which maybe need
> > another name and are something different again, but maybe we can
> > cut them out of this whole conversation and return to them later?
> > Lachlan, can we drop this one for now?
> >
> >
> > Ari
> >
> >
> > -------------------------->
> > 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
> >
> >
>
>
This archive was generated by hypermail 2.0.0 : Wed May 30 2007 - 11:16:05 EDT