package engine;
import java.util.List;
import java.util.Map;
// TODO: check for duplicates (user-resource combinations)!
public class EntityRecommenderEngine implements EngineInterface {
private EngineInterface tagRecommender;
private EngineInterface resourceRecommender;
private EngineInterface userRecommender;
public void loadFile(String path, String filename) throws Exception {
this.tagRecommender = new TagRecommenderEvalEngine();
this.tagRecommender.loadFile(path, filename);
this.resourceRecommender = new ResourceRecommenderEngine();
this.resourceRecommender.loadFile(path, filename);
this.userRecommender = new UserRecommenderEngine();
this.userRecommender.loadFile(path, filename);
}
public Map<String, Double> getEntitiesWithLikelihood(String user, String resource, List<String> topics, Integer count, Boolean filterOwnEntities, Algorithm algorithm, EntityType type) {
if (type == EntityType.TAG) {
return tagRecommender.getEntitiesWithLikelihood(user, resource, topics, count, filterOwnEntities, algorithm, type);
} else if (type == EntityType.RESOURCE) {
return resourceRecommender.getEntitiesWithLikelihood(user, resource, topics, count, filterOwnEntities, algorithm, type);
} else if (type == EntityType.USER) {
return userRecommender.getEntitiesWithLikelihood(user, resource, topics, count, filterOwnEntities, algorithm, type);
}
return null;
}
}