View Javadoc

1   package net.sourceforge.jparam.conversion.creators;
2   
3   import net.sourceforge.jparam.JParamException;
4   
5   /***
6    * This interface represents a creator object, creator object can create a
7    * specific objects given a specific set of parameters
8    * 
9    * @author Ron_Sidi
10   *
11   */
12  public interface ICreator {
13  	/***
14  	 * Return the <code>Class</code> of the expected object that this creator
15  	 * can create
16  	 * 
17  	 * @return A <code>Class</code> the created object will be instanceof
18  	 */
19  	Class getReturnClass();
20  
21  	/***
22  	 * Returns the type of parameters that this creator expects to recieve
23  	 * <p>
24  	 * If the parameters given to the create method do not conform to these
25  	 * an exception will be thrown
26  	 * 
27  	 * @return A <code>Class[]</code> representing the expected parameter types
28  	 */
29  	Class[] getParameterTypes();
30  
31  	/***
32  	 * Returns an object of type <code>getReturnClass</code> using the given 
33  	 * parameters as input
34  	 * 
35  	 * @param parameters An array of object whose types should conform with
36  	 *        <code>getParameterTypes</code>
37  	 * @return Object created with the parameters
38  	 * @throws JParamException if there was an error during construction of the
39  	 *         object, or if the parameters do not conform to the requierment
40  	 */
41  	Object create(Object[] parameters) throws JParamException;
42  
43  	/***
44  	 * Tests if the given argument index can be null, if the argument type is a
45  	 * primitive one, it should be converted to its wrapper class, but it will
46  	 * not support null as a value
47  	 * 
48  	 * @param index The index of the argument to be tested
49  	 * @return false if the argument represents a primitive type false otherwise
50  	 */
51  	boolean canBeNull(int index);
52  }