code: public static AbstractRunner<Long, Long> instantiateRecommender(final Properties properties) {
          if (properties.getProperty(RECOMMENDER) == null) {
              System.out.println("No recommenderClass specified, exiting.");
              return null;
          }
          if (properties.getProperty(TRAINING_SET) == null) {
              System.out.println("No training set specified, exiting.");
              return null;
          }
          if (properties.getProperty(TEST_SET) == null) {
              System.out.println("No training set specified, exiting.");
              return null;
          }
  
          AbstractRunner<Long, Long> rr = null;
          if (properties.getProperty(FRAMEWORK).equals(MAHOUT)) {
              rr = new MahoutRecommenderRunner(properties);
          } else if (properties.getProperty(FRAMEWORK).equals(LENSKIT)) {
              rr = new LenskitRecommenderRunner(properties);
          } else if (properties.getProperty(FRAMEWORK).equals(RANKSYS)) {
              rr = new RanksysRecommenderRunner(properties);
          }
          return rr;
      }
docs: Instantiates a recommender according to the provided properties mapping.
  
  @param properties the properties to be used when initializing the
  recommender
  @return the recommender instantiated