aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-09-16 18:47:05 +0200
committerJon Bratseth <bratseth@oath.com>2018-09-16 18:47:05 +0200
commitb5531d333794b647e8a56ee88dd07e0ccf860404 (patch)
treeb24917521e81ab1c2967e5a65b55ea4e71948cdb
parentef8e4859e80c58035c3416c1fa8f24fd2d5af21d (diff)
Refactory: Remove mutations
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java31
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/MacroShadower.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java11
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(),