/** * Copyright (c) 2005-2006 IBM Corporation 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: * IBM - Initial API and implementation */ package org.eclipse.emf.importer.util; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; import org.eclipse.emf.codegen.util.CodeGenUtil; /** * Utility methods and classes. This class cannot import UI code because it is used on headless * scenarios. * * @since 2.1.0 */ public class ImporterUtil { /** * @deprecated Moved to {@link CodeGenUtil#validPluginID(String)} in EMF 2.5. */ @Deprecated public static String validPluginID(String base) { return CodeGenUtil.validPluginID(base); } /** * <p>Removes any GenPackage from <tt>genPackages</tt> that has the same NSURI of a * genPackage in <tt>genPackagesToAdd</tt>.</p> * * <p>After dealing with the NSURI, this method calls <tt>genPackages.addAll()</tt> which is expected to * perform a "contains" check to ensure the uniqueness of the list's elements.</p> * * @param genPackages * @param genPackagesToAdd */ public static void addUniqueGenPackages(List<GenPackage> genPackages, List<GenPackage> genPackagesToAdd) { if (!genPackagesToAdd.isEmpty()) { if (!genPackages.isEmpty()) { Set<String> nsURIs = new HashSet<String>(); for (GenPackage genPackage : genPackagesToAdd) { String nsURI = genPackage.getNSURI(); nsURIs.add(nsURI); } for (Iterator<GenPackage> i = genPackages.iterator(); i.hasNext();) { GenPackage genPackage = i.next(); if (nsURIs.contains(genPackage.getNSURI()) && !genPackagesToAdd.contains(genPackage)) { i.remove(); } } } // This will not add duplicates. // genPackages.addAll(genPackagesToAdd); } } }