/******************************************************************************* * Copyright (c) 2008, 2012 Obeo. * 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: * Obeo - initial API and implementation *******************************************************************************/ package org.eclipse.emf.eef.codegen.extended.launcher; import java.io.IOException; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import org.eclipse.core.resources.IContainer; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.emf.common.util.BasicMonitor; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.eef.EEFGen.EEFGenModel; import org.eclipse.emf.eef.codegen.EEFCodegenPlugin; import org.eclipse.emf.eef.codegen.core.launcher.AbstractPropertiesGeneratorLauncher; import org.eclipse.emf.eef.codegen.core.services.PropertiesGeneratorLaunchersServices; /** * @author <a href="mailto:goulwen.lefur@obeo.fr">Goulwen Le Fur</a> * */ public class GenerateAll { public GenerateAll() { } public void doGenerate(EEFGenModel eefGenModel, IContainer target, IProgressMonitor monitor) throws IOException { Set<IContainer> generationTargets = new LinkedHashSet<IContainer>(); generationTargets.add(target); try { final EEFEditorLauncher generator = new EEFEditorLauncher(eefGenModel, target.getLocation().toFile(), new ArrayList<String>()); generator.doGenerate(BasicMonitor.toMonitor(monitor)); List<AbstractPropertiesGeneratorLauncher> launchers = PropertiesGeneratorLaunchersServices.getInstance().getlaunchers(); for (AbstractPropertiesGeneratorLauncher abstractPropertiesGeneratorLauncher : launchers) { EObject inputModel = generator.getModel(); if (inputModel instanceof EEFGenModel) { abstractPropertiesGeneratorLauncher.doGenerate(eefGenModel,generator.getTargetFolder(),monitor); if (!abstractPropertiesGeneratorLauncher.getTargetContainer().isEmpty()) generationTargets.addAll(abstractPropertiesGeneratorLauncher.getTargetContainer()); } } } catch (IOException e) { EEFCodegenPlugin.getDefault().logError(e); } // Desactivation of Acceleo Traceability } }