package org.org.eclipse.dws.core.internal.model;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
public class PomRepositoriesSet {
private Map<String, PomRepository> pomRepositories = new HashMap<String, PomRepository>();
public void addRepository(PomRepository pomRepository) {
this.pomRepositories.put(pomRepository.getUID(), pomRepository);
}
public void addRepositories(Set<PomRepository> repositories) {
for (PomRepository repository : repositories) {
if (!this.pomRepositories.containsKey(repository.getUID())) {
this.pomRepositories.put(repository.getUID(), repository);
}
}
}
public Map<String, PomRepository> getPomRepositories() {
return Collections.unmodifiableMap(pomRepositories);
}
@Override
public boolean equals(Object obj) {
PomRepositoriesSet other = (PomRepositoriesSet) obj;
return mapEquals(this.pomRepositories, other.pomRepositories);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
private boolean mapEquals(Map<?, ?> expected, Map<?, ?> actual) {
boolean result = true;
Object[] expectedSorted = new TreeSet(expected.keySet()).toArray();
Object[] actualSorted = new TreeSet(actual.keySet()).toArray();
result = result && Arrays.deepEquals(expectedSorted, actualSorted);
if (result) {
for (Object key : expectedSorted) {
result = result && expected.get(key).equals(actual.get(key));
}
}
return result;
}
}