1 29 30 package com.caucho.quercus.module; 31 32 import com.caucho.quercus.QuercusModuleException; 33 import com.caucho.quercus.env.JavaInvoker; 34 import com.caucho.util.L10N; 35 36 import java.lang.reflect.InvocationTargetException ; 37 import java.lang.reflect.Method ; 38 import java.util.logging.Logger ; 39 40 43 public class StaticFunction extends JavaInvoker { 44 private static final L10N L = new L10N(StaticFunction.class); 45 private static final Logger log = 46 Logger.getLogger(StaticFunction.class.getName()); 47 48 protected final QuercusModule _quercusModule; 49 protected final Method _method; 50 51 56 public StaticFunction(ModuleContext moduleContext, 57 QuercusModule quercusModule, 58 Method method) 59 { 60 super(moduleContext, 61 method.getName(), 62 method.getParameterTypes(), 63 method.getParameterAnnotations(), 64 method.getAnnotations(), 65 method.getReturnType()); 66 67 _method = method; 68 _quercusModule = quercusModule; 69 } 70 71 76 public QuercusModule getModule() 77 { 78 return _quercusModule; 79 } 80 81 86 public Method getMethod() 87 { 88 return _method; 89 } 90 91 94 @Override 95 public Object invoke(Object obj, Object []javaArgs) 96 { 97 try { 98 return _method.invoke(_quercusModule, javaArgs); 99 } catch (RuntimeException e) { 100 throw e; 101 } catch (InvocationTargetException e) { 102 throw QuercusModuleException.create(e.getCause()); 103 } catch (Exception e) { 104 throw QuercusModuleException.create(e); 105 } 106 } 107 108 public String toString() 109 { 110 return "StaticFunction[" + _method + "]"; 111 } 112 } 113 | Popular Tags |