Frames | No Frames |
1: /** 2: * ================================================ 3: * LibLoader : a free Java resource loading library 4: * ================================================ 5: * 6: * Project Info: http://reporting.pentaho.org/libloader/ 7: * 8: * (C) Copyright 2006, by Pentaho Corporation and Contributors. 9: * 10: * This library is free software; you can redistribute it and/or modify it under the terms 11: * of the GNU Lesser General Public License as published by the Free Software Foundation; 12: * either version 2.1 of the License, or (at your option) any later version. 13: * 14: * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 15: * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16: * See the GNU Lesser General Public License for more details. 17: * 18: * You should have received a copy of the GNU Lesser General Public License along with this 19: * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 20: * Boston, MA 02111-1307, USA. 21: * 22: * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 23: * in the United States and other countries.] 24: * 25: * 26: * ------------ 27: * $Id: DependencyCollector.java,v 1.4 2007/04/01 13:43:17 taqua Exp $ 28: * ------------ 29: * (C) Copyright 2006, by Pentaho Corporation. 30: */ 31: package org.jfree.resourceloader; 32: 33: import java.util.HashMap; 34: import java.io.Serializable; 35: 36: /** 37: * Creation-Date: 08.04.2006, 14:12:14 38: * 39: * @author Thomas Morgner 40: */ 41: public class DependencyCollector implements Serializable, Cloneable 42: { 43: private HashMap dependencies; 44: 45: public DependencyCollector(final ResourceKey source, 46: final long version) 47: { 48: if (source == null) 49: { 50: throw new NullPointerException(); 51: } 52: dependencies = new HashMap(); 53: dependencies.put(source, new Long(version)); 54: } 55: 56: public ResourceKey[] getDependencies() 57: { 58: return (ResourceKey[]) dependencies.keySet().toArray 59: (new ResourceKey[dependencies.size()]); 60: } 61: 62: public void add(final Resource dependentResource) 63: { 64: final ResourceKey[] depKeys = dependentResource.getDependencies(); 65: for (int i = 0; i < depKeys.length; i++) 66: { 67: final ResourceKey depKey = depKeys[i]; 68: final long version = dependentResource.getVersion(depKey); 69: add(depKey, version); 70: } 71: } 72: 73: public void add(final ResourceKey resourceKey, final long version) 74: { 75: dependencies.put(resourceKey, new Long(version)); 76: } 77: 78: public long getVersion(final ResourceKey key) 79: { 80: final Long l = (Long) dependencies.get(key); 81: if (l == null) 82: { 83: return -1; 84: } 85: return l.longValue(); 86: } 87: 88: public Object clone () throws CloneNotSupportedException 89: { 90: final DependencyCollector dc = (DependencyCollector) super.clone(); 91: dc.dependencies = (HashMap) dependencies.clone(); 92: return dc; 93: } 94: }