summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-02-17 16:01:39 +0100
committerJon Bratseth <bratseth@oath.com>2018-02-17 16:01:39 +0100
commit25b4a9f673f3148cfdbd2bfec232e3092cfbd4c4 (patch)
tree04de59dcc261c1c6e51e08528a08234b56923e3b /searchlib
parent6af81f91a391eedc7938604fa6ac7c9681ef6d1f (diff)
Cleanup
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Arguments.java4
-rwxr-xr-xsearchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ReferenceNode.java26
2 files changed, 14 insertions, 16 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Arguments.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Arguments.java
index ea590ec7139..d3a12d0f312 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Arguments.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Arguments.java
@@ -14,7 +14,6 @@ import java.util.List;
/**
* A set of argument expressions to a function or feature.
* This is a value object.
- *.
*
* @author bratseth
*/
@@ -46,6 +45,9 @@ public final class Arguments implements Serializable {
/** Returns an unmodifiable list of the expressions in this, never null */
public List<ExpressionNode> expressions() { return expressions; }
+ /** Returns the number of arguments in this */
+ public int size() { return expressions.size(); }
+
/** Evaluate all arguments in this */
public Value[] evaluate(Context context) {
Value[] values=new Value[expressions.size()];
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ReferenceNode.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ReferenceNode.java
index 81c8d203167..5605b8b8963 100755
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ReferenceNode.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ReferenceNode.java
@@ -66,41 +66,37 @@ public final class ReferenceNode extends CompositeNode {
public String toString(SerializationContext context, Deque<String> path, CompositeNode parent) {
if (path == null)
path = new ArrayDeque<>();
- String myName = getName();
- String myOutput = getOutput();
- List<ExpressionNode> myArguments = getArguments().expressions();
- if (reference.isIdentifier() && context.getBinding(myName) != null) {
+ if (reference.isIdentifier() && context.getBinding(getName()) != null) {
// a bound identifier: replace by the value it is bound to
- return context.getBinding(myName);
+ return context.getBinding(getName());
}
- ExpressionFunction function = context.getFunction(myName);
- if (function != null && function.arguments().size() == myArguments.size() && myOutput == null) {
+ ExpressionFunction function = context.getFunction(getName());
+ if (function != null && function.arguments().size() == getArguments().size() && getOutput() == null) {
// a function reference: replace by the referenced function wrapped in rankingExpression
String myPath = getName() + getArguments().expressions();
if (path.contains(myPath))
throw new IllegalStateException("Cycle in ranking expression function: " + path);
path.addLast(myPath);
- ExpressionFunction.Instance instance = function.expand(context, myArguments, path);
+ ExpressionFunction.Instance instance = function.expand(context, getArguments().expressions(), path);
path.removeLast();
context.addFunctionSerialization(RankingExpression.propertyName(instance.getName()), instance.getExpressionString());
return "rankingExpression(" + instance.getName() + ")";
}
- // Always print the same way, the magic is already done.
- StringBuilder ret = new StringBuilder(myName);
- if (myArguments != null && myArguments.size() > 0) {
+ StringBuilder ret = new StringBuilder(getName());
+ if (getArguments().size() > 0) {
ret.append("(");
- for (int i = 0; i < myArguments.size(); ++i) {
- ret.append(myArguments.get(i).toString(context, path, this));
- if (i < myArguments.size() - 1) {
+ for (int i = 0; i < getArguments().size(); ++i) {
+ ret.append(getArguments().expressions().get(i).toString(context, path, this));
+ if (i < getArguments().size() - 1) {
ret.append(",");
}
}
ret.append(")");
}
- ret.append(myOutput != null ? "." + myOutput : "");
+ ret.append(getOutput() != null ? "." + getOutput() : "");
return ret.toString();
}