Hi!
I have been working for a looong time now on removing ImmutableProperty
and replacing it with @Immutable Property. This is now committed. The
same goes for ComputedProperty, which is now done as @Computed Property.
This means that there is only one interface for properties, namely Property.
It is also possible to declare @Immutable on the interface of the
property. Such as:
@Immutable
interface Nameable
{
Property<String> name();
}
This will allow properties to be defined as mutable, but then used in an
immutable context:
interface Nameable
{
Property<String> name();
}
@Immutable
interface PersonValue
extends Nameable, Composite
{}
This makes it possible to use name() both as mutable and immutable
property, which I think is a good thing. Same goes for @Computed.
I've also changed so that now the property is actually set as mutable
during composite builder time. If you ask property.isImmutable() on an
immutable property when the source is a CompositeBuilder, the result
will be false. This properly ensures that the semantics are correct, and
that you can edit a composite in a UI with automatic detection of what
can be edited, and what cannot be edited.
/Rickard
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev