@@ -0,0 +1,1336 @@
+package javax.annotation.concurrent;%0A%0A%0Aimport java.lang.annotation.Documented;%0Aimport java.lang.annotation.ElementType;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0Aimport java.lang.annotation.Target;%0A%0A%0A/*%0A * Copyright (c) 2005 Brian Goetz%0A * Released under the Creative Commons Attribution License%0A *   (http://creativecommons.org/licenses/by/2.5)%0A * Official home: http://www.jcip.net%0A */%0A%0A%0A/**%0A * Immutable%0A * %0A * The class to which this annotation is applied is immutable. This means that%0A * its state cannot be seen to change by callers. Of necessity this means that%0A * all public fields are final, and that all public final reference fields refer%0A * to other immutable objects, and that methods do not publish references to any%0A * internal state which is mutable by implementation even if not by design.%0A * Immutable objects may still have internal mutable state for purposes of%0A * performance optimization; some state variables may be lazily computed, so%0A * long as they are computed from immutable state and that callers cannot tell%0A * the difference.%0A * %0A * Immutable objects are inherently thread-safe; they may be passed between%0A * threads or published without synchronization.%0A */%0A@Documented%0A@Target(ElementType.TYPE)%0A@Retention(RetentionPolicy.CLASS)%0Apublic @interface Immutable %7B%0A%7D%0A

Create Immutable.java