1 15 package org.apache.tapestry.enhance; 16 17 import java.lang.reflect.Constructor ; 18 19 import org.apache.hivemind.ApplicationRuntimeException; 20 import org.apache.hivemind.Location; 21 import org.apache.hivemind.util.Defense; 22 import org.apache.tapestry.services.ComponentConstructor; 23 24 28 public class ComponentConstructorImpl implements ComponentConstructor 29 { 30 private Location _location; 31 32 private Constructor _constructor; 33 34 private Object [] _parameters; 35 36 private String _classFabString; 37 38 51 52 public ComponentConstructorImpl(Constructor constructor, Object [] parameters, 53 String classFabString, Location location) 54 { 55 Defense.notNull(constructor, "constructor"); 56 _constructor = constructor; 57 _parameters = parameters; 58 _classFabString = classFabString; 59 _location = location; 60 } 61 62 public Class getComponentClass() 63 { 64 return _constructor.getDeclaringClass(); 65 } 66 67 public Object newInstance() 68 { 69 try 70 { 71 Object result = _constructor.newInstance(_parameters); 72 73 76 _classFabString = null; 77 78 return result; 79 } 80 catch (Throwable ex) 81 { 82 throw new ApplicationRuntimeException(EnhanceMessages.instantiationFailure( 83 _constructor, 84 _parameters, 85 _classFabString, 86 ex), null, _location, ex); 87 } 88 } 89 90 } | Popular Tags |