Sorry for the late response on this one. I've been traveling for 3 weeks 
straight now, and am catching up on email.

Michael Hunger wrote:
> We further did a spike on creating instances of annotations to be
> able to add them to metaInfo at startup time. So, when we include
> that, we can do sth. like the following. (It's done by creating a
> virtual Proxy for the annotation interface - as no other way of
> instantiation works :)
> 
> on(Person.class).with().name().set(annotation(Immutable.class,"ignore",true))
> 
> so we not only can do it at composition (compile-)time but configure
> it later as well.

This could make for some very powerful features, like turning certain 
thing off and on depending on environment, but it's also a slippery 
slope towards flexibilitis (=overflexibility which eventually turns into 
accidental complexity).

> We should but, make MetaInfo an interface, so that the runtime access
> only allows getting the information not changing it at runtime.
> 
> Regarding Immutable.ignore -> on setting immutables you could either
> throw an RuntimeException or silently ignore it. With this boolean
> property you would change the default behaviour of throwing an
> exception.

I would prefer to not have ignore as an option. It's probably better to 
have it there always, and then let clients deal with it as they wish.

/Rickard


_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to