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    }