@Override public RecommendationEngineFactory getRecommenderFactory(Recommender aRecommender) { return recommenderFactoryRegistry.getFactory(aRecommender.getTool()); }
private String generateName(Recommender aRecommender) { if (aRecommender.getFeature() == null || aRecommender.getLayer() == null || aRecommender.getTool() == null) { return null; } else { RecommendationEngineFactory factory = recommenderRegistry .getFactory(aRecommender.getTool()); return String.format(Locale.US, "[%s@%s] %s", aRecommender.getLayer().getUiName(), aRecommender.getFeature().getUiName(), factory.getName()); } }
@Override public void exportData(ProjectExportRequest aRequest, ExportedProject aExProject, File aFile) { Project project = aRequest.getProject(); List<ExportedRecommender> exportedRecommenders = new ArrayList<>(); for (Recommender recommender : recommendationService.listRecommenders(project)) { ExportedRecommender exportedRecommender = new ExportedRecommender(); exportedRecommender.setAlwaysSelected(recommender.isAlwaysSelected()); exportedRecommender.setFeature(recommender.getFeature().getName()); exportedRecommender.setEnabled(recommender.isEnabled()); exportedRecommender.setLayerName(recommender.getLayer().getName()); exportedRecommender.setName(recommender.getName()); exportedRecommender.setThreshold(recommender.getThreshold()); exportedRecommender.setTool(recommender.getTool()); exportedRecommender.setSkipEvaluation(recommender.isSkipEvaluation()); exportedRecommender.setMaxRecommendations(recommender.getMaxRecommendations()); exportedRecommender.setStatesIgnoredForTraining( recommender.getStatesIgnoredForTraining()); exportedRecommender.setTraits(recommender.getTraits()); exportedRecommenders.add(exportedRecommender); } aExProject.setProperty(KEY, exportedRecommenders); int n = exportedRecommenders.size(); LOG.info("Exported [{}] recommenders for project [{}]", n, project.getName()); }
@Override public String getDetails(RecommenderEvaluationResultEvent aEvent) { try { Details details = new Details(); details.recommenderId = aEvent.getRecommender().getId(); details.score = aEvent.getScore(); details.active = aEvent.isActive(); details.duration = aEvent.getDuration(); details.threshold = aEvent.getRecommender().getThreshold(); details.layer = aEvent.getRecommender().getLayer().getName(); details.feature = aEvent.getRecommender().getFeature().getName(); details.tool = aEvent.getRecommender().getTool(); return JSONUtil.toJsonString(details); } catch (IOException e) { log.error("Unable to log event [{}]", aEvent, e); return "<ERROR>"; } }
String name = recommenderModel.getObject().getTool(); RecommendationEngineFactory factory = recommenderRegistry.getFactory(name); return factory != null ? Pair.of(factory.getId(), factory.getName()) : null;