summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-08-30 13:20:35 +0200
committerJon Bratseth <bratseth@oath.com>2018-08-30 13:20:35 +0200
commita9e0e05063e156eb1692346cdcbbf9a1c85483d2 (patch)
tree412c86ea39ce850ef6a8e3e2241948a686743d9e /config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms
parent50c92f5b6f3319b5f59dd5d30792e51f83de3d2b (diff)
Test reading stored global models
Also - assign the proper name to ranking expressions in macros - output more debug inof on generated macro collision
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java
index 935b9200868..f7a06f86ab7 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java
@@ -272,11 +272,12 @@ public class ConvertedModel {
if (profile.getMacros().containsKey(macroName)) {
if ( ! profile.getMacros().get(macroName).getRankingExpression().equals(expression))
throw new IllegalArgumentException("Generated macro '" + macroName + "' already exists in " + profile +
- " - with a different definition");
+ " - with a different definition" +
+ ": Has\n" + profile.getMacros().get(macroName).getRankingExpression() +
+ "\nwant to add " + expression + "\n");
return;
}
- profile.addMacro(macroName, false); // todo: inline if only used once
- RankProfile.Macro macro = profile.getMacros().get(macroName);
+ RankProfile.Macro macro = profile.addMacro(macroName, false); // TODO: Inline if only used once
macro.setRankingExpression(expression);
macro.setTextualExpression(expression.getRoot().toString());
}
@@ -546,7 +547,7 @@ public class ConvertedModel {
return expressions;
}
- /** Adds this macro expression to the application package to it can be read later. */
+ /** Adds this macro expression to the application package so it can be read later. */
void writeMacro(String name, RankingExpression expression) {
application.getFile(modelFiles.macrosPath()).appendFile(name + "\t" +
expression.getRoot().toString() + "\n");
@@ -556,7 +557,7 @@ public class ConvertedModel {
List<Pair<String, RankingExpression>> readMacros() {
try {
ApplicationFile file = application.getFile(modelFiles.macrosPath());
- if (!file.exists()) return Collections.emptyList();
+ if ( ! file.exists()) return Collections.emptyList();
List<Pair<String, RankingExpression>> macros = new ArrayList<>();
BufferedReader reader = new BufferedReader(file.createReader());
@@ -565,7 +566,7 @@ public class ConvertedModel {
String[] parts = line.split("\t");
String name = parts[0];
try {
- RankingExpression expression = new RankingExpression(parts[1]);
+ RankingExpression expression = new RankingExpression(parts[0], parts[1]);
macros.add(new Pair<>(name, expression));
}
catch (ParseException e) {