001 package org.picocontainer.gems.monitors.prefuse;
002
003 import java.util.HashSet;
004 import java.util.Set;
005
006 import org.picocontainer.gems.monitors.ComponentDependencyMonitor.Dependency;
007
008 /**
009 * Understands non-duplicated dependencies.
010 *
011 * @author Peter Barry
012 * @author Kent R. Spillner
013 */
014 public class DependencySet implements ComponentDependencyListener {
015
016 private Set uniqueDependencies = new HashSet();
017
018 private ComponentDependencyListener listener;
019
020 public DependencySet(ComponentDependencyListener listener) {
021 this.listener = listener;
022 }
023
024 public void addDependency(Dependency dependency) {
025 if (uniqueDependencies.add(dependency)) {
026 listener.addDependency(dependency);
027 }
028 }
029
030 public Dependency[] getDependencies() {
031 return (Dependency[]) uniqueDependencies.toArray(new Dependency[uniqueDependencies.size()]);
032 }
033 }