@@ -0,0 +1,1573 @@
+package org.realityforge.arez.annotations;%0A%0Aimport java.lang.annotation.ElementType;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0Aimport java.lang.annotation.Target;%0A%0A/**%0A * Marks classes that contain Observable properties.%0A *%0A * %3Cp%3EThe annotation controls the way that contained observables are named. If names are%0A * not enabled in the system, this annotation has no effect.%3C/p%3E%0A *%0A * %3Cp%3EThe %7B@link #name()%7D value indicates the type name for all instances of this object.%0A * If not specified it will default to the SimpleName of the class. i.e. The class%0A * %3Ctt%3Ecom.biz.models.MyModel%3C/tt%3E will default to a name of %22MyModel%22.%3C/p%3E%0A *%0A * %3Cp%3EThe %7B@link #singleton()%7D indicates whether there are expected to be multiple%0A * instances of this type. If the method returns true then the debug name of%0A * contained observables will not include the %22id%22 of the instance.%3C/p%3E%0A *%0A * %3Cp%3EThe name of any observables contained within the container follows the pattern%0A * %22%5BContainer.name%5D.%5BContainer.id%5D.%5BObservable.name%5D%22 for non singletons and%0A * %22%5BContainer.name%5D.%5BObservable.name%5D%22 for singletons.%3C/p%3E%0A */%0A@Retention( RetentionPolicy.RUNTIME )%0A@Target( ElementType.TYPE )%0Apublic @interface Container%0A%7B%0A  /**%0A   * Return the name of the type.%0A   *%0A   * @return the name of the type.%0A   */%0A  String name() default %22%22;%0A%0A  /**%0A   * Return true if the container can only have a single instance, false otherwise.%0A   *%0A   * @return true if the container can only have a single instance, false otherwise.%0A   */%0A  boolean singleton() default false;%0A%7D%0A

Add annotation controlling debug naming of nexted observables and actions