当前位置: 首页>>代码示例>>Java>>正文


Java ClassBodyEvaluator类代码示例

本文整理汇总了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;未经允许,请勿转载。