summaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/java/com/yahoo/searchlib
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/main/java/com/yahoo/searchlib')
-rwxr-xr-xsearchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java10
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/integration/ml/ImportedModel.java5
2 files changed, 14 insertions, 1 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 01ed3b35d4c..34445a31ac3 100755
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/RankingExpression.java
@@ -182,6 +182,16 @@ public class RankingExpression implements Serializable {
}
}
+ /** Returns a deep copy of this expression */
+ public RankingExpression copy() {
+ try {
+ return new RankingExpression(name, root.toString());
+ }
+ catch (ParseException e) {
+ throw new RuntimeException("Programming error: Could not parse serialized expression", e);
+ }
+ }
+
/**
* Returns the name of this ranking expression, or "" if no name is set.
*
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/integration/ml/ImportedModel.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/integration/ml/ImportedModel.java
index 4b49f17f74e..184e92781c3 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/integration/ml/ImportedModel.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/integration/ml/ImportedModel.java
@@ -70,7 +70,10 @@ public class ImportedModel {
*/
public Map<String, RankingExpression> expressions() { return Collections.unmodifiableMap(expressions); }
- /** Returns an immutable map of macros that are part of this model */
+ /**
+ * Returns an immutable map of macros that are part of this model.
+ * Note that the macros themselves are *not* copies and *not* immutable - they must be copied before modification.
+ */
public Map<String, RankingExpression> macros() { return Collections.unmodifiableMap(macros); }
/** Returns an immutable map of the macros that must be provided by the environment running this model */