diff options
Diffstat (limited to 'searchlib/src/main/java/com/yahoo/searchlib')
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 */ |