diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-09-16 18:47:05 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-09-16 18:47:05 +0200 |
commit | b5531d333794b647e8a56ee88dd07e0ccf860404 (patch) | |
tree | b24917521e81ab1c2967e5a65b55ea4e71948cdb | |
parent | ef8e4859e80c58035c3416c1fa8f24fd2d5af21d (diff) |
Refactory: Remove mutations
4 files changed, 9 insertions, 37 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 2affcf5ca7d..1b9580d48ef 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java @@ -631,24 +631,11 @@ public class RankProfile implements Serializable, Cloneable { public void parseExpressions() { try { parseRankingExpressions(); - parseMacros(); } catch (ParseException e) { throw new IllegalArgumentException(e); } } - private void parseMacros() throws ParseException { - for (Map.Entry<String, Macro> e : getMacros().entrySet()) { - String macroName = e.getKey(); - Macro macro = e.getValue(); - if (macro.getRankingExpression() == null) { - RankingExpression expr = parseRankingExpression(macroName, macro.getTextualExpression()); - macro.setRankingExpression(expr); - macro.setTextualExpression(expr.getRoot().toString()); - } - } - } - /** * Passes ranking expressions on to parser * @@ -970,7 +957,6 @@ public class RankProfile implements Serializable, Cloneable { public static class Macro implements Serializable, Cloneable { private final String name; - private String textualExpression = null; private RankingExpression expression; private List<String> arguments; @@ -980,27 +966,14 @@ public class RankProfile implements Serializable, Cloneable { public Macro(String name, List<String> arguments, RankingExpression expression, boolean inline) { this.name = name; this.arguments = arguments; - this.textualExpression = expression.getRoot().toString(); this.expression = expression; this.inline = inline; } - public void addParam(String name) { - arguments.add(name); - } - - public List<String> getFormalParams() { + public List<String> getArguments() { return arguments; } - public String getTextualExpression() { - return textualExpression; - } - - public void setTextualExpression(String textualExpression) { - this.textualExpression = textualExpression; - } - public void setRankingExpression(RankingExpression expr) { this.expression=expr; } @@ -1018,7 +991,7 @@ public class RankProfile implements Serializable, Cloneable { } public ExpressionFunction asExpressionFunction() { - return new ExpressionFunction(getName(), getFormalParams(), getRankingExpression()); + return new ExpressionFunction(getName(), getArguments(), getRankingExpression()); } @Override 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 758d2b2a87d..a1d7f2ddd2a 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 @@ -49,7 +49,7 @@ public class MacroShadower extends ExpressionTransformer<RankProfileTransformCon } int functionArity = function.getFunction().arity(); - int macroArity = macro.getFormalParams() != null ? macro.getFormalParams().size() : 0; + int macroArity = macro.getArguments() != null ? macro.getArguments().size() : 0; if (functionArity != macroArity) { return transformChildren(function, context); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java index 15c02290811..e2ad9c6a579 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java @@ -248,7 +248,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri rankProfileRegistry.add(profile); ConvertedModel convertedModel = ConvertedModel.fromStore(new ModelName(modelName), modelName, profile); for (Map.Entry<String, RankingExpression> entry : convertedModel.expressions().entrySet()) { - profile.addMacro(entry.getKey(), entry.getValue(), false).setRankingExpression(entry.getValue()); + profile.addMacro(entry.getKey(), entry.getValue(), false); } } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java index 86127a260c5..deff4b20139 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java @@ -28,14 +28,13 @@ public class RankingExpressionsTestCase extends SearchDefinitionTestCase { final RankProfile macrosRankProfile = rankProfileRegistry.get(search, "macros"); macrosRankProfile.parseExpressions(); final Map<String, RankProfile.Macro> macros = macrosRankProfile.getMacros(); - assertEquals(2, macros.get("titlematch$").getFormalParams().size()); - assertEquals("var1", macros.get("titlematch$").getFormalParams().get(0)); - assertEquals("var2", macros.get("titlematch$").getFormalParams().get(1)); - assertEquals("var1 * var2 + 890", macros.get("titlematch$").getTextualExpression().trim()); + assertEquals(2, macros.get("titlematch$").getArguments().size()); + assertEquals("var1", macros.get("titlematch$").getArguments().get(0)); + assertEquals("var2", macros.get("titlematch$").getArguments().get(1)); assertEquals("var1 * var2 + 890", macros.get("titlematch$").getRankingExpression().getRoot().toString()); assertEquals("0.8+0.2*titlematch$(4,5)+0.8*titlematch$(7,8)*closeness(distance)", macrosRankProfile.getFirstPhaseRankingString().trim()); - assertEquals("78 + closeness(distance)", macros.get("artistmatch").getTextualExpression().trim()); - assertEquals(0, macros.get("artistmatch").getFormalParams().size()); + assertEquals("78 + closeness(distance)", macros.get("artistmatch").getRankingExpression().getRoot().toString()); + assertEquals(0, macros.get("artistmatch").getArguments().size()); List<Pair<String, String>> rankProperties = new RawRankProfile(macrosRankProfile, new QueryProfileRegistry(), |