From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,86a457a80a9f4412 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews.google.com!y80g2000hsf.googlegroups.com!not-for-mail From: andrew Newsgroups: comp.lang.ada Subject: Re: Generic Collection Date: 9 May 2007 11:54:47 -0700 Organization: http://groups.google.com Message-ID: <1178736886.994385.37140@y80g2000hsf.googlegroups.com> References: <1178652593.006083.173150@l77g2000hsb.googlegroups.com> <1178658022.9164.17.camel@kartoffel> <1178661586.585164.191690@e51g2000hsg.googlegroups.com> <1178722277.733981.6200@l77g2000hsb.googlegroups.com> <1178727131.9164.38.camel@kartoffel> NNTP-Posting-Host: 139.78.128.110 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Trace: posting.google.com 1178736887 14537 127.0.0.1 (9 May 2007 18:54:47 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Wed, 9 May 2007 18:54:47 +0000 (UTC) In-Reply-To: <1178727131.9164.38.camel@kartoffel> User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322),gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: y80g2000hsf.googlegroups.com; posting-host=139.78.128.110; posting-account=Kq9unQ0AAADh_grEViI3JGqegXKDDjxt Xref: g2news1.google.com comp.lang.ada:15685 Date: 2007-05-09T11:54:47-07:00 List-Id: On May 9, 11:12 am, Georg Bauhaus 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?