diff options
8 files changed, 24 insertions, 29 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConstantTensorTransformer.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConstantTensorTransformer.java index f835e0a6ed1..543ac78fc86 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConstantTensorTransformer.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConstantTensorTransformer.java @@ -8,7 +8,6 @@ import com.yahoo.searchlib.rankingexpression.rule.ExpressionNode; import com.yahoo.searchlib.rankingexpression.rule.NameNode; import com.yahoo.searchlib.rankingexpression.rule.ReferenceNode; import com.yahoo.searchlib.rankingexpression.transform.ExpressionTransformer; -import com.yahoo.searchlib.rankingexpression.transform.TransformContext; import java.util.ArrayList; import java.util.Arrays; @@ -19,14 +18,14 @@ import java.util.List; * * @author geirst */ -public class ConstantTensorTransformer extends ExpressionTransformer { +public class ConstantTensorTransformer extends ExpressionTransformer<RankProfileTransformContext> { public static final String CONSTANT = "constant"; @Override - public ExpressionNode transform(ExpressionNode node, TransformContext context) { + public ExpressionNode transform(ExpressionNode node, RankProfileTransformContext context) { if (node instanceof ReferenceNode) { - return transformFeature((ReferenceNode) node, (RankProfileTransformContext)context); + return transformFeature((ReferenceNode) node, context); } else if (node instanceof CompositeNode) { return transformChildren((CompositeNode) node, context); } else { @@ -42,7 +41,7 @@ public class ConstantTensorTransformer extends ExpressionTransformer { } } - private ExpressionNode transformArguments(ReferenceNode node, TransformContext context) { + private ExpressionNode transformArguments(ReferenceNode node, RankProfileTransformContext context) { List<ExpressionNode> arguments = node.getArguments().expressions(); List<ExpressionNode> transformedArguments = new ArrayList<>(arguments.size()); for (ExpressionNode argument : arguments) { 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 6702955bae3..6aef39db4da 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,19 +6,18 @@ 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 com.yahoo.searchlib.rankingexpression.transform.TransformContext; /** * Inlines macros in ranking expressions * * @author bratseth */ -public class MacroInliner extends ExpressionTransformer { +public class MacroInliner extends ExpressionTransformer<RankProfileTransformContext> { @Override - public ExpressionNode transform(ExpressionNode node, TransformContext context) { + public ExpressionNode transform(ExpressionNode node, RankProfileTransformContext context) { if (node instanceof ReferenceNode) - return transformFeatureNode((ReferenceNode)node, (RankProfileTransformContext)context); + return transformFeatureNode((ReferenceNode)node, context); if (node instanceof CompositeNode) return transformChildren((CompositeNode)node, context); return node; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroShadower.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroShadower.java index 6eabb5ddcd4..563be8b0242 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroShadower.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroShadower.java @@ -8,7 +8,6 @@ import com.yahoo.searchlib.rankingexpression.rule.ExpressionNode; import com.yahoo.searchlib.rankingexpression.rule.FunctionNode; import com.yahoo.searchlib.rankingexpression.rule.ReferenceNode; import com.yahoo.searchlib.rankingexpression.transform.ExpressionTransformer; -import com.yahoo.searchlib.rankingexpression.transform.TransformContext; /** * Transforms function nodes to reference nodes if a macro shadows a built-in function. @@ -23,10 +22,10 @@ import com.yahoo.searchlib.rankingexpression.transform.TransformContext; * * @author lesters */ -public class MacroShadower extends ExpressionTransformer { +public class MacroShadower extends ExpressionTransformer<RankProfileTransformContext> { @Override - public RankingExpression transform(RankingExpression expression, TransformContext context) { + public RankingExpression transform(RankingExpression expression, RankProfileTransformContext context) { String name = expression.getName(); ExpressionNode node = expression.getRoot(); ExpressionNode result = transform(node, context); @@ -34,7 +33,7 @@ public class MacroShadower extends ExpressionTransformer { } @Override - public ExpressionNode transform(ExpressionNode node, TransformContext context) { + public ExpressionNode transform(ExpressionNode node, RankProfileTransformContext context) { if (node instanceof FunctionNode) return transformFunctionNode((FunctionNode) node, context); if (node instanceof CompositeNode) @@ -42,9 +41,9 @@ public class MacroShadower extends ExpressionTransformer { return node; } - protected ExpressionNode transformFunctionNode(FunctionNode function, TransformContext context) { + protected ExpressionNode transformFunctionNode(FunctionNode function, RankProfileTransformContext context) { String name = function.getFunction().toString(); - RankProfile.Macro macro = ((RankProfileTransformContext)context).rankProfile().getMacros().get(name); + RankProfile.Macro macro = context.rankProfile().getMacros().get(name); if (macro == null) { return transformChildren(function, context); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorFlowFeatureConverter.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorFlowFeatureConverter.java index b7033d4ad9f..298eb95424e 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorFlowFeatureConverter.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorFlowFeatureConverter.java @@ -9,7 +9,6 @@ import com.yahoo.searchlib.rankingexpression.rule.ConstantNode; import com.yahoo.searchlib.rankingexpression.rule.ExpressionNode; import com.yahoo.searchlib.rankingexpression.rule.ReferenceNode; import com.yahoo.searchlib.rankingexpression.transform.ExpressionTransformer; -import com.yahoo.searchlib.rankingexpression.transform.TransformContext; import java.util.Map; import java.util.Optional; @@ -21,14 +20,14 @@ import java.util.Optional; * * @author bratseth */ -public class TensorFlowFeatureConverter extends ExpressionTransformer { +public class TensorFlowFeatureConverter extends ExpressionTransformer<RankProfileTransformContext> { private final TensorFlowImporter tensorFlowImporter = new TensorFlowImporter(); @Override - public ExpressionNode transform(ExpressionNode node, TransformContext context) { + public ExpressionNode transform(ExpressionNode node, RankProfileTransformContext context) { if (node instanceof ReferenceNode) - return transformFeature((ReferenceNode) node, (RankProfileTransformContext)context); + return transformFeature((ReferenceNode) node, context); else if (node instanceof CompositeNode) return super.transformChildren((CompositeNode) node, context); else diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorTransformer.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorTransformer.java index 971c2c4f218..43c0817c986 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorTransformer.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/TensorTransformer.java @@ -16,7 +16,6 @@ import com.yahoo.searchlib.rankingexpression.rule.FunctionNode; import com.yahoo.searchlib.rankingexpression.rule.ReferenceNode; import com.yahoo.searchlib.rankingexpression.rule.TensorFunctionNode; import com.yahoo.searchlib.rankingexpression.transform.ExpressionTransformer; -import com.yahoo.searchlib.rankingexpression.transform.TransformContext; import com.yahoo.tensor.Tensor; import com.yahoo.tensor.TensorType; import com.yahoo.tensor.functions.Reduce; @@ -33,15 +32,15 @@ import java.util.Optional; * * @author lesters */ -public class TensorTransformer extends ExpressionTransformer { +public class TensorTransformer extends ExpressionTransformer<RankProfileTransformContext> { @Override - public ExpressionNode transform(ExpressionNode node, TransformContext context) { + public ExpressionNode transform(ExpressionNode node, RankProfileTransformContext context) { if (node instanceof CompositeNode) { node = transformChildren((CompositeNode) node, context); } if (node instanceof FunctionNode) { - node = transformFunctionNode((FunctionNode) node, ((RankProfileTransformContext)context).rankProfile()); + node = transformFunctionNode((FunctionNode) node, context.rankProfile()); } return node; } diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencer.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencer.java index 1b8239ba643..216b677f6ff 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencer.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencer.java @@ -16,7 +16,7 @@ import java.util.List; * * @author bratseth */ -public class ConstantDereferencer extends ExpressionTransformer { +public class ConstantDereferencer extends ExpressionTransformer<TransformContext> { @Override public ExpressionNode transform(ExpressionNode node, TransformContext context) { diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ExpressionTransformer.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ExpressionTransformer.java index c585c0dea1f..e5d0b4671c0 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ExpressionTransformer.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ExpressionTransformer.java @@ -13,20 +13,20 @@ import java.util.List; * * @author bratseth */ -public abstract class ExpressionTransformer { +public abstract class ExpressionTransformer<CONTEXT extends TransformContext> { - public RankingExpression transform(RankingExpression expression, TransformContext context) { + public RankingExpression transform(RankingExpression expression, CONTEXT context) { return new RankingExpression(expression.getName(), transform(expression.getRoot(), context)); } /** Transforms an expression node and returns the transformed node */ - public abstract ExpressionNode transform(ExpressionNode node, TransformContext context); + public abstract ExpressionNode transform(ExpressionNode node, CONTEXT context); /** * Utility method which calls transform on each child of the given node and return the resulting transformed * composite */ - protected CompositeNode transformChildren(CompositeNode node, TransformContext context) { + protected CompositeNode transformChildren(CompositeNode node, CONTEXT context) { List<ExpressionNode> children = node.children(); List<ExpressionNode> transformedChildren = new ArrayList<>(children.size()); for (ExpressionNode child : children) diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/Simplifier.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/Simplifier.java index 9e8491340b0..e8e2fdf2454 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/Simplifier.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/Simplifier.java @@ -20,7 +20,7 @@ import java.util.List; * * @author bratseth */ -public class Simplifier extends ExpressionTransformer { +public class Simplifier extends ExpressionTransformer<TransformContext> { @Override public ExpressionNode transform(ExpressionNode node, TransformContext context) { |