Aggregation api used by Coins
Bill la Forge
b.laforge at jxml.com
Mon Oct 12 02:53:59 BST 1998
The aggrigation code used by Coins is available
without commercial restriction:
(Slect the services981011.zip file)
In Coins, Aggregation builds on a cactus stack of services. CoinsDocument
is an interface which extends org.w3c.dom.Document and
com.jxml.services.ServiceItem, which allows it to participate in an Aggregate.
>From: Peter Murray-Rust <peter at ursus.demon.co.uk>
>>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
>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 ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev