Lombok - v0.9.3

lombok.eclipse
Class HandlerLibrary

java.lang.Object
  extended by lombok.eclipse.HandlerLibrary

public class HandlerLibrary
extends java.lang.Object

This class tracks 'handlers' and knows how to invoke them for any given AST node. This class can find the handlers (via SPI discovery) and will set up the given AST node, such as building an AnnotationValues instance.


Constructor Summary
HandlerLibrary()
          Creates a new HandlerLibrary.
 
Method Summary
 void callASTVisitors(EclipseAST ast)
          Will call all registered EclipseASTVisitor instances.
 boolean handle(org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration ast, EclipseNode annotationNode, org.eclipse.jdt.internal.compiler.ast.Annotation annotation)
          Handles the provided annotation node by first finding a qualifying instance of EclipseAnnotationHandler and if one exists, calling it with a freshly cooked up instance of AnnotationValues.
static HandlerLibrary load()
          Creates a new HandlerLibrary.
 void skipAllButPrintAST()
           
 void skipPrintAST()
          Lombok does not currently support triggering annotations in a specified order; the order is essentially random right now.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HandlerLibrary

public HandlerLibrary()
Creates a new HandlerLibrary. Errors will be reported to the Eclipse Error log. You probably want to use load() instead.

Method Detail

load

public static HandlerLibrary load()
Creates a new HandlerLibrary. Errors will be reported to the Eclipse Error log. then uses SPI discovery to load all annotation and visitor based handlers so that future calls to the handle methods will defer to these handlers.


handle

public boolean handle(org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration ast,
                      EclipseNode annotationNode,
                      org.eclipse.jdt.internal.compiler.ast.Annotation annotation)
Handles the provided annotation node by first finding a qualifying instance of EclipseAnnotationHandler and if one exists, calling it with a freshly cooked up instance of AnnotationValues. Note that depending on the printASTOnly flag, the PrintAST annotation will either be silently skipped, or everything that isn't PrintAST will be skipped. The HandlerLibrary will attempt to guess if the given annotation node represents a lombok annotation. For example, if lombok.* is in the import list, then this method will guess that Getter refers to lombok.Getter, presuming that HandleGetter has been loaded.

Parameters:
ast - The Compilation Unit that contains the Annotation AST Node.
annotationNode - The Lombok AST Node representing the Annotation AST Node.
annotation - 'node.get()' - convenience parameter.

callASTVisitors

public void callASTVisitors(EclipseAST ast)
Will call all registered EclipseASTVisitor instances.


skipPrintAST

public void skipPrintAST()
Lombok does not currently support triggering annotations in a specified order; the order is essentially random right now. This lack of order is particularly annoying for the PrintAST annotation, which is almost always intended to run last. Hence, this hack, which lets it in fact run last.

See Also:
skipAllButPrintAST()

skipAllButPrintAST

public void skipAllButPrintAST()
See Also:
skipPrintAST()

Lombok - v0.9.3

Copyright © 2009 Reinier Zwitserloot and Roel Spilker, licensed under the MIT licence.