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

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

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

FieldNode.addAnnotation介绍

暂无

代码示例

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

private void addFieldMetadata(Field field) {
 AnnotationNode ann = new AnnotationNode(nodeCache.FieldMetadata);
 ann.setMember(FieldMetadata.NAME, new ConstantExpression(field.getName()));
 ann.setMember(FieldMetadata.ORDINAL, new ConstantExpression(field.getOrdinal()));
 ann.setMember(FieldMetadata.LINE, new ConstantExpression(field.getAst().getLineNumber()));
 ann.setMember(FieldMetadata.INITIALIZER, new ConstantExpression(field.hasInitialExpression()));
 field.getAst().addAnnotation(ann);
}

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

fieldNode.addAnnotation(annotation);

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

public static FieldExpression injectedField(@Nonnull ClassNode owner, @Nonnull ClassNode type, @Nonnull String name, @Nullable String qualifierName) {
  FieldNode fieldNode = GriffonASTUtils.injectField(owner, name, Modifier.PRIVATE, type, null, false);
  List<AnnotationNode> annotations = fieldNode.getAnnotations(INJECT_TYPE);
  if (annotations == null || annotations.isEmpty()) {
    fieldNode.addAnnotation(new AnnotationNode(INJECT_TYPE));
  }
  if (isNotBlank(qualifierName)) {
    AnnotationNode namedAnnotation = new AnnotationNode(NAMED_TYPE);
    namedAnnotation.addMember("value", new ConstantExpression(qualifierName));
    fieldNode.addAnnotation(namedAnnotation);
  }
  return new FieldExpression(fieldNode);
}

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

@Nonnull
  public static FieldExpression injectedField(@Nonnull ClassNode owner, @Nonnull ClassNode type, @Nonnull String name, @Nullable String qualifierName) {
    FieldNode fieldNode = GriffonASTUtils.injectField(owner, name, Modifier.PRIVATE, type, null, false);
    if (fieldNode.getAnnotations(INJECT_TYPE) == null) {
      fieldNode.addAnnotation(new AnnotationNode(INJECT_TYPE));
    }
    if (isNotBlank(qualifierName) && fieldNode.getAnnotations(NAMED_TYPE) == null) {
      AnnotationNode namedAnnotation = new AnnotationNode(NAMED_TYPE);
      namedAnnotation.addMember("value", new ConstantExpression(qualifierName));
      fieldNode.addAnnotation(namedAnnotation);
    }
    return new FieldExpression(fieldNode);
  }
}

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

private void addSpockFieldMetadata(FieldNode field, int ordinal) {
  AnnotationNode ann = new AnnotationNode(ClassHelper.make(FieldMetadata.class));
  ann.setMember(FieldMetadata.NAME, new ConstantExpression(field.getName()));
  ann.setMember(FieldMetadata.ORDINAL, new ConstantExpression(ordinal));
  ann.setMember(FieldMetadata.LINE, new ConstantExpression(field.getLineNumber()));
  field.addAnnotation(ann);
 }

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

protected void addJunitRuleFields(ClassNode classNode) {
  if(classNode.getField(JUNIT_ADAPTER_FIELD_NAME) != null) {
    return;
  }
  ClassNode junitAdapterType = ClassHelper.make(TestRuntimeJunitAdapter.class);
  FieldNode junitAdapterFieldNode = classNode.addField(JUNIT_ADAPTER_FIELD_NAME, Modifier.STATIC, junitAdapterType, new ConstructorCallExpression(junitAdapterType, MethodCallExpression.NO_ARGUMENTS));
  boolean spockTest = isSpockTest(classNode);
  FieldNode staticRuleFieldNode = classNode.addField(RULE_FIELD_NAME_BASE + "StaticClassRule", Modifier.PRIVATE | Modifier.STATIC, ClassHelper.make(TestRule.class), new MethodCallExpression(new FieldExpression(junitAdapterFieldNode), "newClassRule", new ClassExpression(classNode)));
  AnnotationNode classRuleAnnotation = new AnnotationNode(ClassHelper.make(ClassRule.class));
  if(spockTest) {
    // @ClassRule must be added to @Shared field in spock
    FieldNode spockSharedRuleFieldNode = classNode.addField(RULE_FIELD_NAME_BASE + "SharedClassRule", Modifier.PUBLIC, ClassHelper.make(TestRule.class), new FieldExpression(staticRuleFieldNode));
    spockSharedRuleFieldNode.addAnnotation(classRuleAnnotation);
    spockSharedRuleFieldNode.addAnnotation(new AnnotationNode(ClassHelper.make(Shared.class)));
    addSpockFieldMetadata(spockSharedRuleFieldNode, 0);
  } else {
    staticRuleFieldNode.setModifiers(Modifier.PUBLIC | Modifier.STATIC);
    staticRuleFieldNode.addAnnotation(classRuleAnnotation);
  }
  FieldNode ruleFieldNode = classNode.addField(RULE_FIELD_NAME_BASE + "Rule", Modifier.PUBLIC, ClassHelper.make(TestRule.class), new MethodCallExpression(new FieldExpression(junitAdapterFieldNode), "newRule", new VariableExpression("this")));
  ruleFieldNode.addAnnotation(new AnnotationNode(ClassHelper.make(Rule.class)));
  if(spockTest) {
    addSpockFieldMetadata(ruleFieldNode, 0);
  }
}

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

List<AnnotationNode> annotations = fieldNode.getAnnotations(INJECT_TYPE);
if (annotations == null || annotations.isEmpty()) {
  fieldNode.addAnnotation(new AnnotationNode(INJECT_TYPE));

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

protected FieldNode addTestRuntimeAwareMixinFieldIfNonExistent(ClassNode classNode, ClassNode fieldType,
    String fieldName) {
  if (classNode == null || classNode.getField(fieldName) != null) {
    return null;
  }
  
  MapExpression constructorArguments = new MapExpression();
  constructorArguments.addMapEntryExpression(new MapEntryExpression(new ConstantExpression("testClass"), new ClassExpression(classNode)));
  FieldNode mixinInstanceFieldNode = classNode.addField(fieldName, Modifier.STATIC, fieldType, new ConstructorCallExpression(fieldType, constructorArguments));
  mixinInstanceFieldNode.addAnnotation(new AnnotationNode(ClassHelper.make(MixinInstance.class)));
  
  addJunitRuleFields(classNode);
  
  return mixinInstanceFieldNode;
}

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

final ClassNode annotationClassNode = annotation.getClassNode();
if (annotationClassNode.getAnnotations(ASTTRANSFORM_TYPE).isEmpty()) {
  fieldNode.addAnnotation(annotation);

相关文章