summaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java')
-rwxr-xr-xsearchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java36
1 files changed, 27 insertions, 9 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java
index 6e79877a657..1ec6ea4693b 100755
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java
@@ -2,18 +2,24 @@
package com.yahoo.searchlib.rankingexpression;
import com.yahoo.searchlib.rankingexpression.evaluation.Context;
-import com.yahoo.searchlib.rankingexpression.evaluation.DoubleValue;
import com.yahoo.searchlib.rankingexpression.evaluation.Value;
import com.yahoo.searchlib.rankingexpression.parser.ParseException;
import com.yahoo.searchlib.rankingexpression.parser.RankingExpressionParser;
import com.yahoo.searchlib.rankingexpression.parser.TokenMgrError;
-import com.yahoo.searchlib.rankingexpression.rule.ConstantNode;
import com.yahoo.searchlib.rankingexpression.rule.ExpressionNode;
import com.yahoo.searchlib.rankingexpression.rule.SerializationContext;
-import com.yahoo.searchlib.rankingexpression.rule.SetMembershipNode;
-import java.io.*;
-import java.util.*;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.Reader;
+import java.io.Serializable;
+import java.io.StringReader;
+import java.util.Deque;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
/**
* <p>A ranking expression. Ranking expressions are used to calculate a rank score for a searched instance from a set of
@@ -92,13 +98,15 @@ public class RankingExpression implements Serializable {
}
/**
- * Creates a ranking expression from a string
+ * Creates a new ranking expression by consuming from the reader
*
- * @param expression The reader that contains the string to parse.
+ * @param name the name of the ranking expression
+ * @param expression the expression to parse.
* @throws ParseException if the string could not be parsed.
*/
- public RankingExpression(String expression) throws ParseException {
+ public RankingExpression(String name, String expression) throws ParseException {
try {
+ this.name = name;
if (expression == null || expression.length() == 0) {
throw new IllegalArgumentException("Empty ranking expressions are not allowed");
}
@@ -112,6 +120,16 @@ public class RankingExpression implements Serializable {
}
/**
+ * Creates a ranking expression from a string
+ *
+ * @param expression The reader that contains the string to parse.
+ * @throws ParseException if the string could not be parsed.
+ */
+ public RankingExpression(String expression) throws ParseException {
+ this("", expression);
+ }
+
+ /**
* Creates a ranking expression from a file. For convenience, the file.getName() up to any dot becomes the name of
* this expression.
*
@@ -259,7 +277,7 @@ public class RankingExpression implements Serializable {
/**
* Creates a ranking expression from a string
- *
+ *
* @throws IllegalArgumentException if the string is not a valid ranking expression
*/
public static RankingExpression from(String expression) {