summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroInliner.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroInliner.java')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroInliner.java21
1 files changed, 7 insertions, 14 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroInliner.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroInliner.java
index a3933e6f8e2..6702955bae3 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroInliner.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroInliner.java
@@ -6,8 +6,7 @@ import com.yahoo.searchlib.rankingexpression.rule.CompositeNode;
import com.yahoo.searchlib.rankingexpression.rule.ExpressionNode;
import com.yahoo.searchlib.rankingexpression.rule.ReferenceNode;
import com.yahoo.searchlib.rankingexpression.transform.ExpressionTransformer;
-
-import java.util.Map;
+import com.yahoo.searchlib.rankingexpression.transform.TransformContext;
/**
* Inlines macros in ranking expressions
@@ -16,25 +15,19 @@ import java.util.Map;
*/
public class MacroInliner extends ExpressionTransformer {
- private final Map<String, RankProfile.Macro> macros;
-
- public MacroInliner(Map<String, RankProfile.Macro> macros) {
- this.macros = macros;
- }
-
@Override
- public ExpressionNode transform(ExpressionNode node) {
+ public ExpressionNode transform(ExpressionNode node, TransformContext context) {
if (node instanceof ReferenceNode)
- return transformFeatureNode((ReferenceNode)node);
+ return transformFeatureNode((ReferenceNode)node, (RankProfileTransformContext)context);
if (node instanceof CompositeNode)
- return transformChildren((CompositeNode)node);
+ return transformChildren((CompositeNode)node, context);
return node;
}
- private ExpressionNode transformFeatureNode(ReferenceNode feature) {
- RankProfile.Macro macro = macros.get(feature.getName());
+ private ExpressionNode transformFeatureNode(ReferenceNode feature, RankProfileTransformContext context) {
+ RankProfile.Macro macro = context.inlineMacros().get(feature.getName());
if (macro == null) return feature;
- return transform(macro.getRankingExpression().getRoot()); // inline recursively and return
+ return transform(macro.getRankingExpression().getRoot(), context); // inline recursively and return
}
}