1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.jexl.util.introspection;
18
19
20 import java.util.Iterator;
21
22 /***
23 * 'Federated' introspection/reflection interface to allow the introspection
24 * behavior in Velocity to be customized.
25 *
26 * @author <a href="mailto:geirm@apache.org">Geir Magusson Jr.</a>
27 * @version $Id: Uberspect.java,v 1.4 2004/02/28 13:45:21 yoavs Exp $
28 */
29 public interface Uberspect
30 {
31 /***
32 * Initializer - will be called before use
33 */
34 public void init() throws Exception;
35
36 /***
37 * To support iteratives - #foreach()
38 */
39 public Iterator getIterator(Object obj, Info info) throws Exception;
40
41 /***
42 * Returns a general method, corresponding to $foo.bar( $woogie )
43 */
44 public VelMethod getMethod(Object obj, String method, Object[] args, Info info) throws Exception;
45
46 /***
47 * Property getter - returns VelPropertyGet appropos for #set($foo = $bar.woogie)
48 */
49 public VelPropertyGet getPropertyGet(Object obj, String identifier, Info info) throws Exception;
50
51 /***
52 * Property setter - returns VelPropertySet appropos for #set($foo.bar = "geir")
53 */
54 public VelPropertySet getPropertySet(Object obj, String identifier, Object arg, Info info) throws Exception;
55 }