blob: 8dd3d9717270e92824d86b6e34134b84aaa479a0 [file] [log] [blame]
/**
* Copyright (c) 2016 Mia-Software.
* 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:
* Grégoire Dupé (Mia-Software) - Bug 506318 - [New Browser] Drag and drop support
*/
package org.eclipse.modisco.infra.browser.editor.ui.internal.editor;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.util.EcoreUtil;
public final class EmfUtils {
private EmfUtils() {
// Must not be used
}
public static Collection<EObject> getCollectionFrom(
final ResourceSet resourceSet,
final Collection<?> collection) {
final Collection<EObject> result = new ArrayList<EObject>(
collection.size());
for (Object object : collection) {
if (object instanceof EObject) {
final EObject eObject = (EObject) object;
if (eObject.eResource().getResourceSet() == resourceSet) {
result.add(eObject);
} else {
final EObject createEObjectFrom = basicCreateEObjectFrom(
resourceSet, eObject);
result.add(createEObjectFrom);
}
}
}
return result;
}
public static EObject getEObjectFrom(final ResourceSet resourceSet,
final EObject eObject) {
EObject result = eObject;
if (eObject.eResource().getResourceSet() != resourceSet) {
result = basicCreateEObjectFrom(resourceSet, eObject);
}
return result;
}
private static EObject basicCreateEObjectFrom(final ResourceSet resourceSet,
final EObject eObject) {
final URI uri = EcoreUtil.getURI(eObject);
return resourceSet.getEObject(uri, true);
}
}