1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.morph.reflect;
17
18 /**
19 * <p>
20 * An extension of the Reflector interface that defines extra methods. All
21 * methods specified in this interface can be easily implemented using just the
22 * methods in the Reflector interface. Thus, if you are defining your own
23 * reflector you should implement only the Reflector interface. If you extend
24 * from {@link net.sf.morph.reflect.reflectors.BaseReflector}, your reflector
25 * will implement this inteface automatically.
26 * </p>
27 *
28 * <p>
29 * If you don't want to extend from <code>BaseReflector</code>, you can still
30 * easily expose this interface by using the
31 * {@link net.sf.morph.reflect.reflectors.ReflectorDecorator}.
32 * </p>
33 *
34 * @author Matt Sgarlata
35 * @since Dec 13, 2004
36 */
37 public interface DecoratedReflector extends Reflector {
38
39 /**
40 * Indicates whether the given type is reflectable by this reflector.
41 *
42 * @param reflectedType
43 * the type to test
44 * @return <code>true</code>, if this reflector can reflect the given
45 * class or <br>
46 * <code>false</code>, if this reflector cannot reflect the given
47 * class
48 * @throws ReflectionException
49 * if an error occurrs
50 */
51 public boolean isReflectable(Class reflectedType)
52 throws ReflectionException;
53
54 }