1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.morph.reflect;
17
18 /**
19 * A reflector that can instantiate objects. This allows the reflector to pick
20 * implementations for interfaces, instantiate arrays, etc. Only classes that
21 * are reflectable by this reflector should be instantiable.
22 *
23 * <p>This reflector is designed to facilitate construction of both simple
24 * objects and objects that do not offer no-argument constructors.
25 *
26 * @author Matt Sgarlata
27 * @since Nov 27, 2004
28 */
29 public interface InstantiatingReflector extends Reflector {
30
31 /**
32 * Creates a new instance of the given type.
33 *
34 * @param clazz
35 * the type for which we would like a new instance to be created
36 * @param parameters
37 * additional information that may be necessary for the implementation to
38 * create the required object (this may be null if the implementation does
39 * not require additional information or the particular object being
40 * requested does not require additional information)
41 * @throws ReflectionException if an error occurs
42 */
43 public Object newInstance(Class clazz, Object parameters) throws ReflectionException;
44
45 }