comp.lang.ada
 help / color / mirror / Atom feed
From: andrew <andrew.carroll@okstate.edu>
Subject: Re: Generic Collection
Date: 9 May 2007 11:54:47 -0700
Date: 2007-05-09T11:54:47-07:00	[thread overview]
Message-ID: <1178736886.994385.37140@y80g2000hsf.googlegroups.com> (raw)
In-Reply-To: <1178727131.9164.38.camel@kartoffel>

On May 9, 11:12 am, Georg Bauhaus <rm.tsoh+bauh...@maps.futureapps.de>
wrote:
> On Wed, 2007-05-09 at 07:51 -0700, andrew wrote:
> > Actually I take that back.  RDB2 looks promising with respect to how I
> > have my program now.  What I want is to be able to change my program
> > so that I can declare table, tuple and schema to be of a "collection"
> > type like:
>
> > table: collection;
> > tuple: collection;
> > schema: collection;
>
> The question now becomes, do you want table, tuple, and schema
> to have the same behavior? Then you could use instances of the
> same generic collection package, or interface types, or mimick
> duck types... Do you want table, tuple, and schema to be
> interchangeable parameters for some "common" subprograms (other
> than Add)?
>
> Are there cases where you want your program to decide which
> kind of collection it is reading?
>
> > This again would depend on being able to use a common object like Java
> > has.
>
> Interestingly, Java has recently got generics. In part, because
> this circumvents the consequences of everything being an Object.
>
> > What do you think?
>
> 42 if your intent is to blur the distinction between tuple,
> table, and schema to the extent that all have just one common
> type; a reader of you program might then have to inspect quite
> a bit of context to find out what is meant if something goes
> wrong. If this is the case, can you show that the similarities
> implied by Add and such should preclude any explicit distinction
> between tuple, table, and schema?  OTOH, if they are Ada.Containers
> all of them will have a similar interface, even though this fact
> isn't reflected in an interface type.

Since table, tuple and schema are collections I would expect them to
have the same "capability".  So I would expect to be able to add
items, delete items, inspect individual items, change individual
items, sort them, compare them to each other, search them, serialize
individual items and serialize the whole collection.  That's what I
see for now.

There was a problem with my example.  Here is the correction

attr1 : attribute;
attr2 : attribute;
attr3 : attribute;
attr4 : attribute;
attr5 : attribute;
attr6 : attribute;

tuple1 : collection;
tuple1.add(attr1);
tuple1.add(attr2);
tuple1.add(attr3);

tuple2 : collection;
tuple2.add(attr4);
tuple2.add(attr5);
tuple2.add(attr6);

table1 : collection;
table1.add(tuple1);
...add more tuples to table1

table2 : collection;
table2.add(tuple2);
...add more tuples to table2

schema : collection;
schema.add(table1);
schema.add(table2);


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.
Also, for that matter, anything stored in the collection would have to
extend (or possibly implement) a collection_object type.  Is that what
you were saying?





  reply	other threads:[~2007-05-09 18:54 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 [this message]
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
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