/** * Copyright (c) 2010, 2013 Darmstadt University of Technology. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Marcel Bruch - initial API and implementation. * Olav Lenz - Move to new file. */ package org.eclipse.recommenders.models.rcp.actions; import java.util.List; import java.util.Set; import org.eclipse.recommenders.coordinates.ProjectCoordinate; import org.eclipse.recommenders.internal.models.rcp.EclipseModelRepository; import org.eclipse.recommenders.models.IModelIndex; import org.eclipse.recommenders.models.ModelCoordinate; import com.google.common.collect.Sets; import com.google.common.eventbus.EventBus; public class TriggerModelDownloadForProjectCoordinatesAction extends TriggerModelDownloadForModelCoordinatesAction { private final List<String> modelTypes; private IModelIndex modelIndex; private Set<ProjectCoordinate> pcs = Sets.newHashSet(); TriggerModelDownloadForProjectCoordinatesAction(String text, List<String> modelClassifier, IModelIndex modelIndex, EclipseModelRepository repo, EventBus bus) { super(text, repo, bus); this.modelTypes = modelClassifier; this.modelIndex = modelIndex; } TriggerModelDownloadForProjectCoordinatesAction(String text, Set<ProjectCoordinate> pcs, List<String> modelClassifier, IModelIndex modelIndex, EclipseModelRepository repo, EventBus bus) { this(text, modelClassifier, modelIndex, repo, bus); this.pcs = pcs; } @Override public void run() { triggerDownloadForProjectCoordinates(pcs); } public void triggerDownloadForProjectCoordinates(Set<ProjectCoordinate> pcs) { Set<ModelCoordinate> mcs = Sets.newHashSet(); for (ProjectCoordinate pc : pcs) { for (String modelType : modelTypes) { ModelCoordinate mc = modelIndex.suggest(pc, modelType).orNull(); if (mc != null) { mcs.add(mc); } } } triggerDownloadForModelCoordinates(mcs); } }