From e1bfa376347292a2432f028331701f7aab42a46d Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Fri, 11 Feb 2022 10:20:07 +0100 Subject: Return profile --- .../src/main/java/ai/vespa/intellij/schema/SdUtil.java | 2 +- .../ai/vespa/intellij/schema/hierarchy/SdHierarchyUtil.java | 2 +- .../java/ai/vespa/intellij/schema/model/RankProfile.java | 6 ++++-- .../intellij/schema/psi/SdFunctionDefinitionInterface.java | 4 ++-- .../src/test/java/ai/vespa/intellij/model/SchemaTest.java | 12 ++++++------ 5 files changed, 14 insertions(+), 12 deletions(-) (limited to 'integration/intellij/src') diff --git a/integration/intellij/src/main/java/ai/vespa/intellij/schema/SdUtil.java b/integration/intellij/src/main/java/ai/vespa/intellij/schema/SdUtil.java index 3d38b071ed3..c8110bbd977 100644 --- a/integration/intellij/src/main/java/ai/vespa/intellij/schema/SdUtil.java +++ b/integration/intellij/src/main/java/ai/vespa/intellij/schema/SdUtil.java @@ -184,7 +184,7 @@ public class SdUtil { .findAny(); if (function.isPresent()) return function; for (var parent : new RankProfile(profile).findInherited()) { - function = findFunction(functionName, parent); + function = findFunction(functionName, parent.definition()); if (function.isPresent()) return function; } return Optional.empty(); diff --git a/integration/intellij/src/main/java/ai/vespa/intellij/schema/hierarchy/SdHierarchyUtil.java b/integration/intellij/src/main/java/ai/vespa/intellij/schema/hierarchy/SdHierarchyUtil.java index da8be16cca2..a3e25cea745 100644 --- a/integration/intellij/src/main/java/ai/vespa/intellij/schema/hierarchy/SdHierarchyUtil.java +++ b/integration/intellij/src/main/java/ai/vespa/intellij/schema/hierarchy/SdHierarchyUtil.java @@ -45,7 +45,7 @@ public class SdHierarchyUtil { if (thisProfile.getName().equals(targetProfile.getName())) return true; return new RankProfile(thisProfile).findInherited() .stream() - .anyMatch(parent -> isChildOf(targetProfile, parent)); + .anyMatch(parent -> isChildOf(targetProfile, parent.definition())); } public static Comparator> getComparator(Project project) { diff --git a/integration/intellij/src/main/java/ai/vespa/intellij/schema/model/RankProfile.java b/integration/intellij/src/main/java/ai/vespa/intellij/schema/model/RankProfile.java index 27430fcfbcb..2cc299a4eb3 100644 --- a/integration/intellij/src/main/java/ai/vespa/intellij/schema/model/RankProfile.java +++ b/integration/intellij/src/main/java/ai/vespa/intellij/schema/model/RankProfile.java @@ -27,6 +27,8 @@ public class RankProfile { this.definition = definition; } + public String name() { return definition.getName(); } + public SdRankProfileDefinition definition() { return definition; } /** @@ -34,13 +36,13 @@ public class RankProfile { * * @return the profiles this inherits from, empty if none */ - public List findInherited() { + public List findInherited() { ASTNode inheritsNode = definition.getNode().findChildByType(SdTypes.INHERITS); if (inheritsNode == null) return List.of(); return inherits().stream() .map(parentIdentifierAST -> parentIdentifierAST.getPsi().getReference()) .filter(reference -> reference != null) - .map(reference -> (SdRankProfileDefinition)reference.resolve()) + .map(reference -> new RankProfile((SdRankProfileDefinition)reference.resolve())) .collect(Collectors.toList()); } diff --git a/integration/intellij/src/main/java/ai/vespa/intellij/schema/psi/SdFunctionDefinitionInterface.java b/integration/intellij/src/main/java/ai/vespa/intellij/schema/psi/SdFunctionDefinitionInterface.java index 06928a46cc7..48eb9b3831c 100644 --- a/integration/intellij/src/main/java/ai/vespa/intellij/schema/psi/SdFunctionDefinitionInterface.java +++ b/integration/intellij/src/main/java/ai/vespa/intellij/schema/psi/SdFunctionDefinitionInterface.java @@ -16,7 +16,7 @@ public interface SdFunctionDefinitionInterface extends SdDeclaration { SdRankProfileDefinition thisRankProfile = PsiTreeUtil.getParentOfType(this, SdRankProfileDefinition.class); if (thisRankProfile == null) return false; for (var parentProfile : new RankProfile(thisRankProfile).findInherited()) { - if (containsFunction(functionName, parentProfile)) + if (containsFunction(functionName, parentProfile.definition())) return true; } return false; @@ -26,7 +26,7 @@ public interface SdFunctionDefinitionInterface extends SdDeclaration { if (SdUtil.functionsIn(new RankProfile(rankProfile)).containsKey(functionName)) return true; for (var parentProfile : new RankProfile(rankProfile).findInherited()) { - if (containsFunction(functionName, parentProfile)) + if (containsFunction(functionName, parentProfile.definition())) return true; } return false; diff --git a/integration/intellij/src/test/java/ai/vespa/intellij/model/SchemaTest.java b/integration/intellij/src/test/java/ai/vespa/intellij/model/SchemaTest.java index 432509a101c..5870d71329b 100644 --- a/integration/intellij/src/test/java/ai/vespa/intellij/model/SchemaTest.java +++ b/integration/intellij/src/test/java/ai/vespa/intellij/model/SchemaTest.java @@ -35,10 +35,10 @@ public class SchemaTest extends LightJavaCodeInsightFixtureTestCase { assertEquals("simple.sd", schema.definition().getName()); RankProfile profile = RankProfile.fromProjectFile(getProject(), "simple.sd", "simple-profile"); assertEquals("simple-profile", profile.definition().getName()); - List parents = profile.findInherited(); + List parents = profile.findInherited(); assertEquals(2, parents.size()); - assertEquals("parent-profile1", parents.get(0).getName()); - assertEquals("parent-profile2", parents.get(1).getName()); + assertEquals("parent-profile1", parents.get(0).name()); + assertEquals("parent-profile2", parents.get(1).name()); } @Test @@ -49,10 +49,10 @@ public class SchemaTest extends LightJavaCodeInsightFixtureTestCase { assertEquals("child.sd", schema.definition().getName()); RankProfile profile = RankProfile.fromProjectFile(getProject(), "child.sd", "child_profile"); assertEquals("child_profile", profile.definition().getName()); - List parents = profile.findInherited(); + List parents = profile.findInherited(); assertEquals(2, parents.size()); - assertEquals("other_child_profile", parents.get(0).getName()); - // assertEquals("parent-profile", parents.get(1).getName()); TODO + assertEquals("other_child_profile", parents.get(0).name()); + // assertEquals("parent-profile", parents.get(1).name()); TODO } } -- cgit v1.2.3