ClassBodyEvaluator cbe = new ClassBodyEvaluator(); if ( clsloader == null ) { cbe.setParentClassLoader( Thread.currentThread().getContextClassLoader() );
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[]{Condition.class}); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.setParentClassLoader(ClassBodyEvaluator.class.getClassLoader()); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[] { Condition.class }); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.setParentClassLoader(ClassBodyEvaluator.class.getClassLoader()); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[] { Condition.class }); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.setParentClassLoader(ClassBodyEvaluator.class.getClassLoader()); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[] { Condition.class }); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.setParentClassLoader(ClassBodyEvaluator.class.getClassLoader()); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[] { Condition.class }); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.setParentClassLoader(ClassBodyEvaluator.class.getClassLoader()); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[] { Condition.class }); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.setParentClassLoader(ClassBodyEvaluator.class.getClassLoader()); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[] { Condition.class }); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.setParentClassLoader(ClassBodyEvaluator.class.getClassLoader()); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[]{Condition.class}); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[]{Condition.class}); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
public Condition build(String script) throws IllegalAccessException, CompileException, InstantiationException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setImplementedInterfaces(new Class[]{Condition.class}); cbe.setExtendedClass(PropertyWrapperForScripts.class); cbe.setParentClassLoader(ClassBodyEvaluator.class.getClassLoader()); cbe.cook(SCRIPT_PREFIX + script + SCRIPT_SUFFIX); Class<?> clazz = cbe.getClazz(); Condition instance = (Condition) clazz.newInstance(); Method setMapMethod = clazz.getMethod("setPropertyContainers", PropertyContainer.class, PropertyContainer.class); setMapMethod.invoke(instance, localPropContainer, context); return instance; }
private static Function1<DataContext, Object[]> compile(String code, Object reason) { try { final ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setClassName(GENERATED_CLASS_NAME); cbe.setExtendedClass(Utilities.class); cbe.setImplementedInterfaces(new Class[] {Function1.class, Serializable.class}); cbe.setParentClassLoader(RexExecutable.class.getClassLoader()); cbe.cook(new Scanner(null, new StringReader(code))); Class c = cbe.getClazz(); //noinspection unchecked final Constructor<Function1<DataContext, Object[]>> constructor = c.getConstructor(); return constructor.newInstance(); } catch (CompileException | IOException | InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { throw new RuntimeException("While compiling " + reason, e); } }
ClassBodyEvaluator evaluator = new ClassBodyEvaluator( new Scanner( null, stringReader ), abstractClass, new Class[ 0 ], classLoader );
private static Function1<DataContext, Object[]> compile(String code, Object reason) { try { final ClassBodyEvaluator cbe = new ClassBodyEvaluator(); cbe.setClassName(GENERATED_CLASS_NAME); cbe.setExtendedClass(Utilities.class); cbe.setImplementedInterfaces(new Class[] {Function1.class, Serializable.class}); cbe.setParentClassLoader(RexExecutable.class.getClassLoader()); cbe.cook(new Scanner(null, new StringReader(code))); Class c = cbe.getClazz(); //noinspection unchecked final Constructor<Function1<DataContext, Object[]>> constructor = c.getConstructor(); return constructor.newInstance(); } catch (CompileException | IOException | InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { throw new RuntimeException("While compiling " + reason, e); } }
@SuppressWarnings("unchecked") public <S> Class<S> compileClassBody(Reader classBody, Class<S> superClass, ClassLoader classLoader) throws CompileException { try { return new ClassBodyEvaluator(new Scanner(null, classBody), superClass, new Class[0], classLoader).getClazz(); } catch (Throwable t) { throw new CompileException(t); } finally { IOUtils.closeQuietly(classBody); } }