groovy.lang.GroovyClassLoader.createCompilationUnit()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(7.9k)|赞(0)|评价(0)|浏览(191)

本文整理了Java中groovy.lang.GroovyClassLoader.createCompilationUnit()方法的一些代码示例,展示了GroovyClassLoader.createCompilationUnit()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。GroovyClassLoader.createCompilationUnit()方法的具体详情如下:
包路径:groovy.lang.GroovyClassLoader
类名称:GroovyClassLoader
方法名:createCompilationUnit

GroovyClassLoader.createCompilationUnit介绍

[英]creates a new CompilationUnit. If you want to add additional phase operations to the CompilationUnit (for example to inject additional methods, variables, fields), then you should overwrite this method.
[中]创建一个新的编译单元。如果要向CompilationUnit添加其他阶段操作(例如,注入其他方法、变量、字段),则应覆盖此方法。

代码示例

代码示例来源:origin: spockframework/spock

@Override
 protected CompilationUnit createCompilationUnit(CompilerConfiguration config, CodeSource source) {
  CompilationUnit unit = super.createCompilationUnit(config, source);
  unit.addPhaseOperation(new CompilationUnit.SourceUnitOperation() {
   @Override
   public void call(SourceUnit source) throws CompilationFailedException {
    module = source.getAST();
    throw new AstSuccessfullyCaptured();
   }
  }, compilePhase.getPhaseNumber());
  return unit;
 }
}

代码示例来源:origin: groovy/groovy-core

