code: function () {
          this.logger = Logger.getLogger("MatrixFactorizationModel_js");
          var jvmObject = arguments[0];
          if (arguments.length > 1) {
              var userFeatures = Utils.unwrapObject(arguments[1]);
              var productFeatures = Utils.unwrapObject(arguments[2]);
              jvmObject = new org.apache.spark.mllib.recommendation.MatrixFactorizationModel(arguments[0], userFeatures, productFeatures);
          }
  
          JavaWrapper.call(this, jvmObject);
  
      }
docs: Model representing the result of matrix factorization.
  
  Note: If you create the model directly using constructor, please be aware that fast prediction
  requires cached user/product features and their associated partitioners.
  
  @param rank Rank for the features in this model.
  @param userFeatures RDD of tuples where each tuple represents the userId and
  the features computed for this user.
  @param productFeatures RDD of tuples where each tuple represents the productId
  and the features computed for this product.
  @classdesc
   
  @param {number} rank
  @param {module:eclairjs.RDD} userFeatures
  @param {module:eclairjs.RDD} productFeatures
  @class
  @memberof module:eclairjs/mllib/recommendation