• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ClassBodyEvaluator类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.codehaus.janino.ClassBodyEvaluator的典型用法代码示例。如果您正苦于以下问题:Java ClassBodyEvaluator类的具体用法?Java ClassBodyEvaluator怎么用?Java ClassBodyEvaluator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ClassBodyEvaluator类属于org.codehaus.janino包,在下文中一共展示了ClassBodyEvaluator类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: build

import org.codehaus.janino.ClassBodyEvaluator; //导入依赖的package包/类
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;
}
 
开发者ID:cscfa,项目名称:bartleby,代码行数:20,代码来源:PropertyEvalScriptBuilder.java


示例2: compile

import org.codehaus.janino.ClassBodyEvaluator; //导入依赖的package包/类
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);
  }
}
 
开发者ID:apache,项目名称:calcite,代码行数:21,代码来源:RexExecutable.java


示例3: cookClass

import org.codehaus.janino.ClassBodyEvaluator; //导入依赖的package包/类
private Class<?> cookClass(UserDefinedJavaClassDef def) throws CompileException, ParseException, ScanException, IOException, RuntimeException, KettleStepException {
	
    ClassBodyEvaluator cbe = new ClassBodyEvaluator();
    cbe.setClassName(def.getClassName());

    StringReader sr;
    if (def.isTransformClass())
    {
        cbe.setExtendedType(TransformClassBase.class);
        sr = new StringReader(def.getTransformedSource());
    }
    else
    {
        sr = new StringReader(def.getSource());
    }

    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));

    return cbe.getClazz();
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:28,代码来源:UserDefinedJavaClassMeta.java


示例4: prepareEvaluation

import org.codehaus.janino.ClassBodyEvaluator; //导入依赖的package包/类
public void prepareEvaluation() {
	try {
		this.function =  (Function1<DataContext, Object[]>) ClassBodyEvaluator.createFastClassBodyEvaluator(
			new Scanner(null, new StringReader(source)),
			RexExecutable.GENERATED_CLASS_NAME,
			Utilities.class,
			new Class[]{Function1.class , Serializable.class},
			getClass().getClassLoader());
	} catch (Exception e) {
		throw new RuntimeException("Error while compiling the generated code");
	}
}
 
开发者ID:rmetzger,项目名称:stratosphere-sql,代码行数:13,代码来源:Filter.java


示例5: cookClass

import org.codehaus.janino.ClassBodyEvaluator; //导入依赖的package包/类
private Class<?> cookClass( UserDefinedJavaClassDef def ) throws CompileException, ParseException,
  ScanException, IOException, RuntimeException, KettleStepException {

  if ( Thread.currentThread().getContextClassLoader() == null ) {
    Thread.currentThread().setContextClassLoader( this.getClass().getClassLoader() );
  }

  ClassBodyEvaluator cbe = new ClassBodyEvaluator();
  cbe.setParentClassLoader( Thread.currentThread().getContextClassLoader() );
  cbe.setClassName( def.getClassName() );

  StringReader sr;
  if ( def.isTransformClass() ) {
    cbe.setExtendedType( TransformClassBase.class );
    sr = new StringReader( def.getTransformedSource() );
  } else {
    sr = new StringReader( def.getSource() );
  }

  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 ) );

  return cbe.getClazz();
}
 
开发者ID:pentaho,项目名称:pentaho-kettle,代码行数:28,代码来源:UserDefinedJavaClassMeta.java



注:本文中的org.codehaus.janino.ClassBodyEvaluator类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java IConfigurationListener类代码示例发布时间:2022-05-22
下一篇:
Java Priority类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap