code: @Override
      public TemporalDataModelIF<Long, Long> run(final RUN_OPTIONS opts, final TemporalDataModelIF<Long, Long> trainingModel, final TemporalDataModelIF<Long, Long> testModel) throws RecommenderException {
          if (isAlreadyRecommended()) {
              return null;
          }
          // transform from core's DataModels to Lenskit's EventDAO
          DataAccessObject trainingModelLensKit = new EventDAOWrapper(trainingModel);
          DataAccessObject testModelLensKit = new EventDAOWrapper(testModel);
  
          return runLenskitRecommender(opts, trainingModelLensKit, testModelLensKit);
      }
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 #runLenskitRecommender(net.recommenders.rival.recommend.frameworks.AbstractRunner.RUN_OPTIONS, org.grouplens.lenskit.data.dao.EventDAO, org.grouplens.lenskit.data.dao.EventDAO)}
  @throws RecommenderException see
  {@link #runLenskitRecommender(net.recommenders.rival.recommend.frameworks.AbstractRunner.RUN_OPTIONS, org.grouplens.lenskit.data.dao.EventDAO, org.grouplens.lenskit.data.dao.EventDAO)}