net.sf.staccatocommons.restrictions.value
Annotation Type Unmodifiable


@Documented
@Inherited
@Restriction
@Retention(value=SOURCE)
@Target(value={TYPE,METHOD})
public @interface Unmodifiable

Unmodifiables are objects that do not expose publicly any method that may modify receiver internal state, if any. However, object's state can still be mutated indirectly, if it holds and/or exposes references to objects that may be mutated

Unmodifiables can still implement lazy initialization and/or caching, as long as it remains encapsulated and is not exposed publicly

Types annotated as Unmodifiable denote that all their instances grant to have such property. Methods annotated as Unmodifiable denote that all the objects returned by them have such property.

Author:
flbulgarelli
See Also:
Restriction



Copyright © 2010-2012 StaccatoCommons. All Rights Reserved.