code: function (parent,  name,  doc) {
          var jvmObject;
          if (arguments[0] instanceof org.apache.spark.ml.param.Param) {
              jvmObject = arguments[0];
          } else {
              jvmObject = new org.apache.spark.ml.param.Param(parent,  name,  doc);
          }
  
          this.logger = Logger.getLogger("ParamPair_js");
          JavaWrapper.call(this, jvmObject);
  
      }
docs: :: Experimental ::
  A param with self-contained documentation and optionally default value. Primitive-typed param should use the specialized versions,
  which are more friendly to Java users.param: parent parent object param: name param name param: doc documentation param: isValid
  optional validation method which indicates if a value is valid. See ParamValidators for factory methods for common validation functions.
  @classdesc
  @param {string} parent
  @param {string} name
  @param {string} doc
  @class
  @memberof module:eclairjs/ml/param