Lombok - v0.10.8

lombok.javac
Class HandlerLibrary

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

public class HandlerLibrary
extends 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(Messager messager)
          Creates a new HandlerLibrary that will report any problems or errors to the provided messager.
 
Method Summary
 void callASTVisitors(JavacAST ast)
          Will call all registered JavacASTVisitor instances.
 void handleAnnotation(com.sun.tools.javac.tree.JCTree.JCCompilationUnit unit, JavacNode node, com.sun.tools.javac.tree.JCTree.JCAnnotation annotation)
          Handles the provided annotation node by first finding a qualifying instance of JavacAnnotationHandler and if one exists, calling it with a freshly cooked up instance of AnnotationValues.
 void javacError(String message)
          Generates an error in the Messager that was used to initialize this HandlerLibrary.
 void javacError(String message, Throwable t)
          Generates an error in the Messager that was used to initialize this HandlerLibrary.
 void javacWarning(String message)
          Generates a warning in the Messager that was used to initialize this HandlerLibrary.
 void javacWarning(String message, Throwable t)
          Generates a warning in the Messager that was used to initialize this HandlerLibrary.
static HandlerLibrary load(Messager messager)
          Creates a new HandlerLibrary that will report any problems or errors to the provided messager, 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.
 void setPostResolutionPhase()
           
 void setPreResolutionPhase()
          Lombok does not currently support triggering annotations in a specified order; the order is essentially random right now.
 void setPrintASTPhase()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HandlerLibrary

public HandlerLibrary(Messager messager)
Creates a new HandlerLibrary that will report any problems or errors to the provided messager. You probably want to use load(Messager) instead.

Method Detail

load

public static HandlerLibrary load(Messager messager)
Creates a new HandlerLibrary that will report any problems or errors to the provided messager, 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.


javacWarning

public void javacWarning(String message)
Generates a warning in the Messager that was used to initialize this HandlerLibrary.


javacWarning

public void javacWarning(String message,
                         Throwable t)
Generates a warning in the Messager that was used to initialize this HandlerLibrary.


javacError

public void javacError(String message)
Generates an error in the Messager that was used to initialize this HandlerLibrary.


javacError

public void javacError(String message,
                       Throwable t)
Generates an error in the Messager that was used to initialize this HandlerLibrary.


handleAnnotation

public void handleAnnotation(com.sun.tools.javac.tree.JCTree.JCCompilationUnit unit,
                             JavacNode node,
                             com.sun.tools.javac.tree.JCTree.JCAnnotation annotation)
Handles the provided annotation node by first finding a qualifying instance of JavacAnnotationHandler 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:
unit - The Compilation Unit that contains the Annotation AST Node.
node - The Lombok AST Node representing the Annotation AST Node.
annotation - 'node.get()' - convenience parameter.

callASTVisitors

public void callASTVisitors(JavacAST ast)
Will call all registered JavacASTVisitor instances.


setPreResolutionPhase

public void setPreResolutionPhase()
Lombok does not currently support triggering annotations in a specified order; the order is essentially random right now. As a temporary hack we've identified 3 important phases.


setPostResolutionPhase

public void setPostResolutionPhase()

setPrintASTPhase

public void setPrintASTPhase()

Lombok - v0.10.8

Copyright © 2009-2011 The Project Lombok Authors, licensed under the MIT licence.