aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilippe Charles <charphi@users.noreply.github.com>2018-08-22 09:54:00 +0200
committerGitHub <noreply@github.com>2018-08-22 09:54:00 +0200
commit3ffac6642456e2c7d32952c62df8a565e2d4728b (patch)
treeb0a28ac208dcb8af9add494c4caffe4f11bb287b /src
parent35c7c6bda2e71da2e6e06cec5b0fb012c348f694 (diff)
parent769185e123dfd4a073161eafb58ce50bb79d6201 (diff)
downloadlombok-3ffac6642456e2c7d32952c62df8a565e2d4728b.tar.gz
lombok-3ffac6642456e2c7d32952c62df8a565e2d4728b.tar.bz2
lombok-3ffac6642456e2c7d32952c62df8a565e2d4728b.zip
Merge branch 'master' into master
Diffstat (limited to 'src')
-rw-r--r--src/core/lombok/ConfigurationKeys.java20
-rw-r--r--src/core/lombok/bytecode/ClassFileMetaData.java11
-rw-r--r--src/core/lombok/core/AST.java12
-rw-r--r--src/core/lombok/core/AnnotationProcessor.java30
-rw-r--r--src/core/lombok/core/LombokConfiguration.java15
-rw-r--r--src/core/lombok/core/LombokInternalAliasing.java6
-rw-r--r--src/core/lombok/core/LombokNode.java38
-rw-r--r--src/core/lombok/core/Version.java2
-rw-r--r--src/core/lombok/core/configuration/ConfigurationApp.java7
-rw-r--r--src/core/lombok/core/configuration/ConfigurationKey.java12
-rw-r--r--src/core/lombok/core/configuration/ConfigurationResolverFactory.java6
-rw-r--r--src/core/lombok/core/configuration/StringConfigurationSource.java1
-rw-r--r--src/core/lombok/eclipse/EclipseAST.java12
-rw-r--r--src/core/lombok/eclipse/EclipseASTAdapter.java7
-rw-r--r--src/core/lombok/eclipse/EclipseASTVisitor.java111
-rw-r--r--src/core/lombok/eclipse/EclipseNode.java10
-rw-r--r--src/core/lombok/eclipse/HandlerLibrary.java24
-rw-r--r--src/core/lombok/eclipse/TransformEclipseAST.java32
-rw-r--r--src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java26
-rw-r--r--src/core/lombok/eclipse/handlers/HandleBuilder.java36
-rw-r--r--src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java26
-rw-r--r--src/core/lombok/eclipse/handlers/HandleFieldNameConstants.java144
-rw-r--r--src/core/lombok/experimental/FieldNameConstants.java28
-rw-r--r--src/core/lombok/javac/JavacAST.java7
-rw-r--r--src/core/lombok/javac/JavacASTVisitor.java14
-rw-r--r--src/core/lombok/javac/JavacNode.java9
-rw-r--r--src/core/lombok/javac/JavacTransformer.java11
-rw-r--r--src/core/lombok/javac/apt/LombokProcessor.java21
-rw-r--r--src/core/lombok/javac/handlers/HandleBuilder.java30
-rw-r--r--src/core/lombok/javac/handlers/HandleFieldDefaults.java2
-rw-r--r--src/core/lombok/javac/handlers/HandleFieldNameConstants.java129
-rw-r--r--src/core9/module-info.java2
-rw-r--r--src/eclipseAgent/lombok/eclipse/agent/PatchFixesShadowLoaded.java1
-rw-r--r--src/eclipseAgent/lombok/eclipse/agent/PatchVal.java16
-rw-r--r--src/eclipseAgent/lombok/eclipse/agent/PatchValEclipse.java84
-rw-r--r--src/eclipseAgent/lombok/launch/PatchFixesHider.java2
-rw-r--r--src/launch/lombok/launch/Agent.java2
-rw-r--r--src/launch/lombok/launch/AnnotationProcessor.java2
-rw-r--r--src/launch/lombok/launch/Main.java12
-rw-r--r--src/launch/lombok/launch/ShadowClassLoader.java37
-rw-r--r--src/utils/lombok/eclipse/Eclipse.java24
41 files changed, 680 insertions, 341 deletions
diff --git a/src/core/lombok/ConfigurationKeys.java b/src/core/lombok/ConfigurationKeys.java
index f5134bbd..184ded27 100644
--- a/src/core/lombok/ConfigurationKeys.java
+++ b/src/core/lombok/ConfigurationKeys.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2017 The Project Lombok Authors.
+ * Copyright (C) 2013-2018 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -39,6 +39,13 @@ public class ConfigurationKeys {
// ----- global -----
/**
+ * lombok configuration: {@code dangerousconfig.lombok.disable} = {@code true} | {@code false}.
+ *
+ * If {@code true}, lombok is disabled entirely.
+ */
+ public static final ConfigurationKey<Boolean> LOMBOK_DISABLE = new ConfigurationKey<Boolean>("dangerousconfig.lombok.disable", "Disables lombok transformers. It does not flag any lombok mentions (so, @Cleanup silently does nothing), and does not disable patched operations in eclipse either. Don't use this unless you know what you're doing. (default: false).", true) {};
+
+ /**
* lombok configuration: {@code lombok.addGeneratedAnnotation} = {@code true} | {@code false}.
*
* If {@code true}, lombok generates {@code @javax.annotation.Generated("lombok")} on all fields, methods, and types that are generated, unless {@code lombok.addJavaxGeneratedAnnotation} is set.
@@ -522,18 +529,11 @@ public class ConfigurationKeys {
public static final ConfigurationKey<FlagUsageType> FIELD_NAME_CONSTANTS_FLAG_USAGE = new ConfigurationKey<FlagUsageType>("lombok.fieldNameConstants.flagUsage", "Emit a warning or error if @FieldNameConstants is used.") {};
/**
- * lombok configuration: {@code lombok.fieldNameConstants.prefix} = &lt;String: aJavaIdentifierPrefix&gt; (Default: {@code PREFIX_}).
+ * lombok configuration: {@code lombok.fieldNameConstants.innerTypeName} = &lt;String: AValidJavaTypeName&gt; (Default: {@code Fields}).
*
* The names of the constants generated by {@code @FieldNameConstants} will be prefixed with this value.
*/
- public static final ConfigurationKey<String> FIELD_NAME_CONSTANTS_PREFIX = new ConfigurationKey<String>("lombok.fieldNameConstants.prefix", "names of constants generated by @FieldNameConstants will be prefixed with this value. (default: 'PREFIX_').") {};
-
- /**
- * lombok configuration: {@code lombok.fieldNameConstants.suffix} = &lt;String: aJavaIdentifierPrefix&gt; (Default: nothing).
- *
- * The names of the constants generated by {@code @FieldNameConstants} will be suffixed with this value.
- */
- public static final ConfigurationKey<String> FIELD_NAME_CONSTANTS_SUFFIX = new ConfigurationKey<String>("lombok.fieldNameConstants.suffix", "names of constants generated by @FieldNameConstants will be suffixed with this value. (default: nothing).") {};
+ public static final ConfigurationKey<String> FIELD_NAME_CONSTANTS_INNER_TYPE_NAME = new ConfigurationKey<String>("lombok.fieldNameConstants.innerTypeName", "The default name of the inner type generated by @FieldNameConstants. (default: 'Fields').") {};
// ----- Wither -----
diff --git a/src/core/lombok/bytecode/ClassFileMetaData.java b/src/core/lombok/bytecode/ClassFileMetaData.java
index 0dc6a6c8..826eed83 100644
--- a/src/core/lombok/bytecode/ClassFileMetaData.java
+++ b/src/core/lombok/bytecode/ClassFileMetaData.java
@@ -116,23 +116,24 @@ public class ClassFileMetaData {
int end = pos + size;
// the resulting string might be smaller
- StringBuilder result = new StringBuilder(size);
+ char[] result = new char[size];
+ int length = 0;
while (pos < end) {
int first = (byteCode[pos++] & 0xFF);
if (first < 0x80) {
- result.append((char)first);
+ result[length++] = (char)first;
} else if ((first & 0xE0) == 0xC0) {
int x = (first & 0x1F) << 6;
int y = (byteCode[pos++] & 0x3F);
- result.append((char)(x | y));
+ result[length++] = (char)(x | y);
} else {
int x = (first & 0x0F) << 12;
int y = (byteCode[pos++] & 0x3F) << 6;
int z = (byteCode[pos++] & 0x3F);
- result.append((char)(x | y | z));
+ result[length++] = (char)(x | y | z);
}
}
- return result.toString();
+ return new String(result, 0, length);
}
/**
diff --git a/src/core/lombok/core/AST.java b/src/core/lombok/core/AST.java
index 1142018f..fe7a4330 100644
--- a/src/core/lombok/core/AST.java
+++ b/src/core/lombok/core/AST.java
@@ -216,19 +216,19 @@ public abstract class AST<A extends AST<A, L, N>, L extends LombokNode<A, L, N>,
}
}
- private static final ConcurrentMap<Class<?>, Collection<FieldAccess>> fieldsOfASTClasses = new ConcurrentHashMap<Class<?>, Collection<FieldAccess>>();
+ private static final ConcurrentMap<Class<?>, FieldAccess[]> fieldsOfASTClasses = new ConcurrentHashMap<Class<?>, FieldAccess[]>();
/** Returns FieldAccess objects for the stated class. Each field that contains objects of the kind returned by
* {@link #getStatementTypes()}, either directly or inside of an array or java.util.collection (or array-of-arrays,
* or collection-of-collections, et cetera), is returned.
*/
- protected Collection<FieldAccess> fieldsOf(Class<?> c) {
- Collection<FieldAccess> fields = fieldsOfASTClasses.get(c);
+ protected FieldAccess[] fieldsOf(Class<?> c) {
+ FieldAccess[] fields = fieldsOfASTClasses.get(c);
if (fields != null) return fields;
- fields = new ArrayList<FieldAccess>();
- getFields(c, fields);
- fieldsOfASTClasses.putIfAbsent(c, fields);
+ List<FieldAccess> fieldList = new ArrayList<FieldAccess>();
+ getFields(c, fieldList);
+ fieldsOfASTClasses.putIfAbsent(c, fieldList.toArray(new FieldAccess[fieldList.size()]));
return fieldsOfASTClasses.get(c);
}
diff --git a/src/core/lombok/core/AnnotationProcessor.java b/src/core/lombok/core/AnnotationProcessor.java
index 04448ecb..293bfef6 100644
--- a/src/core/lombok/core/AnnotationProcessor.java
+++ b/src/core/lombok/core/AnnotationProcessor.java
@@ -49,7 +49,7 @@ import lombok.patcher.ClassRootFinder;
@SupportedAnnotationTypes("*")
public class AnnotationProcessor extends AbstractProcessor {
-
+
private static String trace(Throwable t) {
StringWriter w = new StringWriter();
t.printStackTrace(new PrintWriter(w, true));
@@ -65,42 +65,35 @@ public class AnnotationProcessor extends AbstractProcessor {
private final List<ProcessorDescriptor> registered = Arrays.asList(new JavacDescriptor(), new EcjDescriptor());
private final List<ProcessorDescriptor> active = new ArrayList<ProcessorDescriptor>();
private final List<String> delayedWarnings = new ArrayList<String>();
-
+
/**
* This method is a simplified version of {@link lombok.javac.apt.LombokProcessor.getJavacProcessingEnvironment}
* It simply returns the processing environment, but in case of gradle incremental compilation,
* the delegate ProcessingEnvironment of the gradle wrapper is returned.
*/
public static ProcessingEnvironment getJavacProcessingEnvironment(ProcessingEnvironment procEnv, List<String> delayedWarnings) {
- ProcessingEnvironment javacProcEnv = tryRecursivelyObtainJavacProcessingEnvironment(procEnv);
-
- if (javacProcEnv == null) {
- delayedWarnings.add("Can't get the delegate of the gradle IncrementalProcessingEnvironment.");
- }
-
- return javacProcEnv;
+ return tryRecursivelyObtainJavacProcessingEnvironment(procEnv);
}
-
+
private static ProcessingEnvironment tryRecursivelyObtainJavacProcessingEnvironment(ProcessingEnvironment procEnv) {
if (procEnv.getClass().getName().equals("com.sun.tools.javac.processing.JavacProcessingEnvironment")) {
return procEnv;
}
-
+
for (Class<?> procEnvClass = procEnv.getClass(); procEnvClass != null; procEnvClass = procEnvClass.getSuperclass()) {
try {
Field field = procEnvClass.getDeclaredField("delegate");
field.setAccessible(true);
Object delegate = field.get(procEnv);
-
+
return tryRecursivelyObtainJavacProcessingEnvironment((ProcessingEnvironment) delegate);
} catch (final Exception e) {
// no valid delegate, try superclass
}
}
-
+
return null;
}
-
static class JavacDescriptor extends ProcessorDescriptor {
private Processor processor;
@@ -110,10 +103,13 @@ public class AnnotationProcessor extends AbstractProcessor {
}
@Override boolean want(ProcessingEnvironment procEnv, List<String> delayedWarnings) {
+ // do not run on ECJ as it may print warnings
+ if (procEnv.getClass().getName().startsWith("org.eclipse.jdt.")) return false;
+
ProcessingEnvironment javacProcEnv = getJavacProcessingEnvironment(procEnv, delayedWarnings);
-
+
if (javacProcEnv == null) return false;
-
+
try {
ClassLoader classLoader = findAndPatchClassLoader(javacProcEnv);
processor = (Processor) Class.forName("lombok.javac.apt.LombokProcessor", false, classLoader).newInstance();
@@ -209,7 +205,7 @@ public class AnnotationProcessor extends AbstractProcessor {
for (TypeElement elem : annotations) {
zeroElems = false;
Name n = elem.getQualifiedName();
- if (n.length() > 7 && n.subSequence(0, 7).toString().equals("lombok.")) continue;
+ if (n.toString().startsWith("lombok.")) continue;
onlyLombok = false;
}
diff --git a/src/core/lombok/core/LombokConfiguration.java b/src/core/lombok/core/LombokConfiguration.java
index eb7b3d75..4a79c797 100644
--- a/src/core/lombok/core/LombokConfiguration.java
+++ b/src/core/lombok/core/LombokConfiguration.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2014 The Project Lombok Authors.
+ * Copyright (C) 2013-2018 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -21,6 +21,7 @@
*/
package lombok.core;
+import java.net.URI;
import java.util.Collections;
import lombok.core.configuration.BubblingConfigurationResolver;
@@ -44,7 +45,7 @@ public class LombokConfiguration {
static {
if (System.getProperty("lombok.disableConfig") != null) {
configurationResolverFactory = new ConfigurationResolverFactory() {
- @Override public ConfigurationResolver createResolver(AST<?, ?, ?> ast) {
+ @Override public ConfigurationResolver createResolver(URI sourceLocation) {
return NULL_RESOLVER;
}
};
@@ -63,13 +64,17 @@ public class LombokConfiguration {
}
static <T> T read(ConfigurationKey<T> key, AST<?, ?, ?> ast) {
- return configurationResolverFactory.createResolver(ast).resolve(key);
+ return configurationResolverFactory.createResolver(ast.getAbsoluteFileLocation()).resolve(key);
+ }
+
+ public static <T> T read(ConfigurationKey<T> key, URI sourceLocation) {
+ return configurationResolverFactory.createResolver(sourceLocation).resolve(key);
}
private static ConfigurationResolverFactory createFileSystemBubblingResolverFactory() {
return new ConfigurationResolverFactory() {
- @Override public ConfigurationResolver createResolver(AST<?, ?, ?> ast) {
- return new BubblingConfigurationResolver(cache.sourcesForJavaFile(ast.getAbsoluteFileLocation(), ConfigurationProblemReporter.CONSOLE));
+ @Override public ConfigurationResolver createResolver(URI sourceLocation) {
+ return new BubblingConfigurationResolver(cache.sourcesForJavaFile(sourceLocation, ConfigurationProblemReporter.CONSOLE));
}
};
}
diff --git a/src/core/lombok/core/LombokInternalAliasing.java b/src/core/lombok/core/LombokInternalAliasing.java
index 3dc1bfa2..c1089580 100644
--- a/src/core/lombok/core/LombokInternalAliasing.java
+++ b/src/core/lombok/core/LombokInternalAliasing.java
@@ -36,10 +36,8 @@ public class LombokInternalAliasing {
*/
public static String processAliases(String in) {
if (in == null) return null;
- for (Map.Entry<String, String> e : ALIASES.entrySet()) {
- if (in.equals(e.getKey())) return e.getValue();
- }
- return in;
+ String ret = ALIASES.get(in);
+ return ret == null ? in : ret;
}
static {
diff --git a/src/core/lombok/core/LombokNode.java b/src/core/lombok/core/LombokNode.java
index d6708956..5a0842bc 100644
--- a/src/core/lombok/core/LombokNode.java
+++ b/src/core/lombok/core/LombokNode.java
@@ -40,7 +40,6 @@ import lombok.core.AST.Kind;
* For example, JCTree for javac, and ASTNode for Eclipse.
*/
public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A, L, N>, N> implements DiagnosticsReceiver {
- protected final A ast;
protected final Kind kind;
protected final N node;
protected LombokImmutableList<L> children;
@@ -59,8 +58,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
* @param kind The kind of node represented by this object.
*/
@SuppressWarnings("unchecked")
- protected LombokNode(A ast, N node, List<L> children, Kind kind) {
- this.ast = ast;
+ protected LombokNode(N node, List<L> children, Kind kind) {
this.kind = kind;
this.node = node;
this.children = children != null ? LombokImmutableList.copyOf(children) : LombokImmutableList.<L>of();
@@ -72,9 +70,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
this.isStructurallySignificant = calculateIsStructurallySignificant(null);
}
- public A getAst() {
- return ast;
- }
+ public abstract A getAst();
/** {@inheritDoc} */
@Override public String toString() {
@@ -88,7 +84,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
* @see AST#getPackageDeclaration()
*/
public String getPackageDeclaration() {
- return ast.getPackageDeclaration();
+ return getAst().getPackageDeclaration();
}
/**
@@ -97,7 +93,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
* @see AST#getImportList()
*/
public ImportList getImportList() {
- return ast.getImportList();
+ return getAst().getImportList();
}
/**
@@ -111,7 +107,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
* @see AST#get(Object)
*/
public L getNodeFor(N obj) {
- return ast.get(obj);
+ return getAst().get(obj);
}
/**
@@ -187,7 +183,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
* @see AST#getLatestJavaSpecSupported()
*/
public int getLatestJavaSpecSupported() {
- return ast.getLatestJavaSpecSupported();
+ return getAst().getLatestJavaSpecSupported();
}
/**
@@ -196,7 +192,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
* @see AST#getSourceVersion()
*/
public int getSourceVersion() {
- return ast.getSourceVersion();
+ return getAst().getSourceVersion();
}
/**
@@ -205,7 +201,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
* @see AST#top()
*/
public L top() {
- return ast.top();
+ return getAst().top();
}
/**
@@ -214,7 +210,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
* @see AST#getFileName()
*/
public String getFileName() {
- return ast.getFileName();
+ return getAst().getFileName();
}
/**
@@ -224,8 +220,8 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
*/
@SuppressWarnings({"unchecked"})
public L add(N newChild, Kind newChildKind) {
- ast.setChanged();
- L n = ast.buildTree(newChild, newChildKind);
+ getAst().setChanged();
+ L n = getAst().buildTree(newChild, newChildKind);
if (n == null) return null;
n.parent = (L) this;
children = children.append(n);
@@ -242,20 +238,20 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
Map<N, L> oldNodes = new IdentityHashMap<N, L>();
gatherAndRemoveChildren(oldNodes);
- L newNode = ast.buildTree(get(), kind);
+ L newNode = getAst().buildTree(get(), kind);
- ast.setChanged();
+ getAst().setChanged();
- ast.replaceNewWithExistingOld(oldNodes, newNode);
+ getAst().replaceNewWithExistingOld(oldNodes, newNode);
}
@SuppressWarnings({"unchecked", "rawtypes"})
private void gatherAndRemoveChildren(Map<N, L> map) {
for (LombokNode child : children) child.gatherAndRemoveChildren(map);
- ast.identityDetector.remove(get());
+ getAst().identityDetector.remove(get());
map.put(get(), (L) this);
children = LombokImmutableList.of();
- ast.getNodeMap().remove(get());
+ getAst().getNodeMap().remove(get());
}
/**
@@ -264,7 +260,7 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
* Does not change the underlying (javac/Eclipse) AST, only the wrapped view.
*/
public void removeChild(L child) {
- ast.setChanged();
+ getAst().setChanged();
children = children.removeElement(child);
}
diff --git a/src/core/lombok/core/Version.java b/src/core/lombok/core/Version.java
index 70af48e0..4b119873 100644
--- a/src/core/lombok/core/Version.java
+++ b/src/core/lombok/core/Version.java
@@ -30,7 +30,7 @@ public class Version {
// ** CAREFUL ** - this class must always compile with 0 dependencies (it must not refer to any other sources or libraries).
// Note: In 'X.Y.Z', if Z is odd, its a snapshot build built from the repository, so many different 0.10.3 versions can exist, for example.
// Official builds always end in an even number. (Since 0.10.2).
- private static final String VERSION = "1.18.1";
+ private static final String VERSION = "1.18.3";
private static final String RELEASE_NAME = "Edgy Guinea Pig";
// private static final String RELEASE_NAME = "Envious Ferret";
diff --git a/src/core/lombok/core/configuration/ConfigurationApp.java b/src/core/lombok/core/configuration/ConfigurationApp.java
index efe57e38..9cfec2e7 100644
--- a/src/core/lombok/core/configuration/ConfigurationApp.java
+++ b/src/core/lombok/core/configuration/ConfigurationApp.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014 The Project Lombok Authors.
+ * Copyright (C) 2014-2018 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -118,7 +118,7 @@ public class ConfigurationApp extends LombokApp {
boolean verbose = args.verbose;
if (args.generate) {
- return generate(keys, verbose);
+ return generate(keys, verbose, !args.key.isEmpty());
}
return display(keys, verbose, args.paths, !args.key.isEmpty());
@@ -130,8 +130,9 @@ public class ConfigurationApp extends LombokApp {
return this;
}
- public int generate(Collection<ConfigurationKey<?>> keys, boolean verbose) {
+ public int generate(Collection<ConfigurationKey<?>> keys, boolean verbose, boolean explicit) {
for (ConfigurationKey<?> key : keys) {
+ if (!explicit && key.isHidden()) continue;
String keyName = key.getKeyName();
ConfigurationDataType type = key.getType();
String description = key.getDescription();
diff --git a/src/core/lombok/core/configuration/ConfigurationKey.java b/src/core/lombok/core/configuration/ConfigurationKey.java
index d46a70b0..18075190 100644
--- a/src/core/lombok/core/configuration/ConfigurationKey.java
+++ b/src/core/lombok/core/configuration/ConfigurationKey.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2014 The Project Lombok Authors.
+ * Copyright (C) 2013-2018 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -43,13 +43,19 @@ public abstract class ConfigurationKey<T> {
private final String keyName;
private final String description;
private final ConfigurationDataType type;
+ private final boolean hidden;
public ConfigurationKey(String keyName, String description) {
+ this(keyName, description, false);
+ }
+
+ public ConfigurationKey(String keyName, String description, boolean hidden) {
this.keyName = checkName(keyName);
@SuppressWarnings("unchecked")
ConfigurationDataType type = ConfigurationDataType.toDataType((Class<? extends ConfigurationKey<?>>)getClass());
this.type = type;
this.description = description;
+ this.hidden = hidden;
registerKey(keyName, this);
}
@@ -65,6 +71,10 @@ public abstract class ConfigurationKey<T> {
return type;
}
+ public final boolean isHidden() {
+ return hidden;
+ }
+
@Override public String toString() {
return keyName + " (" + type + "): " + description;
}
diff --git a/src/core/lombok/core/configuration/ConfigurationResolverFactory.java b/src/core/lombok/core/configuration/ConfigurationResolverFactory.java
index 83b58c2f..b640b271 100644
--- a/src/core/lombok/core/configuration/ConfigurationResolverFactory.java
+++ b/src/core/lombok/core/configuration/ConfigurationResolverFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014 The Project Lombok Authors.
+ * Copyright (C) 2014-2018 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -21,8 +21,8 @@
*/
package lombok.core.configuration;
-import lombok.core.AST;
+import java.net.URI;
public interface ConfigurationResolverFactory {
- ConfigurationResolver createResolver(AST<?, ?, ?> ast);
+ ConfigurationResolver createResolver(URI sourceLocation);
}
diff --git a/src/core/lombok/core/configuration/StringConfigurationSource.java b/src/core/lombok/core/configuration/StringConfigurationSource.java
index dd2f0319..abf6eea0 100644
--- a/src/core/lombok/core/configuration/StringConfigurationSource.java
+++ b/src/core/lombok/core/configuration/StringConfigurationSource.java
@@ -67,7 +67,6 @@ public class StringConfigurationSource implements ConfigurationSource {
list.add(new ListModification(value, add));
}
});
-
return new StringConfigurationSource(values);
}
diff --git a/src/core/lombok/eclipse/EclipseAST.java b/src/core/lombok/eclipse/EclipseAST.java
index dc2c9843..7cd2e400 100644
--- a/src/core/lombok/eclipse/EclipseAST.java
+++ b/src/core/lombok/eclipse/EclipseAST.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2013 The Project Lombok Authors.
+ * Copyright (C) 2009-2018 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -73,16 +73,20 @@ public class EclipseAST extends AST<EclipseAST, EclipseNode, ASTNode> {
private static final URI NOT_CALCULATED_MARKER = URI.create("https://projectlombok.org/not/calculated");
private URI memoizedAbsoluteFileLocation = NOT_CALCULATED_MARKER;
+ public static URI getAbsoluteFileLocation(CompilationUnitDeclaration ast) {
+ return getAbsoluteFi