hivemind-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Achim Hügen <>
Subject Re: Changes in 2.0 branch
Date Wed, 08 Nov 2006 09:20:49 GMT
Good point. It's not quite obvious what happens with the
root-element-class if  a schema-assignment is used.
It is ignored completely.

I attached the root-element-class to the schema because a schema is
reusable and the users shouldn't need do define the class redundantly.
Additionally the schema rules are heavily depending on the container class.

The best solution might be to rename "root-element-class" to
"required-container-class" and add a optional "container-class" attribute
to the configuration point like you suggested.

1. if the configuration point specifies a container-class it has priority.
  An instance of that class is created and passed to the schema.
  The schema checks if that class is compatible with its 
2. if  the configuration point doesn't specifiy a container-class then
   the required-container-class of the schema is used.
3. if the schema is assigned afterwards then the original configuration 
  definition determines the container class. The schema
  just checks if it is compatible like in case 1.

"required-container-class" even could be an interface. Case 2 would
throw an exception then.


Knut Wannheden schrieb:
> Nice!
> I've already got a question :-) Why is in the XML example the
> "root-element-class" on the <schema> element? I would have expected it
> on the <configuration> element as in the case of a <schema-assignment>
> the class of the container object will be given by the referenced
> configuration. Also I think the name "root-element-class" is not quite
> appropriate as it's not really tied to the root element. (Moreover the
> schema may define multiple root elements.)
> How about something like:
>  <configuration-point id="ObjectProviders"
> container-interface="java.util.Map"
> container-class="java.util.HashMap">
> ?
> --knut
> On 11/7/06, Achim Hügen <> wrote:
>> Hi,
>> I've finished a short overview of the changes in the annotation branch:

>> Have fun
>> Achim

View raw message