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: SimpleResource.java 3520 2007-10-16 10:34:47Z tmorgner $ 28: * ------------ 29: * (C) Copyright 2006, by Pentaho Corporation. 30: */ 31: package org.jfree.resourceloader; 32: 33: /** 34: * A simple resource with only a single dependency. 35: * 36: * @author Thomas Morgner 37: */ 38: public class SimpleResource implements Resource 39: { 40: private Object value; 41: private ResourceKey key; 42: private long version; 43: 44: public SimpleResource(final ResourceKey key, 45: final Object value, 46: final long version) 47: { 48: if (key == null) 49: { 50: throw new NullPointerException(); 51: } 52: this.value = value; 53: this.key = key; 54: this.version = version; 55: } 56: 57: public Object getResource() 58: { 59: return value; 60: } 61: 62: public long getVersion(final ResourceKey key) 63: { 64: if (key.equals(this.key)) 65: { 66: return version; 67: } 68: // -1 is the placeholder for: not known. 69: return -1; 70: } 71: 72: /** 73: * The primary source is also included in this set. The dependencies are given 74: * as ResourceKey objects. The keys itself do not hold any state information. 75: * <p/> 76: * The dependencies do not track deep dependencies. So if Resource A depends 77: * on Resource B which depends on Resource C, then A only knows about B, not 78: * C. 79: * 80: * @return 81: */ 82: public ResourceKey[] getDependencies() 83: { 84: return new ResourceKey[]{getSource()}; 85: } 86: 87: public ResourceKey getSource() 88: { 89: return key; 90: } 91: }