1
/*******************************************************************************
2
* Copyright (c) 2006, 2008 Wind River Systems, Inc. and others.
3
* All rights reserved. This program and the accompanying materials
4
* are made available under the terms of the Eclipse Public License v1.0
5
* which accompanies this distribution, and is available at
6
* http://www.eclipse.org/legal/epl-v10.html
9
* Markus Schorn - initial API and implementation
10
*******************************************************************************/
11
package org.eclipse.cdt.internal.ui.callhierarchy;
13
import java.util.ArrayList;
14
import java.util.Arrays;
15
import java.util.Iterator;
16
import java.util.LinkedHashSet;
19
import org.eclipse.cdt.core.model.ICElement;
21
import org.eclipse.cdt.internal.ui.viewsupport.WorkingSetFilterUI;
23
public class CElementSet {
24
private Set<ICElement> fSet= new LinkedHashSet<ICElement>();
25
private int fHashCode;
27
CElementSet( ICElement[] elements) {
28
fSet.addAll(Arrays.asList(elements));
30
for (int i = 0; i < elements.length; i++) {
31
fHashCode = 31*fHashCode + elements[i].hashCode();
36
public int hashCode() {
41
public boolean equals(Object obj) {
48
if (getClass() != obj.getClass()) {
51
final CElementSet other = (CElementSet) obj;
52
if (fHashCode != other.fHashCode) {
56
if (other.fSet != null) {
61
if (fSet.size() != other.fSet.size()) {
64
for (Iterator<ICElement> iter = fSet.iterator(); iter.hasNext(); ) {
65
if (!other.fSet.contains(iter.next())) {
73
public boolean isEmpty() {
74
return fSet.isEmpty();
77
public ICElement[] getElements(WorkingSetFilterUI filter) {
78
ArrayList<ICElement> result= new ArrayList<ICElement>(fSet.size());
79
for (Iterator<ICElement> iter = fSet.iterator(); iter.hasNext(); ) {
80
ICElement element = iter.next();
81
if (filter == null || filter.isPartOfWorkingSet(element)) {
85
return result.toArray(new ICElement[result.size()]);
b'\\ No newline at end of file'