org.codehaus.groovy.ast.ClassNode.setNodeMetaData()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(3.6k)|赞(0)|评价(0)|浏览(88)

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

ClassNode.setNodeMetaData介绍

暂无

代码示例

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

private static List<AnnotationNode> getMeta(ClassNode cn) {
  List<AnnotationNode> meta = cn.getNodeMetaData(AnnotationCollector.class);
  if (meta == null) {
    if (cn.isPrimaryClassNode()) {
      meta = getTargetListFromAnnotations(cn);
    } else {
      meta = getTargetListFromClass(cn);
    }
    cn.setNodeMetaData(AnnotationCollector.class, meta);
  }
  return meta;
}

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

private ClassNode getHelper(final ClassNode traitReceiver) {
  if (helperClassNotCreatedYet(traitReceiver)) {
    // GROOVY-7909 A Helper class in same compilation unit may have not been created when referenced
    // Here create a symbol as a "placeholder" and it will be resolved later.
    ClassNode ret = new InnerClassNode(
        traitReceiver,
        Traits.helperClassName(traitReceiver),
        ACC_PUBLIC | ACC_STATIC | ACC_ABSTRACT | ACC_SYNTHETIC,
        ClassHelper.OBJECT_TYPE,
        ClassNode.EMPTY_ARRAY,
        null
    ).getPlainNodeReference();
    ret.setRedirect(null);
    traitReceiver.redirect().setNodeMetaData(UNRESOLVED_HELPER_CLASS, ret);
    return ret;
  } else {
    TraitHelpersTuple helpers = Traits.findHelpers(traitReceiver);
    return helpers.getHelper();
  }
}

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

if (privateFieldAccessors != null) node.setNodeMetaData(PRIVATE_FIELDS_ACCESSORS, privateFieldAccessors);
if (privateFieldMutators != null) node.setNodeMetaData(PRIVATE_FIELDS_MUTATORS, privateFieldMutators);

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

node.visitContents(this);
if (classNode.getNodeMetaData(ClassNodeSkip.class) == null) {
  classNode.setNodeMetaData(ClassNodeSkip.class, true);

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

node.setNodeMetaData(PRIVATE_BRIDGE_METHODS, privateBridgeMethods);

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

node.visitContents(this);
if (classNode.getNodeMetaData(ClassNodeSkip.class)==null) {
  classNode.setNodeMetaData(ClassNodeSkip.class,true);

代码示例来源:origin: org.grails/grails-plugin-testing

private void handleTestRuntimeJunitSetUpAndTearDownCalls() {
    FieldNode junitAdapterFieldNode = classNode.getDeclaredField(JUNIT_ADAPTER_FIELD_NAME);
    if(junitAdapterFieldNode==null) {
      return;
    }
    // add rule calls to junit setup/teardown only once, there might be several test mixins applied for the same class
    if(classNode.redirect().getNodeMetaData(JUNIT3_RULE_SETUP_TEARDOWN_APPLIED_KEY) != Boolean.TRUE) {
      BlockStatement setUpMethodBody = getOrCreateNoArgsMethodBody(classNode, SET_UP_METHOD);
      if(!hasExistingSetUp) {
        setUpMethodBody.getStatements().add(0, new ExpressionStatement(new MethodCallExpression(new VariableExpression("super"), SET_UP_METHOD, GrailsArtefactClassInjector.ZERO_ARGS)));
      }
      BlockStatement tearDownMethodBody = getOrCreateNoArgsMethodBody(classNode, TEAR_DOWN_METHOD);
      setUpMethodBody.getStatements().add(1, new ExpressionStatement(new MethodCallExpression(new FieldExpression(junitAdapterFieldNode), SET_UP_METHOD, new VariableExpression("this"))));
      tearDownMethodBody.addStatement(new ExpressionStatement(new MethodCallExpression(new FieldExpression(junitAdapterFieldNode), TEAR_DOWN_METHOD, new VariableExpression("this"))));
      if(!hasExistingTearDown) {
        tearDownMethodBody.addStatement(new ExpressionStatement(new MethodCallExpression(new VariableExpression("super"), TEAR_DOWN_METHOD, GrailsArtefactClassInjector.ZERO_ARGS)));
      }
      classNode.redirect().setNodeMetaData(JUNIT3_RULE_SETUP_TEARDOWN_APPLIED_KEY, Boolean.TRUE);
    }
  }
}

相关文章

微信公众号

最新文章

更多

ClassNode类方法