code: @Override
      public TemporalDataModelIF<Long, Long> run(final RUN_OPTIONS opts,
              final net.recommenders.rival.core.TemporalDataModelIF<Long, Long> trainingModel,
              final net.recommenders.rival.core.TemporalDataModelIF<Long, Long> testModel)
              throws RecommenderException, TasteException {
          if (isAlreadyRecommended()) {
              return null;
          }
          // transform from core's DataModels to Mahout's DataModels
          DataModel trainingModelMahout = new DataModelWrapper(trainingModel);
          DataModel testModelMahout = new DataModelWrapper(testModel);
  
          return runMahoutRecommender(opts, trainingModelMahout, testModelMahout);
      }
docs: Runs the recommender using the provided datamodels.
  
  @param opts see
  {@link net.recommenders.rival.recommend.frameworks.AbstractRunner.RUN_OPTIONS}
  @param trainingModel model to be used to train the recommender.
  @param testModel model to be used to test the recommender.
  @return see
  {@link #runMahoutRecommender(net.recommenders.rival.recommend.frameworks.AbstractRunner.RUN_OPTIONS, org.apache.mahout.cf.taste.model.TemporalDataModelIF, org.apache.mahout.cf.taste.model.TemporalDataModelIF)}
  @throws RecommenderException see null     {@link #runMahoutRecommender(net.recommenders.rival.recommend.frameworks.AbstractRunner.RUN_OPTIONS,
  org.apache.mahout.cf.taste.model.DataModel, org.apache.mahout.cf.taste.model.DataModel)}
  @throws TasteException see null     {@link #runMahoutRecommender(net.recommenders.rival.recommend.frameworks.AbstractRunner.RUN_OPTIONS,
  org.apache.mahout.cf.taste.model.DataModel, org.apache.mahout.cf.taste.model.DataModel)}