@Override public void visit(ASTNode[] nodes, final SourceUnit source) { init(nodes, source); AnnotatedNode targetClass = (AnnotatedNode) nodes[1]; AnnotationNode logAnnotation = (AnnotationNode) nodes[0]; final LoggingStrategy loggingStrategy = createLoggingStrategy(logAnnotation, classLoader); if (loggingStrategy == null) return; final String logFieldName = lookupLogFieldName(logAnnotation); final String categoryName = lookupCategoryName(logAnnotation);
public void visit(ASTNode[] nodes, final SourceUnit source) { if (nodes.length != 2 || !(nodes[0] instanceof AnnotationNode) || !(nodes[1] instanceof AnnotatedNode)) { addError("Internal error: expecting [AnnotationNode, AnnotatedNode] but got: " + Arrays.asList(nodes), nodes[0], source); AnnotationNode logAnnotation = (AnnotationNode) nodes[0]; final LoggingStrategy loggingStrategy = createLoggingStrategy(logAnnotation); if (loggingStrategy == null) return; final String logFieldName = lookupLogFieldName(logAnnotation);
@Override public void performInjectionOnAnnotatedClass(SourceUnit source, ClassNode classNode) { if( classNode.getNodeMetaData(Slf4j.class) != null) return; String packageName = Slf4j.class.getPackage().getName(); // if already annotated skip for (AnnotationNode annotationNode : classNode.getAnnotations()) { if(annotationNode.getClassNode().getPackageName().equals(packageName)) { return; } } FieldNode logField = classNode.getField("log"); if(logField != null) { if(!Modifier.isPrivate(logField.getModifiers())) { return; } } AnnotationNode annotationNode = new AnnotationNode(ClassHelper.make(Slf4j.class)); LogASTTransformation logASTTransformation = new LogASTTransformation(); logASTTransformation.setCompilationUnit( new CompilationUnit(new GroovyClassLoader(getClass().getClassLoader())) ); logASTTransformation.visit(new ASTNode[]{ annotationNode, classNode}, source); classNode.putNodeMetaData(Slf4j.class, annotationNode); }