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 }