View Javadoc

1   /*
2    * ConvertedClosure.java created on 12.10.2006
3    *
4    * To change this generated comment go to 
5    * Window>Preferences>Java>Code Generation>Code and Comments
6    */
7   package org.codehaus.groovy.runtime;
8   
9   import java.lang.reflect.Method;
10  import java.util.Map;
11  
12  import groovy.lang.Closure;
13  
14  /***
15   * This class is a general adapter to adapt a map of closures to
16   * any Java interface.
17   * <p>
18   * @author <a href="mailto:blackdrag@gmx.org">Jochen Theodorou</a>
19   */
20  public class ConvertedMap extends ConversionHandler {
21          
22      /***
23       * to create a ConvertedMap object.
24       * @param map the map of closres
25       */
26      protected ConvertedMap(Map closures) {
27          super(closures);
28      }
29      
30      public Object invokeCustom(Object proxy, Method method, Object[] args)
31      throws Throwable {
32          Map m = (Map) getDelegate();
33          Closure cl = (Closure) m.get(method.getName());
34          return cl.call(args);
35      }
36      
37      public String toString() {
38          return DefaultGroovyMethods.toString((Map) getDelegate());
39      }
40  }
41