diff options
Diffstat (limited to 'config-model/src/main')
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java | 6 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java index f1155a5d3cf..5c43428a5d7 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java @@ -541,6 +541,12 @@ public class RankProfile implements Serializable, Cloneable { return rankingExpressionFunction; } + public RankingExpressionFunction findFunction(String name) { + RankingExpressionFunction function = functions.get(name); + return ((function == null) && (getInherited() != null)) + ? getInherited().findFunction(name) + : function; + } /** Returns an unmodifiable snapshot of the functions in this */ public Map<String, RankingExpressionFunction> getFunctions() { if (functions.isEmpty() && getInherited() == null) return Collections.emptyMap(); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java index 74b6471d291..c3ee7d5fc3d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java @@ -43,7 +43,7 @@ public class FunctionShadower extends ExpressionTransformer<RankProfileTransform private ExpressionNode transformFunctionNode(FunctionNode function, RankProfileTransformContext context) { String name = function.getFunction().toString(); - RankProfile.RankingExpressionFunction rankingExpressionFunction = context.rankProfile().getFunctions().get(name); + RankProfile.RankingExpressionFunction rankingExpressionFunction = context.rankProfile().findFunction(name); if (rankingExpressionFunction == null) { return transformChildren(function, context); } |