aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/eclipse/Eclipse.java
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@tipit.to>2009-10-16 09:32:36 +0200
committerReinier Zwitserloot <reinier@tipit.to>2009-10-16 09:32:36 +0200
commitb5c8b725655d2ad8a715cfb1fbbdf25dbdcd4ceb (patch)
tree571d13cd7028a6b7d1ebfe84180a4328a20c42d7 /src/lombok/eclipse/Eclipse.java
parent8629a651a66aa5fba9e0ada7df00803528b0e34f (diff)
downloadlombok-b5c8b725655d2ad8a715cfb1fbbdf25dbdcd4ceb.tar.gz
lombok-b5c8b725655d2ad8a715cfb1fbbdf25dbdcd4ceb.tar.bz2
lombok-b5c8b725655d2ad8a715cfb1fbbdf25dbdcd4ceb.zip
Fixed issue #24 by refactoring the AST.Node class - taken it out, and in the process fixed a lot of type annoyance by adding more generics.
Also changed coding style from for/while/if/switch/catch/do ( expr ) {} to for (expr) {}, hence the changes _everywhere_.
Diffstat (limited to 'src/lombok/eclipse/Eclipse.java')
-rw-r--r--src/lombok/eclipse/Eclipse.java101
1 files changed, 50 insertions, 51 deletions
diff --git a/src/lombok/eclipse/Eclipse.java b/src/lombok/eclipse/Eclipse.java
index c96c9ce6..91c7a9f5 100644
--- a/src/lombok/eclipse/Eclipse.java
+++ b/src/lombok/eclipse/Eclipse.java
@@ -36,7 +36,6 @@ import lombok.core.TypeLibrary;
import lombok.core.TypeResolver;
import lombok.core.AST.Kind;
import lombok.core.AnnotationValues.AnnotationValue;
-import lombok.eclipse.EclipseAST.Node;
import org.eclipse.core.runtime.ILog;
import org.eclipse.core.runtime.IStatus;
@@ -107,7 +106,7 @@ public class Eclipse {
*/
public static void error(CompilationUnitDeclaration cud, String message, String bundleName, Throwable error) {
Bundle bundle = Platform.getBundle(bundleName);
- if ( bundle == null ) {
+ if (bundle == null) {
System.err.printf("Can't find bundle %s while trying to report error:\n%s\n", bundleName, message);
return;
}
@@ -115,7 +114,7 @@ public class Eclipse {
ILog log = Platform.getLog(bundle);
log.log(new Status(IStatus.ERROR, bundleName, message, error));
- if ( cud != null ) EclipseAST.addProblemToCompilationResult(cud, false, message + " - See error log.", 0, 0);
+ if (cud != null) EclipseAST.addProblemToCompilationResult(cud, false, message + " - See error log.", 0, 0);
}
/**
@@ -125,7 +124,7 @@ public class Eclipse {
public static String toQualifiedName(char[][] typeName) {
StringBuilder sb = new StringBuilder();
boolean first = true;
- for ( char[] c : typeName ) {
+ for (char[] c : typeName) {
sb.append(first ? "" : ".").append(c);
first = false;
}
@@ -148,10 +147,10 @@ public class Eclipse {
* is complicated and there's no clone method on TypeParameter itself. This method can clone them.
*/
public static TypeParameter[] copyTypeParams(TypeParameter[] params, ASTNode source) {
- if ( params == null ) return null;
+ if (params == null) return null;
TypeParameter[] out = new TypeParameter[params.length];
int idx = 0;
- for ( TypeParameter param : params ) {
+ for (TypeParameter param : params) {
TypeParameter o = new TypeParameter();
setGeneratedBy(o, source);
o.annotations = param.annotations;
@@ -164,10 +163,10 @@ public class Eclipse {
o.declarationEnd = param.declarationEnd;
o.declarationSourceStart = param.declarationSourceStart;
o.declarationSourceEnd = param.declarationSourceEnd;
- if ( param.bounds != null ) {
+ if (param.bounds != null) {
TypeReference[] b = new TypeReference[param.bounds.length];
int idx2 = 0;
- for ( TypeReference ref : param.bounds ) b[idx2++] = copyType(ref, source);
+ for (TypeReference ref : param.bounds) b[idx2++] = copyType(ref, source);
o.bounds = b;
}
out[idx++] = o;
@@ -180,10 +179,10 @@ public class Eclipse {
* {@link #copyType(TypeReference)}.
*/
public static TypeReference[] copyTypes(TypeReference[] refs, ASTNode source) {
- if ( refs == null ) return null;
+ if (refs == null) return null;
TypeReference[] outs = new TypeReference[refs.length];
int idx = 0;
- for ( TypeReference ref : refs ) {
+ for (TypeReference ref : refs) {
outs[idx++] = copyType(ref, source);
}
return outs;
@@ -195,18 +194,18 @@ public class Eclipse {
* method on TypeReference itself. This method can clone them.
*/
public static TypeReference copyType(TypeReference ref, ASTNode source) {
- if ( ref instanceof ParameterizedQualifiedTypeReference ) {
+ if (ref instanceof ParameterizedQualifiedTypeReference) {
ParameterizedQualifiedTypeReference iRef = (ParameterizedQualifiedTypeReference) ref;
TypeReference[][] args = null;
- if ( iRef.typeArguments != null ) {
+ if (iRef.typeArguments != null) {
args = new TypeReference[iRef.typeArguments.length][];
int idx = 0;
- for ( TypeReference[] inRefArray : iRef.typeArguments ) {
- if ( inRefArray == null ) args[idx++] = null;
+ for (TypeReference[] inRefArray : iRef.typeArguments) {
+ if (inRefArray == null) args[idx++] = null;
else {
TypeReference[] outRefArray = new TypeReference[inRefArray.length];
int idx2 = 0;
- for ( TypeReference inRef : inRefArray ) {
+ for (TypeReference inRef : inRefArray) {
outRefArray[idx2++] = copyType(inRef, source);
}
args[idx++] = outRefArray;
@@ -218,28 +217,28 @@ public class Eclipse {
return typeRef;
}
- if ( ref instanceof ArrayQualifiedTypeReference ) {
+ if (ref instanceof ArrayQualifiedTypeReference) {
ArrayQualifiedTypeReference iRef = (ArrayQualifiedTypeReference) ref;
TypeReference typeRef = new ArrayQualifiedTypeReference(iRef.tokens, iRef.dimensions(), iRef.sourcePositions);
setGeneratedBy(typeRef, source);
return typeRef;
}
- if ( ref instanceof QualifiedTypeReference ) {
+ if (ref instanceof QualifiedTypeReference) {
QualifiedTypeReference iRef = (QualifiedTypeReference) ref;
TypeReference typeRef = new QualifiedTypeReference(iRef.tokens, iRef.sourcePositions);
setGeneratedBy(typeRef, source);
return typeRef;
}
- if ( ref instanceof ParameterizedSingleTypeReference ) {
+ if (ref instanceof ParameterizedSingleTypeReference) {
ParameterizedSingleTypeReference iRef = (ParameterizedSingleTypeReference) ref;
TypeReference[] args = null;
- if ( iRef.typeArguments != null ) {
+ if (iRef.typeArguments != null) {
args = new TypeReference[iRef.typeArguments.length];
int idx = 0;
- for ( TypeReference inRef : iRef.typeArguments ) {
- if ( inRef == null ) args[idx++] = null;
+ for (TypeReference inRef : iRef.typeArguments) {
+ if (inRef == null) args[idx++] = null;
else args[idx++] = copyType(inRef, source);
}
}
@@ -249,14 +248,14 @@ public class Eclipse {
return typeRef;
}
- if ( ref instanceof ArrayTypeReference ) {
+ if (ref instanceof ArrayTypeReference) {
ArrayTypeReference iRef = (ArrayTypeReference) ref;
TypeReference typeRef = new ArrayTypeReference(iRef.token, iRef.dimensions(), (long)iRef.sourceStart << 32 | iRef.sourceEnd);
setGeneratedBy(typeRef, source);
return typeRef;
}
- if ( ref instanceof Wildcard ) {
+ if (ref instanceof Wildcard) {
Wildcard wildcard = new Wildcard(((Wildcard)ref).kind);
wildcard.sourceStart = ref.sourceStart;
wildcard.sourceEnd = ref.sourceEnd;
@@ -264,7 +263,7 @@ public class Eclipse {
return wildcard;
}
- if ( ref instanceof SingleTypeReference ) {
+ if (ref instanceof SingleTypeReference) {
SingleTypeReference iRef = (SingleTypeReference) ref;
TypeReference typeRef = new SingleTypeReference(iRef.token, (long)iRef.sourceStart << 32 | iRef.sourceEnd);
setGeneratedBy(typeRef, source);
@@ -284,10 +283,10 @@ public class Eclipse {
if (annotations2 == null) annotations2 = new Annotation[0];
Annotation[] outs = new Annotation[annotations1.length + annotations2.length];
int idx = 0;
- for ( Annotation annotation : annotations1 ) {
+ for (Annotation annotation : annotations1) {
outs[idx++] = copyAnnotation(annotation, source);
}
- for ( Annotation annotation : annotations2 ) {
+ for (Annotation annotation : annotations2) {
outs[idx++] = copyAnnotation(annotation, source);
}
return outs;
@@ -328,10 +327,10 @@ public class Eclipse {
*
* This is a guess, but a decent one.
*/
- public static boolean annotationTypeMatches(Class<? extends java.lang.annotation.Annotation> type, Node node) {
- if ( node.getKind() != Kind.ANNOTATION ) return false;
+ public static boolean annotationTypeMatches(Class<? extends java.lang.annotation.Annotation> type, EclipseNode node) {
+ if (node.getKind() != Kind.ANNOTATION) return false;
TypeReference typeRef = ((Annotation)node.get()).type;
- if ( typeRef == null || typeRef.getTypeName() == null ) return false;
+ if (typeRef == null || typeRef.getTypeName() == null) return false;
String typeName = toQualifiedName(typeRef.getTypeName());
TypeLibrary library = new TypeLibrary();
@@ -339,8 +338,8 @@ public class Eclipse {
TypeResolver resolver = new TypeResolver(library, node.getPackageDeclaration(), node.getImportStatements());
Collection<String> typeMatches = resolver.findTypeMatches(node, typeName);
- for ( String match : typeMatches ) {
- if ( match.equals(type.getName()) ) return true;
+ for (String match : typeMatches) {
+ if (match.equals(type.getName())) return true;
}
return false;
@@ -350,32 +349,32 @@ public class Eclipse {
* Provides AnnotationValues with the data it needs to do its thing.
*/
public static <A extends java.lang.annotation.Annotation> AnnotationValues<A>
- createAnnotation(Class<A> type, final Node annotationNode) {
+ createAnnotation(Class<A> type, final EclipseNode annotationNode) {
final Annotation annotation = (Annotation) annotationNode.get();
Map<String, AnnotationValue> values = new HashMap<String, AnnotationValue>();
final MemberValuePair[] pairs = annotation.memberValuePairs();
- for ( Method m : type.getDeclaredMethods() ) {
- if ( !Modifier.isPublic(m.getModifiers()) ) continue;
+ for (Method m : type.getDeclaredMethods()) {
+ if (!Modifier.isPublic(m.getModifiers())) continue;
String name = m.getName();
List<String> raws = new ArrayList<String>();
List<Object> guesses = new ArrayList<Object>();
Expression fullExpression = null;
Expression[] expressions = null;
- if ( pairs != null ) for ( MemberValuePair pair : pairs ) {
+ if (pairs != null) for (MemberValuePair pair : pairs) {
char[] n = pair.name;
String mName = n == null ? "value" : new String(pair.name);
- if ( mName.equals(name) ) fullExpression = pair.value;
+ if (mName.equals(name)) fullExpression = pair.value;
}
boolean isExplicit = fullExpression != null;
- if ( isExplicit ) {
- if ( fullExpression instanceof ArrayInitializer ) {
+ if (isExplicit) {
+ if (fullExpression instanceof ArrayInitializer) {
expressions = ((ArrayInitializer)fullExpression).expressions;
} else expressions = new Expression[] { fullExpression };
- if ( expressions != null ) for ( Expression ex : expressions ) {
+ if (expressions != null) for (Expression ex : expressions) {
StringBuffer sb = new StringBuffer();
ex.print(0, sb);
raws.add(sb.toString());
@@ -389,10 +388,10 @@ public class Eclipse {
values.put(name, new AnnotationValue(annotationNode, raws, guesses, isExplicit) {
@Override public void setError(String message, int valueIdx) {
Expression ex;
- if ( valueIdx == -1 ) ex = fullExpr;
+ if (valueIdx == -1) ex = fullExpr;
else ex = exprs != null ? exprs[valueIdx] : null;
- if ( ex == null ) ex = annotation;
+ if (ex == null) ex = annotation;
int sourceStart = ex.sourceStart;
int sourceEnd = ex.sourceEnd;
@@ -402,10 +401,10 @@ public class Eclipse {
@Override public void setWarning(String message, int valueIdx) {
Expression ex;
- if ( valueIdx == -1 ) ex = fullExpr;
+ if (valueIdx == -1) ex = fullExpr;
else ex = exprs != null ? exprs[valueIdx] : null;
- if ( ex == null ) ex = annotation;
+ if (ex == null) ex = annotation;
int sourceStart = ex.sourceStart;
int sourceEnd = ex.sourceEnd;
@@ -419,9 +418,9 @@ public class Eclipse {
}
private static Object calculateValue(Expression e) {
- if ( e instanceof Literal ) {
+ if (e instanceof Literal) {
((Literal)e).computeConstant();
- switch ( e.constant.typeID() ) {
+ switch (e.constant.typeID()) {
case TypeIds.T_int: return e.constant.intValue();
case TypeIds.T_byte: return e.constant.byteValue();
case TypeIds.T_short: return e.constant.shortValue();
@@ -433,11 +432,11 @@ public class Eclipse {
case TypeIds.T_JavaLangString: return e.constant.stringValue();
default: return null;
}
- } else if ( e instanceof ClassLiteralAccess ) {
+ } else if (e instanceof ClassLiteralAccess) {
return Eclipse.toQualifiedName(((ClassLiteralAccess)e).type.getTypeName());
- } else if ( e instanceof SingleNameReference ) {
+ } else if (e instanceof SingleNameReference) {
return new String(((SingleNameReference)e).token);
- } else if ( e instanceof QualifiedNameReference ) {
+ } else if (e instanceof QualifiedNameReference) {
String qName = Eclipse.toQualifiedName(((QualifiedNameReference)e).tokens);
int idx = qName.lastIndexOf('.');
return idx == -1 ? qName : qName.substring(idx+1);
@@ -451,7 +450,7 @@ public class Eclipse {
static {
try {
generatedByField = ASTNode.class.getDeclaredField("$generatedBy");
- } catch ( Throwable t ) {
+ } catch (Throwable t) {
throw Lombok.sneakyThrow(t);
}
}
@@ -459,7 +458,7 @@ public class Eclipse {
public static ASTNode getGeneratedBy(ASTNode node) {
try {
return (ASTNode) generatedByField.get(node);
- } catch ( Exception t ) {
+ } catch (Exception t) {
throw Lombok.sneakyThrow(t);
}
}
@@ -471,7 +470,7 @@ public class Eclipse {
public static ASTNode setGeneratedBy(ASTNode node, ASTNode source) {
try {
generatedByField.set(node, source);
- } catch ( Exception t ) {
+ } catch (Exception t) {
throw Lombok.sneakyThrow(t);
}