1 29 30 package com.caucho.quercus.lib; 31 32 import com.caucho.quercus.env.Env; 33 import com.caucho.quercus.env.JavaValue; 34 import com.caucho.quercus.env.Value; 35 import com.caucho.quercus.module.AbstractQuercusModule; 36 import com.caucho.quercus.program.JavaClassDef; 37 import com.caucho.util.L10N; 38 39 import java.util.logging.Logger ; 40 41 44 public class JavaModule extends AbstractQuercusModule { 45 private static final Logger log = 46 Logger.getLogger(JavaModule.class.getName()); 47 48 private static final L10N L = new L10N(JavaModule.class); 49 50 53 public static Object java(Env env, 54 String className, 55 Value []args) 56 { 57 try { 58 JavaClassDef def = env.getJavaClassDefinition(className); 59 60 if (def != null) 61 return def.callNew(env, args); 62 63 ClassLoader loader = Thread.currentThread().getContextClassLoader(); 64 65 Class cl = Class.forName(className, false, loader); 66 67 try { 68 return cl.newInstance(); 69 } catch (Throwable e) { 70 } 71 72 return new JavaValue(env, null, def); 73 } catch (Throwable e) { 74 env.warning(e); 75 76 return null; 77 } 78 } 79 80 83 public static Object java_class(Env env, 84 String className) 85 { 86 try { 87 JavaClassDef def = env.getJavaClassDefinition(className); 88 89 return new JavaValue(env, null, def); 90 } catch (Throwable e) { 91 env.warning(e); 92 93 return null; 94 } 95 } 96 } 97 98 | Popular Tags |