Skip to content

Commit

Permalink
deduplicate code
Browse files Browse the repository at this point in the history
  • Loading branch information
mplushnikov committed Mar 30, 2019
1 parent 27b58e3 commit 123721d
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 27 deletions.
Expand Up @@ -19,6 +19,7 @@
import de.plushnikov.intellij.plugin.quickfix.PsiQuickFixFactory; import de.plushnikov.intellij.plugin.quickfix.PsiQuickFixFactory;
import de.plushnikov.intellij.plugin.thirdparty.LombokUtils; import de.plushnikov.intellij.plugin.thirdparty.LombokUtils;
import de.plushnikov.intellij.plugin.util.PsiAnnotationSearchUtil; import de.plushnikov.intellij.plugin.util.PsiAnnotationSearchUtil;
import de.plushnikov.intellij.plugin.util.PsiAnnotationUtil;
import de.plushnikov.intellij.plugin.util.PsiClassUtil; import de.plushnikov.intellij.plugin.util.PsiClassUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
Expand Down Expand Up @@ -158,4 +159,15 @@ boolean shouldGenerateNoArgsConstructor(@NotNull PsiClass psiClass, @NotNull Abs
return result; return result;
} }


boolean readCallSuperAnnotationOrConfigProperty(@NotNull PsiAnnotation psiAnnotation, @NotNull PsiClass psiClass, @NotNull ConfigKey configKey) {
final boolean result;
final Boolean declaredAnnotationValue = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(psiAnnotation, "callSuper");
if (null == declaredAnnotationValue) {
final String configProperty = configDiscovery.getStringLombokConfigProperty(configKey, psiClass);
result = PsiClassUtil.hasSuperClass(psiClass) && "CALL".equalsIgnoreCase(configProperty);
} else {
result = declaredAnnotationValue;
}
return result;
}
} }
Expand Up @@ -208,7 +208,7 @@ private PsiMethod createCanEqualMethod(@NotNull PsiClass psiClass, @NotNull PsiA
} }


