KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > xml > nuts > SynchronizedNut


1 package jfun.yan.xml.nuts;
2
3 import jfun.yan.Binder;
4 import jfun.yan.Creator;
5
6 /**
7  * Decorate a Binder by putting operations on the bound variable
8  * in a synchronized block. The pseudo code is:
9  * <pre>
10  * bind(Object v){
11  * synchronized(v){
12  * do operation on v.
13  * }
14  * }
15  * </pre>
16  * <p>
17  * @author Ben Yu
18  * Nov 12, 2005 7:09:29 PM
19  */

20 public class SynchronizedNut extends DelegatingBinderNut {
21
22   public Binder eval() throws Exception JavaDoc {
23     final Binder binder = getMandatory();
24     return new Binder(){
25       public Creator bind(Object JavaDoc v)
26       throws Throwable JavaDoc{
27        synchronized(v){
28          return binder.bind(v);
29        }
30       }
31       public String JavaDoc toString(){
32         return binder.toString();
33       }
34     };
35   }
36
37 }
38
Popular Tags