aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/javac/Javac.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/lombok/javac/Javac.java')
-rw-r--r--src/lombok/javac/Javac.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/lombok/javac/Javac.java b/src/lombok/javac/Javac.java
index 90448e26..f80cca96 100644
--- a/src/lombok/javac/Javac.java
+++ b/src/lombok/javac/Javac.java
@@ -1,3 +1,24 @@
+/*
+ * Copyright © 2009 Reinier Zwitserloot and Roel Spilker.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
package lombok.javac;
import java.lang.annotation.Annotation;
@@ -25,11 +46,20 @@ import com.sun.tools.javac.tree.JCTree.JCLiteral;
import com.sun.tools.javac.tree.JCTree.JCNewArray;
import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
+/**
+ * Container for static utility methods relevant to lombok's operation on javac.
+ */
public class Javac {
private Javac() {
//prevent instantiation
}
+ /**
+ * Checks if the Annotation AST Node provided is likely to be an instance of the provided annotation type.
+ *
+ * @param type An actual annotation type, such as <code>lombok.Getter.class</code>.
+ * @param node A Lombok AST node representing an annotation in source code.
+ */
public static boolean annotationTypeMatches(Class<? extends Annotation> type, Node node) {
if ( node.getKind() != Kind.ANNOTATION ) return false;
String typeName = ((JCAnnotation)node.get()).annotationType.toString();
@@ -46,6 +76,12 @@ public class Javac {
return false;
}
+ /**
+ * Creates an instance of <code>AnnotationValues</code> for the provided AST Node.
+ *
+ * @param type An annotation class type, such as <code>lombok.Getter.class</code>.
+ * @param node A Lombok AST node representing an annotation in source code.
+ */
public static <A extends Annotation> AnnotationValues<A> createAnnotation(Class<A> type, final Node node) {
Map<String, AnnotationValue> values = new HashMap<String, AnnotationValue>();
JCAnnotation anno = (JCAnnotation) node.get();
@@ -86,6 +122,11 @@ public class Javac {
return new AnnotationValues<A>(type, values, node);
}
+ /**
+ * Turns an expression into a guessed intended literal. Only works for literals, as you can imagine.
+ *
+ * Will for example turn a TrueLiteral into 'Boolean.valueOf(true)'.
+ */
private static Object calculateGuess(JCExpression expr) {
if ( expr instanceof JCLiteral ) {
JCLiteral lit = (JCLiteral)expr;