blob: fcda6dd84e35f58b4a0b35ec74a3fe460069a241 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2011 SpringSource, a divison of VMware, Inc. 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:
* SpringSource, a division of VMware, Inc. - initial API and implementation
* SAP AG - moving to Eclipse Libra project and enhancements
*******************************************************************************/
package org.eclipse.libra.framework.editor.ui.internal.dependencies;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import org.eclipse.libra.framework.editor.core.model.IBundle;
/**
* @author Christian Dupuis
* @author Kaloyan Raev
*/
public class BundleDependencyContentResult {
private final Set<IBundle> bundles;
private final Map<Integer, Set<IBundle>> incomingDependencies = new HashMap<Integer, Set<IBundle>>();
private final Map<Integer, Set<IBundle>> outgoingDependencies = new HashMap<Integer, Set<IBundle>>();
public BundleDependencyContentResult(Set<IBundle> bundles) {
this.bundles = bundles;
}
public void addIncomingDependency(Integer level, IBundle bundleDependency) {
if (!incomingDependencies.containsKey(level)) {
incomingDependencies.put(level, new TreeSet<IBundle>(new Comparator<IBundle>() {
public int compare(IBundle o1, IBundle o2) {
return Long.valueOf(o1.getId()).compareTo(Long.valueOf(o2.getId()));
}
}));
}
incomingDependencies.get(level).add(bundleDependency);
}
public void addOutgoingDependency(Integer level, IBundle bundleDependency) {
if (!outgoingDependencies.containsKey(level)) {
outgoingDependencies.put(level, new TreeSet<IBundle>(new Comparator<IBundle>() {
public int compare(IBundle o1, IBundle o2) {
return Long.valueOf(o1.getId()).compareTo(Long.valueOf(o2.getId()));
}
}));
}
outgoingDependencies.get(level).add(bundleDependency);
}
public Set<IBundle> getBundles() {
return bundles;
}
public Map<Integer, Set<IBundle>> getIncomingDependencies() {
return incomingDependencies;
}
public Map<Integer, Set<IBundle>> getOutgoingDependencies() {
return outgoingDependencies;
}
public Integer getIncomingDegree() {
int degree = 0;
for (Integer integer : incomingDependencies.keySet()) {
degree = Math.max(degree, integer.intValue());
}
return Integer.valueOf(degree);
}
public Integer getOutgoingDegree() {
int degree = 0;
for (Integer integer : outgoingDependencies.keySet()) {
degree = Math.max(degree, integer.intValue());
}
return Integer.valueOf(degree);
}
}