diff options
Diffstat (limited to 'searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java')
-rwxr-xr-x | searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java | 36 |
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) { |