protected CompilationUnit createCompilationUnit(CompilerConfiguration config, CodeSource source) {
    CompilationUnit unit = super.createCompilationUnit(config, source);
    unit.addPhaseOperation(new CustomPrimaryClassNodeOperation(), Phases.SEMANTIC_ANALYSIS);
    return unit;
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

/**
 * Loads the given class node returning the implementation Class.
 * <p>
 * WARNING: this compilation is not synchronized
 *
 * @param classNode
 * @return a class
 */
public Class defineClass(ClassNode classNode, String file, String newCodeBase) {
  CodeSource codeSource = null;
  try {
    codeSource = new CodeSource(new URL("file", "", newCodeBase), (java.security.cert.Certificate[]) null);
  } catch (MalformedURLException e) {
    //swallow
  }
  CompilationUnit unit = createCompilationUnit(config, codeSource);
  ClassCollector collector = createCollector(unit, classNode.getModule().getContext());
  try {
    unit.addClassNode(classNode);
    unit.setClassgenCallback(collector);
    unit.compile(Phases.CLASS_GENERATION);
    definePackageInternal(collector.generatedClass.getName());
    return collector.generatedClass;
  } catch (CompilationFailedException e) {
    throw new RuntimeException(e);
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

@Override
protected CompilationUnit createCompilationUnit(CompilerConfiguration configuration, CodeSource source) {
  CompilationUnit cu = super.createCompilationUnit(configuration, source);
  LocalData local = getLocalData().get();
  local.cu = cu;

代码示例来源:origin: org.codehaus.groovy/groovy

private Class doParseClass(GroovyCodeSource codeSource) {
  validate(codeSource);
  CompilationUnit unit = createCompilationUnit(config, codeSource.getCodeSource());
  if (recompile!=null && recompile || recompile==null && config.getRecompileGroovySource()) {
    unit.addFirstPhaseOperation(TimestampAdder.INSTANCE, CompilePhase.CLASS_GENERATION.getPhaseNumber());

代码示例来源:origin: org.codehaus.groovy/groovy-all-minimal

/**
 * Loads the given class node returning the implementation Class.
 * <p/>
 * WARNING: this compilation is not synchronized
 *
 * @param classNode
 * @return a class
 */
public Class defineClass(ClassNode classNode, String file, String newCodeBase) {
  CodeSource codeSource = null;
  try {
    codeSource = new CodeSource(new URL("file", "", newCodeBase), (java.security.cert.Certificate[]) null);
  } catch (MalformedURLException e) {
    //swallow
  }
  CompilationUnit unit = createCompilationUnit(config, codeSource);
  ClassCollector collector = createCollector(unit, classNode.getModule().getContext());
  try {
    unit.addClassNode(classNode);
    unit.setClassgenCallback(collector);
    unit.compile(Phases.CLASS_GENERATION);
    return collector.generatedClass;
  } catch (CompilationFailedException e) {
    throw new RuntimeException(e);
  }
}

代码示例来源:origin: com.thinkaurelius.groovy-shaded-asm/groovy-shaded-asm

/**
 * Loads the given class node returning the implementation Class.
 * <p/>
 * WARNING: this compilation is not synchronized
 *
 * @param classNode
 * @return a class
 */
public Class defineClass(ClassNode classNode, String file, String newCodeBase) {
  CodeSource codeSource = null;
  try {
    codeSource = new CodeSource(new URL("file", "", newCodeBase), (java.security.cert.Certificate[]) null);
  } catch (MalformedURLException e) {
    //swallow
  }
  CompilationUnit unit = createCompilationUnit(config, codeSource);
  ClassCollector collector = createCollector(unit, classNode.getModule().getContext());
  try {
    unit.addClassNode(classNode);
    unit.setClassgenCallback(collector);
    unit.compile(Phases.CLASS_GENERATION);
    definePackage(collector.generatedClass.getName());
    return collector.generatedClass;
  } catch (CompilationFailedException e) {
    throw new RuntimeException(e);
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy-jdk14

/**
 * Loads the given class node returning the implementation Class.
 * <p/>
 * WARNING: this compilation is not synchronized
 *
 * @param classNode
 * @return a class
 */
public Class defineClass(ClassNode classNode, String file, String newCodeBase) {
  CodeSource codeSource = null;
  try {
    codeSource = new CodeSource(new URL("file", "", newCodeBase), (java.security.cert.Certificate[]) null);
  } catch (MalformedURLException e) {
    //swallow
  }
  CompilationUnit unit = createCompilationUnit(config, codeSource);
  ClassCollector collector = createCollector(unit, classNode.getModule().getContext());
  try {
    unit.addClassNode(classNode);
    unit.setClassgenCallback(collector);
    unit.compile(Phases.CLASS_GENERATION);
    definePackage(collector.generatedClass.getName());
    return collector.generatedClass;
  } catch (CompilationFailedException e) {
    throw new RuntimeException(e);
  }
}

代码示例来源:origin: org.kohsuke.droovy/groovy

/**
 * Loads the given class node returning the implementation Class.
 * <p/>
 * WARNING: this compilation is not synchronized
 *
 * @param classNode
 * @return a class
 */
public Class defineClass(ClassNode classNode, String file, String newCodeBase) {
  CodeSource codeSource = null;
  try {
    codeSource = new CodeSource(new URL("file", "", newCodeBase), (java.security.cert.Certificate[]) null);
  } catch (MalformedURLException e) {
    //swallow
  }
  CompilationUnit unit = createCompilationUnit(config, codeSource);
  ClassCollector collector = createCollector(unit, classNode.getModule().getContext());
  try {
    unit.addClassNode(classNode);
    unit.setClassgenCallback(collector);
    unit.compile(Phases.CLASS_GENERATION);
    return collector.generatedClass;
  } catch (CompilationFailedException e) {
    throw new RuntimeException(e);
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy-jdk14

CompilationUnit unit = createCompilationUnit(config, codeSource.getCodeSource());
SourceUnit su = null;
if (codeSource.getFile() == null) {

代码示例来源:origin: org.kohsuke.droovy/groovy

CompilationUnit unit = createCompilationUnit(config, codeSource.getCodeSource());
SourceUnit su = null;
if (codeSource.getFile() == null) {

代码示例来源:origin: org.codehaus.groovy/groovy-all-minimal

CompilationUnit unit = createCompilationUnit(config, codeSource.getCodeSource());
SourceUnit su = null;
if (codeSource.getFile() == null) {

代码示例来源:origin: com.thinkaurelius.groovy-shaded-asm/groovy-shaded-asm

@Override
protected CompilationUnit createCompilationUnit(CompilerConfiguration configuration, CodeSource source) {
  CompilationUnit cu = super.createCompilationUnit(configuration, source);
  LocalData local = getLocalData().get();
  local.cu = cu;

代码示例来源:origin: com.thinkaurelius.groovy-shaded-asm/groovy-shaded-asm

private Class doParseClass(GroovyCodeSource codeSource) {
  validate(codeSource);
  Class answer;  // Was neither already loaded nor compiling, so compile and add to cache.
  CompilationUnit unit = createCompilationUnit(config, codeSource.getCodeSource());
  SourceUnit su = null;
  if (codeSource.getFile() == null) {
    su = unit.addSource(codeSource.getName(), codeSource.getScriptText());
  } else {
    su = unit.addSource(codeSource.getFile());
  }
  ClassCollector collector = createCollector(unit, su);
  unit.setClassgenCallback(collector);
  int goalPhase = Phases.CLASS_GENERATION;
  if (config != null && config.getTargetDirectory() != null) goalPhase = Phases.OUTPUT;
  unit.compile(goalPhase);
  answer = collector.generatedClass;
  String mainClass = su.getAST().getMainClassName();
  for (Object o : collector.getLoadedClasses()) {
    Class clazz = (Class) o;
    String clazzName = clazz.getName();
    definePackage(clazzName);
    setClassCacheEntry(clazz);
    if (clazzName.equals(mainClass)) answer = clazz;
  }
  return answer;
}

相关文章