From ea3520e4df00a6bbe691d77bee03ca42e71d0874 Mon Sep 17 00:00:00 2001 From: "Sergey.Anchipolevsky" Date: Mon, 26 Feb 2018 16:46:25 +0300 Subject: [PATCH] [yaml, kubernetes] corrections upon review IDEA-CR-29807 --- .../impl/YamlDocumentationProviderBase.java | 7 ++--- .../org/jetbrains/yaml/meta/model/Field.java | 17 +----------- .../yaml/meta/model/TypeFieldPair.java | 26 +++++++++++++++++++ 3 files changed, 31 insertions(+), 19 deletions(-) create mode 100644 plugins/yaml/src/org/jetbrains/yaml/meta/model/TypeFieldPair.java diff --git a/plugins/yaml/src/org/jetbrains/yaml/meta/impl/YamlDocumentationProviderBase.java b/plugins/yaml/src/org/jetbrains/yaml/meta/impl/YamlDocumentationProviderBase.java index 2b4d521e8b24..64cbaca1ad77 100644 --- a/plugins/yaml/src/org/jetbrains/yaml/meta/impl/YamlDocumentationProviderBase.java +++ b/plugins/yaml/src/org/jetbrains/yaml/meta/impl/YamlDocumentationProviderBase.java @@ -16,6 +16,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.yaml.YAMLLanguage; import org.jetbrains.yaml.meta.model.Field; +import org.jetbrains.yaml.meta.model.TypeFieldPair; import org.jetbrains.yaml.meta.model.YamlMetaType; import org.jetbrains.yaml.meta.model.YamlMetaType.ForcedCompletionPath; import org.jetbrains.yaml.psi.YAMLKeyValue; @@ -57,8 +58,8 @@ public abstract class YamlDocumentationProviderBase extends AbstractDocumentatio if (object instanceof ForcedCompletionPath) { // deep completion return createFromCompletionPath((ForcedCompletionPath)object, contextElement); } - else if (object instanceof YamlMetaTypeProvider.MetaTypeProxy) { // basic completion with Field object - return createFromField((YamlMetaTypeProvider.MetaTypeProxy)object, contextElement); + else if (object instanceof TypeFieldPair) { // basic completion with Field object + return createFromField((TypeFieldPair)object, contextElement); } else if (object instanceof String) { // basic completion with plain string return createFromString((String)object, contextElement); @@ -184,7 +185,7 @@ public abstract class YamlDocumentationProviderBase extends AbstractDocumentatio } @NotNull - private DocumentationElement createFromField(YamlMetaTypeProvider.MetaTypeProxy field, @NotNull PsiElement contextElement) { + private DocumentationElement createFromField(@NotNull TypeFieldPair field, @NotNull PsiElement contextElement) { return new DocumentationElement(contextElement.getManager(), field.getMetaType(), field.getField()); } diff --git a/plugins/yaml/src/org/jetbrains/yaml/meta/model/Field.java b/plugins/yaml/src/org/jetbrains/yaml/meta/model/Field.java index 29fb4bbf907f..e4187cf28299 100644 --- a/plugins/yaml/src/org/jetbrains/yaml/meta/model/Field.java +++ b/plugins/yaml/src/org/jetbrains/yaml/meta/model/Field.java @@ -11,7 +11,6 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.yaml.meta.impl.YamlMetaTypeProvider; import org.jetbrains.yaml.psi.YAMLKeyValue; import javax.swing.*; @@ -223,21 +222,7 @@ public class Field { return Collections.emptyList(); } - final YamlMetaTypeProvider.MetaTypeProxy lookupObject = new YamlMetaTypeProvider.MetaTypeProxy() { - @NotNull - @Override - public YamlMetaType getMetaType() { - return ownerClass; - } - - @NotNull - @Override - public Field getField() { - return Field.this; - } - }; - - LookupElementBuilder lookup = LookupElementBuilder.create(lookupObject, getName()) + LookupElementBuilder lookup = LookupElementBuilder.create(new TypeFieldPair(ownerClass, this), getName()) .withTypeText(myMainType.getDisplayName(), true) .withIcon(getLookupIcon()) .withStrikeoutness(isDeprecated()); diff --git a/plugins/yaml/src/org/jetbrains/yaml/meta/model/TypeFieldPair.java b/plugins/yaml/src/org/jetbrains/yaml/meta/model/TypeFieldPair.java new file mode 100644 index 000000000000..0ce8c1f85c3a --- /dev/null +++ b/plugins/yaml/src/org/jetbrains/yaml/meta/model/TypeFieldPair.java @@ -0,0 +1,26 @@ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package org.jetbrains.yaml.meta.model; + +import org.jetbrains.annotations.NotNull; + +public class TypeFieldPair { + @NotNull + private final Field myField; + @NotNull + private final YamlMetaClass myOwnerClass; + + public TypeFieldPair(@NotNull YamlMetaClass ownerClass, @NotNull Field field) { + myField = field; + myOwnerClass = ownerClass; + } + + @NotNull + public YamlMetaType getMetaType() { + return myOwnerClass; + } + + @NotNull + public Field getField() { + return myField; + } +}