org.modeshape.common.annotation

## Annotation Type Immutable

-     @Documented
      @Target(value=TYPE)
      @Retention(value=RUNTIME)
      public @interface Immutable

  Copyright (c) 2005 Brian Goetz and Tim Peierls.
  Released under the Creative Commons Attribution License
  (http://creativecommons.org/licenses/by/2.5)
  Official home: http://www.jcip.net
  Adopted from Java Concurrency in Practice.

  This annotation documents that instances of the annotated class are immutable. This means that its state is seen to others as never being changed, even though the actual private internal state may indeed change. Therefore, in an immutable class:

  - all public fields are final; and
  - all public final reference fields refer to other immutable objects; and
  - constructors and methods do not publish references to any internal state which is potentially mutable by the implementation.

Copyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.