editable postfix templates: reduce generic count

This commit is contained in:
anstarovoyt
2018-04-17 18:43:00 +05:00
parent 9266c05e9a
commit 4bef18ddad
4 changed files with 10 additions and 15 deletions
@@ -26,7 +26,7 @@ import java.util.Objects;
import java.util.Set;
public class JavaEditablePostfixTemplate
extends EditablePostfixTemplateWithConditions<PsiExpression, JavaPostfixTemplateExpressionCondition> {
extends EditablePostfixTemplateWithConditions<JavaPostfixTemplateExpressionCondition> {
private static final Condition<PsiElement> PSI_ERROR_FILTER = element -> !PsiTreeUtil.hasErrorElements(element);
@NotNull private final LanguageLevel myMinimumLanguageLevel;
@@ -131,6 +131,4 @@ public class JavaEditablePostfixTemplate
public int hashCode() {
return Objects.hash(super.hashCode(), myMinimumLanguageLevel);
}
}
@@ -29,7 +29,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.Set;
public class JavaPostfixTemplateEditor extends PostfixTemplateEditorBase<PsiExpression, JavaPostfixTemplateExpressionCondition> {
public class JavaPostfixTemplateEditor extends PostfixTemplateEditorBase<JavaPostfixTemplateExpressionCondition> {
@NotNull private final JPanel myPanel;
@NotNull private final ComboBox<LanguageLevel> myLanguageLevelCombo;
@@ -18,7 +18,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.ui.popup.JBPopupFactory;
import com.intellij.openapi.ui.popup.ListPopup;
import com.intellij.psi.PsiElement;
import com.intellij.ui.AnActionButton;
import com.intellij.ui.ColoredListCellRenderer;
import com.intellij.ui.ListUtil;
@@ -36,8 +35,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.awt.*;
public abstract class PostfixTemplateEditorBase<ExpressionType extends PsiElement,
Condition extends PostfixTemplateExpressionCondition<ExpressionType>> implements PostfixTemplateEditor {
public abstract class PostfixTemplateEditorBase<Condition extends PostfixTemplateExpressionCondition> implements PostfixTemplateEditor {
@NotNull protected final PostfixTemplateProvider myProvider;
@NotNull protected final Editor myTemplateEditor;
@@ -71,11 +69,11 @@ public abstract class PostfixTemplateEditorBase<ExpressionType extends PsiElemen
myExpressionTypesListModel = JBList.createDefaultListModel();
myExpressionTypesList = new JBList<>(myExpressionTypesListModel);
myExpressionTypesList.setCellRenderer(new ColoredListCellRenderer<PostfixTemplateExpressionCondition<?>>() {
myExpressionTypesList.setCellRenderer(new ColoredListCellRenderer<PostfixTemplateExpressionCondition>() {
@Override
protected void customizeCellRenderer(@NotNull JList<? extends PostfixTemplateExpressionCondition<?>> list,
PostfixTemplateExpressionCondition<?> value,
protected void customizeCellRenderer(@NotNull JList<? extends PostfixTemplateExpressionCondition> list,
PostfixTemplateExpressionCondition value,
int index,
boolean selected,
boolean hasFocus) {
@@ -126,7 +124,7 @@ public abstract class PostfixTemplateEditorBase<ExpressionType extends PsiElemen
if (!(rawTemplate instanceof EditablePostfixTemplateWithConditions)) return;
//noinspection unchecked
EditablePostfixTemplateWithConditions<ExpressionType, Condition> template = (EditablePostfixTemplateWithConditions)rawTemplate;
EditablePostfixTemplateWithConditions<Condition> template = (EditablePostfixTemplateWithConditions)rawTemplate;
myExpressionTypesListModel.clear();
for (Condition condition : template.getExpressionConditions()) {
@@ -10,8 +10,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.Objects;
import java.util.Set;
public abstract class EditablePostfixTemplateWithConditions<ExpressionType extends PsiElement,
ConditionType extends PostfixTemplateExpressionCondition<ExpressionType>>
public abstract class EditablePostfixTemplateWithConditions<ConditionType extends PostfixTemplateExpressionCondition>
extends EditablePostfixTemplate {
@NotNull protected final Set<ConditionType> myExpressionConditions;
@@ -65,7 +64,7 @@ public abstract class EditablePostfixTemplateWithConditions<ExpressionType exten
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
EditablePostfixTemplateWithConditions<?, ?> that = (EditablePostfixTemplateWithConditions<?, ?>)o;
EditablePostfixTemplateWithConditions<?> that = (EditablePostfixTemplateWithConditions<?>)o;
return myUseTopmostExpression == that.myUseTopmostExpression &&
Objects.equals(myExpressionConditions, that.myExpressionConditions);
}
@@ -75,7 +74,7 @@ public abstract class EditablePostfixTemplateWithConditions<ExpressionType exten
return e -> {
for (ConditionType condition : myExpressionConditions) {
//noinspection unchecked
if (condition.value((ExpressionType)e)) {
if (condition.value(e)) {
return true;
}
}