Skip to content
This repository was archived by the owner on Nov 3, 2024. It is now read-only.

Commit e7bbe04

Browse files
committed
merged adapted changes from master
1 parent 7d5b7f2 commit e7bbe04

File tree

8 files changed

+40
-14
lines changed

8 files changed

+40
-14
lines changed

src/main/java/de/plushnikov/intellij/plugin/processor/Processor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
*/
2020
public interface Processor {
2121
@NotNull
22-
String @NotNull[] getSupportedAnnotationClasses();
22+
String [] getSupportedAnnotationClasses();
2323

2424
@NotNull
2525
Class<? extends PsiElement> getSupportedClass();

src/main/java/de/plushnikov/intellij/plugin/provider/LombokAugmentProvider.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.intellij.openapi.components.ServiceManager;
44
import com.intellij.openapi.diagnostic.Logger;
5-
import com.intellij.openapi.util.ModificationTracker;
65
import com.intellij.openapi.util.RecursionGuard;
76
import com.intellij.openapi.util.RecursionManager;
87
import com.intellij.psi.*;
@@ -99,23 +98,23 @@ public <Psi extends PsiElement> List<Psi> getAugments(@NotNull PsiElement elemen
9998
}
10099

101100
private static class FieldLombokProvider<Psi extends PsiElement> extends LombokValueProvider<Psi> {
102-
private static final RecursionGuard<PsiClass> ourGuard = RecursionManager.createGuard("lombok.augment.field");
101+
private static final RecursionGuard ourGuard = RecursionManager.createGuard("lombok.augment.field");
103102

104103
FieldLombokProvider(Class<Psi> type, PsiClass psiClass, String nameHint) {
105104
super(type, psiClass, ourGuard, nameHint);
106105
}
107106
}
108107

109108
private static class MethodLombokProvider<Psi extends PsiElement> extends LombokValueProvider<Psi> {
110-
private static final RecursionGuard<PsiClass> ourGuard = RecursionManager.createGuard("lombok.augment.method");
109+
private static final RecursionGuard ourGuard = RecursionManager.createGuard("lombok.augment.method");
111110

112111
MethodLombokProvider(Class<Psi> type, PsiClass psiClass, String nameHint) {
113112
super(type, psiClass, ourGuard, nameHint);
114113
}
115114
}
116115

117116
private static class ClassLombokProvider<Psi extends PsiElement> extends LombokValueProvider<Psi> {
118-
private static final RecursionGuard<PsiClass> ourGuard = RecursionManager.createGuard("lombok.augment.class");
117+
private static final RecursionGuard ourGuard = RecursionManager.createGuard("lombok.augment.class");
119118

120119
ClassLombokProvider(Class<Psi> type, PsiClass psiClass, String nameHint) {
121120
super(type, psiClass, ourGuard, nameHint);
@@ -125,10 +124,10 @@ private static class ClassLombokProvider<Psi extends PsiElement> extends LombokV
125124
private abstract static class LombokValueProvider<Psi extends PsiElement> {
126125
private final Class<Psi> type;
127126
private final PsiClass psiClass;
128-
private final RecursionGuard<PsiClass> recursionGuard;
127+
private final RecursionGuard recursionGuard;
129128
private final String nameHint;
130129

131-
LombokValueProvider(Class<Psi> type, PsiClass psiClass, RecursionGuard<PsiClass> recursionGuard, String nameHint) {
130+
LombokValueProvider(Class<Psi> type, PsiClass psiClass, RecursionGuard recursionGuard, String nameHint) {
132131
this.type = type;
133132
this.psiClass = psiClass;
134133
this.recursionGuard = recursionGuard;

src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightClassBuilder.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.intellij.openapi.util.TextRange;
44
import com.intellij.psi.*;
55
import com.intellij.psi.impl.PsiClassImplUtil;
6-
import com.intellij.psi.impl.light.LightFieldBuilder;
76
import com.intellij.psi.impl.light.LightPsiClassBuilder;
87
import com.intellij.psi.impl.source.ClassInnerStuffCache;
98
import com.intellij.psi.impl.source.PsiExtensibleClass;
@@ -93,7 +92,8 @@ public boolean isEnum() {
9392
}
9493

9594
@Override
96-
public PsiField @NotNull [] getFields() {
95+
@NotNull
96+
public PsiField [] getFields() {
9797
if (null == myFields) {
9898
Collection<PsiField> generatedFields = fieldSupplier.get();
9999
myFields = generatedFields.toArray(PsiField.EMPTY_ARRAY);
@@ -103,7 +103,8 @@ public boolean isEnum() {
103103
}
104104

105105
@Override
106-
public PsiMethod @NotNull [] getMethods() {
106+
@NotNull
107+
public PsiMethod [] getMethods() {
107108
if (null == myMethods) {
108109
Collection<PsiMethod> generatedMethods = methodSupplier.get();
109110
myMethods = generatedMethods.toArray(PsiMethod.EMPTY_ARRAY);

src/main/java/de/plushnikov/intellij/plugin/psi/LombokLightModifierList.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ public PsiAnnotation findAnnotation(@NotNull String qualifiedName) {
9696
}
9797

9898
@Override
99-
public PsiAnnotation @NotNull [] getAnnotations() {
99+
@NotNull
100+
public PsiAnnotation [] getAnnotations() {
100101
PsiAnnotation[] result = PsiAnnotation.EMPTY_ARRAY;
101102
if (!myAnnotations.isEmpty()) {
102103
Collection<PsiAnnotation> annotations = myAnnotations.values();

src/main/java/de/plushnikov/intellij/plugin/util/LombokProcessorUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public static boolean isLevelVisible(@NotNull PsiAnnotation psiAnnotation) {
7676
}
7777

7878
public static Collection<String> getOnX(@NotNull PsiAnnotation psiAnnotation, @NotNull String parameterName) {
79-
PsiAnnotationMemberValue onXValue = psiAnnotation.hasAttribute(parameterName) ? psiAnnotation.findAttributeValue(parameterName) : null;
79+
PsiAnnotationMemberValue onXValue = psiAnnotation.findAttributeValue(parameterName);
8080
if (!(onXValue instanceof PsiAnnotation)) {
8181
return Collections.emptyList();
8282
}

src/main/java/de/plushnikov/intellij/plugin/util/PsiAnnotationUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public static boolean hasDeclaredProperty(@NotNull PsiAnnotation psiAnnotation,
6363
}
6464

6565
public static boolean getBooleanAnnotationValue(@NotNull PsiAnnotation psiAnnotation, @NotNull String parameter, boolean defaultValue) {
66-
final Boolean result = psiAnnotation.hasAttribute(parameter) ? AnnotationUtil.getBooleanAttributeValue(psiAnnotation, parameter) : null;
66+
final Boolean result = AnnotationUtil.getBooleanAttributeValue(psiAnnotation, parameter);
6767
return result == null ? defaultValue : result;
6868
}
6969

src/test/java/de/plushnikov/intellij/plugin/AbstractLombokLightCodeInsightTestCase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.intellij.psi.PsiFile;
1010
import com.intellij.testFramework.LightProjectDescriptor;
1111
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
12-
import de.plushnikov.intellij.plugin.util.ReflectionUtil;
1312
import junit.framework.ComparisonFailure;
1413
import org.jetbrains.annotations.NotNull;
1514

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package de.plushnikov.intellij.plugin;
2+
3+
import com.intellij.openapi.diagnostic.Logger;
4+
5+
import java.lang.reflect.Field;
6+
7+
/**
8+
* @author Plushnikov Michail
9+
*/
10+
public final class ReflectionUtil {
11+
private static final Logger LOG = Logger.getInstance(ReflectionUtil.class.getName());
12+
13+
public static <T, R> R getFinalFieldPerReflection(Class<T> clazz, T instance, Class<R> fieldClass) {
14+
try {
15+
for (Field field : clazz.getDeclaredFields()) {
16+
if (field.getType().equals(fieldClass)) {
17+
field.setAccessible(true);
18+
return (R) field.get(instance);
19+
}
20+
}
21+
} catch (IllegalArgumentException | IllegalAccessException x) {
22+
LOG.error(x);
23+
}
24+
return null;
25+
}
26+
}

0 commit comments

Comments
 (0)