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; }
ClassBodyEvaluator cbe = new ClassBodyEvaluator(); if ( clsloader == null ) { cbe.setParentClassLoader( Thread.currentThread().getContextClassLoader() ); } else { cbe.setParentClassLoader( clsloader ); cbe.setClassName( def.getClassName() ); cbe.setExtendedType( TransformClassBase.class ); sr = new StringReader( def.getTransformedSource() ); } else { cbe.setDefaultImports( new String[] { "org.pentaho.di.trans.steps.userdefinedjavaclass.*", "org.pentaho.di.trans.step.*", "org.pentaho.di.core.row.*", "org.pentaho.di.core.*", "org.pentaho.di.core.exception.*" } ); cbe.cook( new Scanner( null, sr ) ); rtn = cbe.getClazz(); UserDefinedJavaClassMeta.classCache.put( checksum, rtn ); return rtn;
@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); } }
public RexExecutable(String code, Object reason) { try { //noinspection unchecked compiledFunction = (Function1) ClassBodyEvaluator.createFastClassBodyEvaluator( new Scanner(null, new StringReader(code)), GENERATED_CLASS_NAME, Utilities.class, new Class[] {Function1.class, Serializable.class}, getClass().getClassLoader()); } catch (CompileException e) { throw new RuntimeException("While compiling " + reason, e); } catch (IOException e) { throw new RuntimeException("While compiling " + reason, e); } this.code = code; }
ClassBodyEvaluator evaluator = new ClassBodyEvaluator( new Scanner( null, stringReader ), abstractClass, new Class[ 0 ], classLoader ); cachedTargetType = evaluator.getClazz(); targetType = cachedTargetType;
/** * @param clazz * @param props * @return a compiled delegate * @see nuggets.IDelegateGenerator#generateDelegate(java.lang.Class, java.util.Map) */ public IDelegate generateDelegate(Class clazz, Map props, ClassLoader classloader) { String classbody = createDelegateClassBody(clazz, props); // System.out.println("BeanAnalyzer: generating delegate for class "+clazz.getName() +"\n"+classbody); // System.out.println("cl: "+Thread.currentThread().getContextClassLoader()); try { return (IDelegate)ClassBodyEvaluator.createFastClassBodyEvaluator(new Scanner( "<generated>", new StringReader(classbody)), "persistence.Delegate" + clazz.getName(), AGeneratedDelegate.class, new Class[]{IDelegate.class}, classloader); } catch(Exception e) { throw new PersistenceException(e); } }
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 static Object evaluate(String classBody,Class extendedType,Class[] implementedTypes) { Object data = null; try { Scanner scanner = new Scanner(null, new StringReader(classBody)); data = ClassBodyEvaluator.createFastClassBodyEvaluator(scanner,extendedType.getName()+"$ClassBodyEvaluatorUtil$",extendedType,implementedTypes,null); } catch (CompileException e) { throw new CompileRuntimeException(e); } catch (ParseException e) { throw new ParseRuntimeException(e); } catch (ScanException e) { throw new ScanRuntimeException(e); } catch (IOException e) { throw new IORuntimeException(e); } return data; } }
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; }
try { bindable = (Bindable) ClassBodyEvaluator.createFastClassBodyEvaluator( new Scanner(null, new StringReader(s)), expr.name,
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; }
protected Object compileSrc(String src,BasicCompileInfo info) { Object data; try { if(logger.isDebugEnabled()) { logger.debug("compile "+info.getOutputClassName()+"\n"+src); } Scanner scanner = new Scanner(null, new StringReader(src)); Class baseClass = info.getBaseClass(); Class interfaceClass[] = info.getInterfaceClass(); data = ClassBodyEvaluator.createFastClassBodyEvaluator(scanner,info.getOutputClassName(),baseClass,interfaceClass,null); } catch (CompileException e) { compileProcessError(src,info.getBaseObject(),e.getLocation(),e.getMessage()); throw new CompileRuntimeException(e); } catch (ParseException e) { compileProcessError(src,info.getBaseObject(),e.getLocation(),e.getMessage()); throw new ParseRuntimeException(e); } catch (ScanException e) { compileProcessError(src,info.getBaseObject(),e.getLocation(),e.getMessage()); throw new ScanRuntimeException(e); } catch (IOException e) { throw new IORuntimeException(e); } return data; }
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.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; }
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); } }
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); } }