Github user smurakozi commented on a diff in the pull request:
https://github.com/apache/spark/pull/19599#discussion_r156609625
--- Diff: mllib/src/main/scala/org/apache/spark/ml/param/params.scala ---
@@ -435,6 +435,43 @@ class BooleanParam(parent: String, name: String, doc:
String) // No need for isV
}
}
+/**
+ * :: DeveloperApi ::
+ * Specialized version of `Param[String]` for Java.
+ */
+@DeveloperApi
+class StringParam(parent: Params, name: String, doc: String, isValid:
String => Boolean)
+ extends Param[String](parent, name, doc, isValid) {
+
+ private var options: Option[Array[String]] = None
+
+ def this(parent: Params, name: String, doc: String) =
+ this(parent, name, doc, ParamValidators.alwaysTrue)
+
+ /** construct a StringParam with limited options (case-insensitive) */
+ def this(parent: Params, name: String, doc: String, options:
Array[String]) = {
+ this(parent, name, doc + s" Supported options (case-insensitive):
${options.mkString(", ")}.",
+ s => options.exists(s.equalsIgnoreCase))
+ this.options = Some(options)
+ }
+
+ private[spark] def getOptions: Option[Array[String]] = options
+
+ /** Creates a param pair with given value (for Java). */
+ override def w(value: String): ParamPair[String] = super.w(value)
+
+ override def validate(value: String): Unit = {
--- End diff --
should be private[param]
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]