Skip to main content
summaryrefslogtreecommitdiffstats
blob: 937f43e067b78f80a1a9238af3cc0160d111ecea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package org.eclipse.xtend.util.stdlib;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

import org.eclipse.emf.ecore.EObject;

public class DuplicateHelper {

	public static Set<EObject> removeDuplicatesByName( Set<EObject> coll ) {
		Set<String> duplicateDetector = new HashSet<String>();
		Set<EObject> newColl = new HashSet<EObject>();
		for (Iterator<EObject> iterator = coll.iterator(); iterator.hasNext();) {
			EObject o = iterator.next();
			String name = (String)o.eGet( o.eClass().getEStructuralFeature("name") );
			if ( !duplicateDetector.contains(name)) {
				newColl.add( o );
			}
			duplicateDetector.add( name );
		}
		return newColl;
	}
	
}

Back to the top