hivemind-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Achim Hügen <achim.hue...@gmx.de>
Subject Re: Changes in 2.0 branch
Date Tue, 07 Nov 2006 17:52:01 GMT
The target type is determined by the transformer,
but it expects the source contributions as list doesn't it?
That would mean, that the contribution method in the example
below gets a List passed in as parameter?

Achim

Am Tue, 07 Nov 2006 17:28:12 +0100 schrieb James Carman  
<james@carmanconsulting.com>:

> No, it doesn't limit it to lists.  The list of contributions are
> "transformed" by the transformer into whatever is desired.
>
>
> On 11/7/06, Achim Hügen <achim.huegen@gmx.de> wrote:
>> James,
>>
>> It's not quite clear to me which problems you are trying to solve with
>> the transformers. Is it an additional feature?
>>
>> Your proposal would limit the contributions to lists again. This
>> limitation doesn't
>> feel natural in the annotation world. Here is another example which
>> shows how to use a more complex object as container.
>>
>> public class ExampleModule
>> {
>>   @Configuration(id = "strutsModule")
>>   public ModuleConfig getStrutsModule()
>>   {
>>     return new ModuleConfigImpl();
>>   }
>>
>>   @Contribution(configuration-id = "strutsModule")
>>   public void contributeToStrutsModule(ModuleConfig config)
>>   {
>>     config.addActionConfig(new ActionConfig());
>>     config.addFormBeanConfig(new MyFormBeanConfig());
>>   }
>> }
>>
>> Achim
>>
>> James Carman schrieb:
>> > Well, how about this for the configuration/contribution stuff?  We
>> > introduce the concept of a ContributionTransformer (to borrow a term
>> > from commons collections):
>> >
>> > public interface ContributionTransformer
>> > {
>> >  public Object transform( List contributions );
>> > }
>> >
>> > Each configuration point can have a ContributionTransformer assigned
>> > to it.  It uses this to transform its contributed objects into the
>> > desired type.  The default one would just return the list of original
>> > objects, but you can assign your own like this:
>> >
>> > <configuration-point id="blah"
>> > transformer="instance:com.myco.MyContribTransformer">
>> > ...
>> > </configuration-point>
>> > We could provide a couple of useful helper classes like
>> > SingleContributionTransformer which merely returns the first item in
>> > the list.
>> > Also, we could do a MappedContributionTransformer which
>> > transforms a list of MappedContribution objects (name/value pair
>> > essentially) into a HashMap (or you can specify another Map subclass
>> > if you like).  This would allow us to support single-value
>> > configurations easier, because they wouldn't have a "container class."
>> >
>>
>>
>> > On 11/7/06, Achim Hügen <achim.huegen@gmx.de> wrote:
>> >> Hi,
>> >>
>> >> I've finished a short overview of the changes in the annotation  
>> branch:
>> >>
>> >>  
>> http://wiki.apache.org/jakarta-hivemind/NewAndNoteworthyFeaturesInAnnotationBranch
>> >>
>> >>
>> >> Have fun
>> >> Achim
>> >>
>> >>
>> >
>> >
>>
>>
>



Mime
View raw message