private static ThrowUnchecked generateImpl() { RuntimeClassFile cf = new RuntimeClassFile(null, ThrowUnchecked.class.getName()); cf.addDefaultConstructor(); CodeBuilder b = new CodeBuilder (cf.addMethod(Modifiers.PROTECTED, "doFire", null, new TypeDesc[] {TypeDesc.forClass(Throwable.class)})); b.loadLocal(b.getParameter(0)); b.throwObject(); try { return (ThrowUnchecked) cf.defineClass().newInstance(); } catch (Exception e) { throw new Error(e); } }
cf = new RuntimeClassFile(prefix, null, objectType.getClassLoader()); cf.setSourceFile(QuickConstructorGenerator.class.getName()); cf.setTarget("1.5");
private Class<T> createWrapper() { RuntimeClassFile cf = new RuntimeClassFile(mType.getName()); cf.addInterface(mType); cf.markSynthetic();
private static RuntimeClassFile generateClassFile(Class beanType, PropertySet set) { BeanProperty[][] props = getBeanProperties(beanType, set); RuntimeClassFile cf = new RuntimeClassFile (BeanPropertyAccessor.class.getName(), BeanPropertyAccessor.class.getName(), beanType.getClassLoader()); cf.markSynthetic(); cf.setSourceFile(BeanPropertyAccessor.class.getName()); try { cf.setTarget(System.getProperty("java.specification.version")); } catch (Exception e) { } MethodInfo ctor = cf.addConstructor(Modifiers.PUBLIC, null); ctor.markSynthetic(); CodeBuilder b = new CodeBuilder(ctor); b.loadThis(); b.invokeSuperConstructor(null); b.returnVoid(); generateAccessMethod(cf, beanType, props[0], READ_METHOD); generateAccessMethod(cf, beanType, props[0], TRY_READ_METHOD); generateAccessMethod(cf, beanType, props[0], HAS_READ_METHOD); generateAccessMethod(cf, beanType, props[1], WRITE_METHOD); generateAccessMethod(cf, beanType, props[1], TRY_WRITE_METHOD); generateAccessMethod(cf, beanType, props[1], HAS_WRITE_METHOD); generateSearchMethod(cf, beanType, props[0]); return cf; }
public RuntimeClassFile createClassFile() { RuntimeClassFile cf = new RuntimeClassFile (PatternMatcher.class.getName(), PatternMatcher.class.getName(),
private Class<?> generateClass(ScoreFormulaLexer lexer, int funcNum) throws Exception { // initialize the code generator RuntimeClassFile cf = new RuntimeClassFile("UserDefinedFunction_"+funcNum); cf.addInterface("com.flaptor.indextank.index.scorer.ScoreFunction"); cf.addDefaultConstructor(); docVarType = TypeDesc.forClass("com.flaptor.indextank.index.scorer.Boosts"); // DocVariables queryVarType = TypeDesc.forClass("com.flaptor.indextank.query.QueryVariables"); // Variables params = new TypeDesc[] {TypeDesc.DOUBLE, TypeDesc.INT, docVarType, queryVarType}; MethodInfo mi = cf.addMethod(Modifiers.PUBLIC, "score", TypeDesc.DOUBLE, params); b = new CodeBuilder(mi); scoreParam = b.getParameter(0); ageParam = b.getParameter(1); docVarParam = b.getParameter(2); queryVarParam = b.getParameter(3); // parse and generate code start(); error = error == null ? lexer.getError() : error; if (null != error) { throw error; } // return the generated class Class<?> clazz = cf.defineClass(); return clazz; }
static RuntimeClassFile createRuntimeClassFile(String name, ClassLoader loader) { if (name.startsWith("java.")) { // Rename to avoid SecurityException. name = "java$" + name.substring(4); } /* // Use a middle loader to support unloading of generated classes. // TODO: more than one class? class MiddleLoader extends ClassLoader { MiddleLoader() { } MiddleLoader(ClassLoader parent) { super(parent); } }; if (loader == null) { loader = new MiddleLoader(); } else { loader = new MiddleLoader(loader); } */ return new RuntimeClassFile(name, null, loader); }
private Class generateComparatorClass(Rules rules) { RuntimeClassFile cf = new RuntimeClassFile (getClass().getName(), null, mBeanClass.getClassLoader()); cf.markSynthetic();
private static ThrowUnchecked generateImpl() { RuntimeClassFile cf = new RuntimeClassFile(null, ThrowUnchecked.class.getName()); cf.addDefaultConstructor(); CodeBuilder b = new CodeBuilder (cf.addMethod(Modifiers.PROTECTED, "doFire", null, new TypeDesc[] {TypeDesc.forClass(Throwable.class)})); b.loadLocal(b.getParameter(0)); b.throwObject(); try { return (ThrowUnchecked) cf.defineClass().newInstance(); } catch (Exception e) { throw new Error(e); } }
cf = new RuntimeClassFile(prefix, null, objectType.getClassLoader()); cf.setSourceFile(QuickConstructorGenerator.class.getName()); cf.setTarget("1.5");
RuntimeClassFile cf = new RuntimeClassFile(baseName, superName, baseType.getClassLoader()); cf.setSourceFile(Wrapper.class.getName()); cf.markSynthetic();
private Class<T> createWrapper() { RuntimeClassFile cf = new RuntimeClassFile(mType.getName()); cf.addInterface(mType); cf.markSynthetic();
RuntimeClassFile cf = new RuntimeClassFile (name, superClassName, new Loader(admin), null, true);
private static RuntimeClassFile generateClassFile(Class beanType, PropertySet set) { BeanProperty[][] props = getBeanProperties(beanType, set); RuntimeClassFile cf = new RuntimeClassFile (BeanPropertyAccessor.class.getName(), BeanPropertyAccessor.class.getName(), beanType.getClassLoader()); cf.markSynthetic(); cf.setSourceFile(BeanPropertyAccessor.class.getName()); cf.setTarget("1.5"); MethodInfo ctor = cf.addConstructor(Modifiers.PUBLIC, null); ctor.markSynthetic(); CodeBuilder b = new CodeBuilder(ctor); b.loadThis(); b.invokeSuperConstructor(null); b.returnVoid(); generateAccessMethod(cf, beanType, props[0], READ_METHOD); generateAccessMethod(cf, beanType, props[0], TRY_READ_METHOD); generateAccessMethod(cf, beanType, props[0], HAS_READ_METHOD); generateAccessMethod(cf, beanType, props[1], WRITE_METHOD); generateAccessMethod(cf, beanType, props[1], TRY_WRITE_METHOD); generateAccessMethod(cf, beanType, props[1], HAS_WRITE_METHOD); generateSearchMethod(cf, beanType, props[0]); return cf; }
public RuntimeClassFile createClassFile() { RuntimeClassFile cf = new RuntimeClassFile (PatternMatcher.class.getName(), PatternMatcher.class.getName(),
private Class generateComparatorClass(Rules rules) { RuntimeClassFile cf = new RuntimeClassFile (getClass().getName(), null, mBeanClass.getClassLoader()); cf.markSynthetic();