aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java13
-rw-r--r--src/core/lombok/javac/handlers/JavacHandlerUtil.java11
2 files changed, 20 insertions, 4 deletions
diff --git a/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java b/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java
index 8b4a84c1..e6d700f8 100644
--- a/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java
+++ b/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java
@@ -138,13 +138,21 @@ public class EclipseHandlerUtil {
}
/**
+ * Wrapper for {@link #methodExists(String, EclipseNode, boolean)} with {@code caseSensitive} = {@code true}.
+ */
+ public static MemberExistsResult methodExists(String methodName, EclipseNode node) {
+ return methodExists(methodName, node, true);
+ }
+
+ /**
* Checks if there is a method with the provided name. In case of multiple methods (overloading), only
* the first method decides if EXISTS_BY_USER or EXISTS_BY_LOMBOK is returned.
*
* @param methodName the method name to check for.
* @param node Any node that represents the Type (TypeDeclaration) to look in, or any child node thereof.
+ * @param caseSensitive If the search should be case sensitive.
*/
- public static MemberExistsResult methodExists(String methodName, EclipseNode node) {
+ public static MemberExistsResult methodExists(String methodName, EclipseNode node, boolean caseSensitive) {
while (node != null && !(node.get() instanceof TypeDeclaration)) {
node = node.up();
}
@@ -154,7 +162,8 @@ public class EclipseHandlerUtil {
if (typeDecl.methods != null) for (AbstractMethodDeclaration def : typeDecl.methods) {
char[] mName = def.selector;
if (mName == null) continue;
- if (methodName.equals(new String(mName))) {
+ boolean nameEquals = caseSensitive ? methodName.equals(new String(mName)) : methodName.equalsIgnoreCase(new String(mName));
+ if (nameEquals) {
EclipseNode existing = node.getNodeFor(def);
if (existing == null || !existing.isHandled()) return MemberExistsResult.EXISTS_BY_USER;
return MemberExistsResult.EXISTS_BY_LOMBOK;
diff --git a/src/core/lombok/javac/handlers/JavacHandlerUtil.java b/src/core/lombok/javac/handlers/JavacHandlerUtil.java
index ae904426..c968a9f7 100644
--- a/src/core/lombok/javac/handlers/JavacHandlerUtil.java
+++ b/src/core/lombok/javac/handlers/JavacHandlerUtil.java
@@ -184,14 +184,19 @@ public class JavacHandlerUtil {
return MemberExistsResult.NOT_EXISTS;
}
+ public static MemberExistsResult methodExists(String methodName, JavacNode node) {
+ return methodExists(methodName, node, true);
+ }
+
/**
* Checks if there is a method with the provided name. In case of multiple methods (overloading), only
* the first method decides if EXISTS_BY_USER or EXISTS_BY_LOMBOK is returned.
*
* @param methodName the method name to check for.
* @param node Any node that represents the Type (JCClassDecl) to look in, or any child node thereof.
+ * @param caseSensitive If the search should be case sensitive.
*/
- public static MemberExistsResult methodExists(String methodName, JavacNode node) {
+ public static MemberExistsResult methodExists(String methodName, JavacNode node, boolean caseSensitive) {
while (node != null && !(node.get() instanceof JCClassDecl)) {
node = node.up();
}
@@ -199,7 +204,9 @@ public class JavacHandlerUtil {
if (node != null && node.get() instanceof JCClassDecl) {
for (JCTree def : ((JCClassDecl)node.get()).defs) {
if (def instanceof JCMethodDecl) {
- if (((JCMethodDecl)def).name.contentEquals(methodName)) {
+ String name = ((JCMethodDecl)def).name.toString();
+ boolean matches = caseSensitive ? name.equals(methodName) : name.equalsIgnoreCase(methodName);
+ if (matches) {
JavacNode existing = node.getNodeFor(def);
if (existing == null || !existing.isHandled()) return MemberExistsResult.EXISTS_BY_USER;
return MemberExistsResult.EXISTS_BY_LOMBOK;