net.sourceforge.squirrel_sql.fw.util.IObjectCache Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fw Show documentation
Show all versions of fw Show documentation
The framework library contains utility classes that are generic and useful for building applications
that introspect a database via JDBC. These are not intended to be SQuirreLSQL-specific and could be
used by other projects JDBC front-end applications. This project is guaranteed to have no code
dependencies on other SQuirreLSQL projects and could therefore be used when building a different
JDBC front-end application.
package net.sourceforge.squirrel_sql.fw.util;
/*
* Copyright (C) 2001-2003 Colin Bell
* [email protected]
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
import java.util.Iterator;
import net.sourceforge.squirrel_sql.fw.id.IHasIdentifier;
import net.sourceforge.squirrel_sql.fw.id.IIdentifier;
/**
* This interface defines a the behaviour of an object cache.
*
* @author Colin Bell
*/
public interface IObjectCache
{
/**
* Retrieve a stored object.
*
* @param objClass The class of the object to be retrieved.
* @param id The IIdentifier
that identifies
* the object to be retrieved.
*
* @return The IHasIdentifier
retrieved or null
* if no object exists for id
.
*/
IHasIdentifier get(Class objClass, IIdentifier id);
/**
* Store an object.
*
* @param obj Object to be stored.
*
* @exception DuplicateObjectException
* Thrown if an object of the same class as obj
* and with the same identifier is already in the cache.
*/
void add(E obj) throws DuplicateObjectException;
/**
* Remove an object.
*
* @param objClass Class of object to be removed.
* @param id Identifier for object to be removed.
*/
void remove(Class objClass, IIdentifier id);
/**
* Return an array of Class
[] getAllClasses();
/**
* Return an Iterator
of all objects stored for the
* passed class.
*
* @param objClass Class to return objects for.
*
* @return Iterator
over all objects.
*/
Iterator getAllForClass(Class objClass);
/**
* Adds a listener for changes to the cache entry for the passed class.
*
* @param lis a IObjectCacheChangeListener that will be notified
* when objects are added or removed from this cache
* entry.
* @param objClass The class of objects whose cache we want to listen
* to.
*/
void addChangesListener(IObjectCacheChangeListener lis, Class objClass);
/**
* Removes a listener for changes to the cache entry for the passed class.
*
* @param lis a IObjectCacheChangeListener that will be notified
* when objects are added or removed from this cache
* entry.
* @param objClass The class of objects whose cache we want to listen
* to.
*/
void removeChangesListener(IObjectCacheChangeListener lis, Class objClass);
}