@Retention(value=RUNTIME)
 @Target(value={TYPE,METHOD})
public @interface Threading
Annotates a calls or method.
Annotated elements must follow these rulesgriffon.util.GriffonClassUtils.isPlainMethod() if it's a methodgriffon.util.Threading.Policy as value, with Threading.Policy.OUTSIDE_UITHREAD being
 the default value.
The following snippet exemplifies the compactness of code when the annotation is applied
 import griffon.transform.Threading
 class Sample {
     @Threading
     void doSomethingOutside(String arg) {
         println "Outside $arg"
     }
     @Threading(Threading.Policy.INSIDE_UITHREAD_SYNC)
     void doSomethingInside(String arg) {
         println "Inside $arg"
     }
 }
 
 
 The equivalent, non-annotated code is
 import griffon.core.threading.UIThreadManager
 class Sample {
     void doSomethingOutside(String arg) {
         UIThreadManager.instance.runOutsideUI {
             println "Outside $arg"
         }
     }
     void doSomethingInside(String arg) {
         UIThreadManager.instance.runInsideUISync {
             println "Inside $arg"
         }
     }
 }
 Threading.Policy| Modifier and Type | Optional Element and Description | 
|---|---|
| Threading.Policy | value | 
public abstract Threading.Policy value