Aggregation api used by Coins

Bill la Forge b.laforge at
Mon Oct 12 02:53:59 BST 1998

The aggrigation code used by Coins is available 
without commercial restriction:
(Slect the file)

In Coins, Aggregation builds on a cactus stack of services. CoinsDocument
is an interface which extends org.w3c.dom.Document and, which allows it to participate in an Aggregate.


>From: Peter Murray-Rust <peter at>
>>Question in return, what exactly is delegation and can you give an example.
>>[It's been mentioned both in the context of Java classes and link-catalogs].
>I think it has to do with aggregation. A client of the aggregate requests a
>delegate of the aggregate which supports a particular interface. At least, this
>is what I've been assuming...
>This is the heart of COM and was to be a part of JavaBeans. It is also the
>key to advanced Coin applications, as the CoinsDocument class is part of
>an aggregate.
>It is important in Java, to get arround single-inheritence. I believe the problem
>with the JavaSoft aggregation was that the client specified a Class object,
>requiring that the tree of classes ('cause you must include interfaces) had
>to be searched for each object in the aggregate collection of objects.
>Coins uses a filter object to select the appropriate delegate. This means that
>(1) you can simply use the instanceof operator in the filter match method instead
>of having to do the class tree search and (2) you can select based on any 
>criteria, allowing for selection based on role.
>(I need to make this package accessable again on the Coins web page. Its freeware.)
>Now since there is no standard api (for Java), its kinda hard to give a 
>simple example, code wise. But lets say that we have a Juggler with two listener
>registration interfaces, one for start and one for stop. If the Juggler were a single class, 
>you would simply cast the Juggler object to the appropriate interface. Unfortunately, that 
>means that the two interfaces can not have any common methods.
>If the registration interfaces for start and stop were seperate objects, but were different
>interface types, then you could ask the Juggler aggregate object for, say, an instance of 
>the startListenerRegistration object.
>If role were supported, then the objects supporting the ActionListenerRegistration
>interface could be requested as the "start" object or the "stop" object.

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list