private String createEqualsBlockString(@NotNull PsiClass psiClass, @NotNull PsiAnnotation psiAnnotation, boolean hasCanEqualMethod, Collection<MemberInfo> memberInfos) { private String createEqualsBlockString(@NotNull PsiClass psiClass, @NotNull PsiAnnotation psiAnnotation, boolean hasCanEqualMethod, Collection<MemberInfo> memberInfos) {
final boolean callSuper = readCallSuperAnnotationOrConfigProperty(psiAnnotation, psiClass); final boolean callSuper = readCallSuperAnnotationOrConfigProperty(psiAnnotation, psiClass, ConfigKey.EQUALSANDHASHCODE_CALL_SUPER);
final boolean doNotUseGetters = readAnnotationOrConfigProperty(psiAnnotation, psiClass, "doNotUseGetters", ConfigKey.EQUALSANDHASHCODE_DO_NOT_USE_GETTERS); final boolean doNotUseGetters = readAnnotationOrConfigProperty(psiAnnotation, psiClass, "doNotUseGetters", ConfigKey.EQUALSANDHASHCODE_DO_NOT_USE_GETTERS);


final String canonicalClassName = PsiTypesUtil.getClassType(psiClass).getCanonicalText(); final String canonicalClassName = PsiTypesUtil.getClassType(psiClass).getCanonicalText();
Expand Down Expand Up @@ -264,7 +264,7 @@ private String createEqualsBlockString(@NotNull PsiClass psiClass, @NotNull PsiA
private static final int PRIME_FOR_NULL = 43; private static final int PRIME_FOR_NULL = 43;


private String createHashcodeBlockString(@NotNull PsiClass psiClass, @NotNull PsiAnnotation psiAnnotation, Collection<MemberInfo> memberInfos) { private String createHashcodeBlockString(@NotNull PsiClass psiClass, @NotNull PsiAnnotation psiAnnotation, Collection<MemberInfo> memberInfos) {
final boolean callSuper = readCallSuperAnnotationOrConfigProperty(psiAnnotation, psiClass); final boolean callSuper = readCallSuperAnnotationOrConfigProperty(psiAnnotation, psiClass, ConfigKey.EQUALSANDHASHCODE_CALL_SUPER);
final boolean doNotUseGetters = readAnnotationOrConfigProperty(psiAnnotation, psiClass, "doNotUseGetters", ConfigKey.EQUALSANDHASHCODE_DO_NOT_USE_GETTERS); final boolean doNotUseGetters = readAnnotationOrConfigProperty(psiAnnotation, psiClass, "doNotUseGetters", ConfigKey.EQUALSANDHASHCODE_DO_NOT_USE_GETTERS);


final StringBuilder builder = new StringBuilder(); final StringBuilder builder = new StringBuilder();
Expand Down Expand Up @@ -315,18 +315,6 @@ private String createHashcodeBlockString(@NotNull PsiClass psiClass, @NotNull Ps
return builder.toString(); return builder.toString();
} }


private boolean readCallSuperAnnotationOrConfigProperty(@NotNull PsiAnnotation psiAnnotation, @NotNull PsiClass psiClass) {
final boolean result;
final Boolean declaredAnnotationValue = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(psiAnnotation, "callSuper");
if (null == declaredAnnotationValue) {
final String configProperty = configDiscovery.getStringLombokConfigProperty(ConfigKey.EQUALSANDHASHCODE_CALL_SUPER, psiClass);
result = PsiClassUtil.hasSuperClass(psiClass) && "CALL".equalsIgnoreCase(configProperty);
} else {
result = declaredAnnotationValue;
}
return result;
}

@NotNull @NotNull
@Override @Override
public Collection<PsiAnnotation> collectProcessedAnnotations(@NotNull PsiClass psiClass) { public Collection<PsiAnnotation> collectProcessedAnnotations(@NotNull PsiClass psiClass) {
Expand Down
Expand Up @@ -134,7 +134,7 @@ private String getSimpleClassName(@NotNull PsiClass psiClass) {
} }


private String createParamString(@NotNull PsiClass psiClass, @NotNull Collection<MemberInfo> memberInfos, @NotNull PsiAnnotation psiAnnotation) { private String createParamString(@NotNull PsiClass psiClass, @NotNull Collection<MemberInfo> memberInfos, @NotNull PsiAnnotation psiAnnotation) {
final boolean callSuper = readCallSuperAnnotationOrConfigProperty(psiAnnotation, psiClass); final boolean callSuper = readCallSuperAnnotationOrConfigProperty(psiAnnotation, psiClass, ConfigKey.TOSTRING_CALL_SUPER);
final boolean doNotUseGetters = readAnnotationOrConfigProperty(psiAnnotation, psiClass, "doNotUseGetters", ConfigKey.TOSTRING_DO_NOT_USE_GETTERS); final boolean doNotUseGetters = readAnnotationOrConfigProperty(psiAnnotation, psiClass, "doNotUseGetters", ConfigKey.TOSTRING_DO_NOT_USE_GETTERS);
final boolean includeFieldNames = readAnnotationOrConfigProperty(psiAnnotation, psiClass, "includeFieldNames", ConfigKey.TOSTRING_INCLUDE_FIELD_NAMES); final boolean includeFieldNames = readAnnotationOrConfigProperty(psiAnnotation, psiClass, "includeFieldNames", ConfigKey.TOSTRING_INCLUDE_FIELD_NAMES);


Expand Down Expand Up @@ -195,16 +195,4 @@ public LombokPsiElementUsage checkFieldUsage(@NotNull PsiField psiField, @NotNul
} }
return LombokPsiElementUsage.NONE; return LombokPsiElementUsage.NONE;
} }

private boolean readCallSuperAnnotationOrConfigProperty(@NotNull PsiAnnotation psiAnnotation, @NotNull PsiClass psiClass) {
final boolean result;
final Boolean declaredAnnotationValue = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(psiAnnotation, "callSuper");
if (null == declaredAnnotationValue) {
final String configProperty = configDiscovery.getStringLombokConfigProperty(ConfigKey.TOSTRING_CALL_SUPER, psiClass);
result = PsiClassUtil.hasSuperClass(psiClass) && "CALL".equalsIgnoreCase(configProperty);
} else {
result = declaredAnnotationValue;
}
return result;
}
} }

0 comments on commit 123721d

Please sign in to comment.