OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Aggregation api used by Coins

[ Lists Home | Date Index | Thread Index ]
  • From: "Bill la Forge" <b.laforge@jxml.com>
  • To: <xml-dev@ic.ac.uk>
  • Date: Sun, 11 Oct 1998 20:55:06 -0400

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@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
>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@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS