/** * 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.DependencyInfo; 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.rcp.IProjectCoordinateProvider; import com.google.common.base.Optional; import com.google.common.collect.Sets; import com.google.common.eventbus.EventBus; public class TriggerModelDownloadForDependencyInfosAction extends TriggerModelDownloadForProjectCoordinatesAction { private IProjectCoordinateProvider pcProvider; private final Set<DependencyInfo> deps; public TriggerModelDownloadForDependencyInfosAction(String text, Set<DependencyInfo> deps, List<String> modelClassifier, IProjectCoordinateProvider pcProvider, IModelIndex modelIndex, EclipseModelRepository repo, EventBus bus) { super(text, modelClassifier, modelIndex, repo, bus); this.pcProvider = pcProvider; this.deps = deps; } @Override public void run() { Set<ProjectCoordinate> pcs = Sets.newHashSet(); for (DependencyInfo dep : deps) { Optional<ProjectCoordinate> opc = pcProvider.resolve(dep); if (opc.isPresent()) { pcs.add(opc.get()); } } triggerDownloadForProjectCoordinates(pcs); } }