From: Georg Bauhaus <bauhaus@futureapps.de>
Subject: Re: Generic Collection
Date: Fri, 11 May 2007 23:28:34 +0200
Date: 2007-05-11T23:28:35+02:00 [thread overview]
Message-ID: <1178918914.8423.47.camel@localhost.localdomain> (raw)
In-Reply-To: <1178916106.931240.40880@p77g2000hsh.googlegroups.com>
On Fri, 2007-05-11 at 13:41 -0700, andrew wrote:
> On May 11, 3:10 am, Georg Bauhaus <bauh...@futureapps.de> wrote:
> > On Thu, 2007-05-10 at 15:48 -0700, andrew wrote:
> > > On May 10, 2:31 pm, Simon Wright <simon.j.wri...@mac.com> wrote:
> > > > > So, I'm thinking that many of the "capabilities" or operations I
> > > > > desire of the collection would have to be "dispatching" to the type of
> > > > > the collection object.
> >
> > When is the type of the collection object determined? How?
> The statement I made may be misleading. It's not dispatching on the
> type of the collection object but on the type of the object stored in
> the collection. Does that make better sense?
OK.
tuples: collection;
tables: collection;
declare
item: ? := get(tables, key);
If you don't care that there is only one type of collection for
all kinds of objects, then indeed references to DB_thing'class
objects seem a plausible choice for storing table objects in
collection. Where
type DB_thing is abstract tagged private;
type DB_thing_ref is access DB_thing'class;
type attribute is new DB_thing with private;
type tuple is new DB_thing with private;
...
package DB_collections is new Containers.Hashed_Sets
(Element_Type => DB_thing_ref, ...);
subtype collection is DB_collections.Set;
Is there really a sufficiently common algorithm for schemas,
tables, tuples, and attributes?
> > If you want a collection that doesn't collect either Apples
> > or Oranges, but instead is capable of holding Apples, Oranges,
> > Cabbage, Motor_Oil, Whatever, you can have that, too. Is this
> > what you want?
> Yes, but I wouldn't really be storing apples, oranges, cabbage, ... I
> would be storing a common object type like "Object". Right?
Right.
> > > I don't understand why I would have run-time errors. Please expand
> > > that thought.
> >
> > Just think of the consequences of Java pre-1.5 collections delivering
> > nothing but Object objects.
> There was a problem with delivering objects of type Object?
Yes, there was a problem with everything being of type Object.
For example, retrieving references from collections forces
type checking at run time and throwing ClassCastException
when there is a mismatch.
some_ref = (IKnowWhatType) container.get(some_key);
That is a reason why Java now has generics.
next prev parent reply other threads:[~2007-05-11 21:28 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-08 19:29 Generic Collection andrew
2007-05-08 21:00 ` Georg Bauhaus
2007-05-08 21:59 ` andrew
2007-05-09 14:51 ` andrew
2007-05-09 16:12 ` Georg Bauhaus
2007-05-09 18:54 ` andrew
2007-05-10 19:31 ` Simon Wright
2007-05-10 22:48 ` andrew
2007-05-11 8:10 ` Georg Bauhaus
2007-05-11 20:41 ` andrew
2007-05-11 21:28 ` Georg Bauhaus [this message]
2007-05-11 21:55 ` andrew
2007-05-12 7:18 ` Simon Wright
2007-05-12 7:52 ` Dmitry A. Kazakov
2007-05-13 11:00 ` Simon Wright
2007-05-13 12:11 ` Dmitry A. Kazakov
2007-05-16 0:27 ` Randy Brukardt
2007-05-16 6:05 ` Simon Wright
2007-05-16 7:17 ` Untagged types don't work right - was: " Grein, Christoph (Fa. ESG)
2007-05-16 13:27 ` Benjamin Place
2007-05-14 17:09 ` andrew
2007-05-14 20:00 ` Simon Wright
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox