/* * Copyright (c) 2015 Ed Merks(Berlin, Germany) and others. * 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: * Ed Merks- initial API and implementation */ package org.eclipse.oomph.targlets.impl; import org.eclipse.oomph.base.impl.ModelElementImpl; import org.eclipse.oomph.p2.P2Factory; import org.eclipse.oomph.p2.Requirement; import org.eclipse.oomph.targlets.ComponentDefinition; import org.eclipse.oomph.targlets.ProjectNameGenerator; import org.eclipse.oomph.targlets.TargletFactory; import org.eclipse.oomph.targlets.TargletPackage; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.core.resources.IProject; import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.metadata.Version; import org.eclipse.equinox.p2.metadata.VersionRange; import java.lang.reflect.InvocationTargetException; import java.util.Map; /** * * An implementation of the model object 'Project Name Generator'. * * * @generated */ public class ProjectNameGeneratorImpl extends ModelElementImpl implements ProjectNameGenerator { /** * * * @generated */ protected ProjectNameGeneratorImpl() { super(); } /** * * * @generated */ @Override protected EClass eStaticClass() { return TargletPackage.Literals.PROJECT_NAME_GENERATOR; } /** * * * @generated NOT */ public void generateIUs(IProject project, String qualifierReplacement, Map iuVersions, EList result) throws Exception { ComponentDefinition componentDefinition = TargletFactory.eINSTANCE.createComponentDefinition(); String name = project.getDescription().getName(); componentDefinition.setID(name + Requirement.PROJECT_SUFFIX); componentDefinition.setVersion(Version.createOSGi(1, 0, 0, "qualifier")); EList requirements = componentDefinition.getRequirements(); for (IProject referencedProject : project.getReferencedProjects()) { String id = referencedProject.getName() + Requirement.PROJECT_SUFFIX; requirements.add(P2Factory.eINSTANCE.createRequirement(id, VersionRange.emptyRange, true)); } IInstallableUnit iu = ComponentDefGeneratorImpl.generateIU(componentDefinition, qualifierReplacement); result.add(iu); } /** * * * @generated */ @Override @SuppressWarnings("unchecked") public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { switch (operationID) { case TargletPackage.PROJECT_NAME_GENERATOR___GENERATE_IUS__IPROJECT_STRING_MAP_ELIST: try { generateIUs((IProject)arguments.get(0), (String)arguments.get(1), (Map)arguments.get(2), (EList)arguments.get(3)); return null; } catch (Throwable throwable) { throw new InvocationTargetException(throwable); } } return super.eInvoke(operationID, arguments); } } // ProjectNameGeneratorImpl