/* InvidAllocator.java This interface is used by the Invid class to provide an Invid when given a short type number and an int object number. By using an InvidAllocator, the server will be able to reuse previously created Invid's, much as the JVM can reuse interned strings. Created: 6 January 2005 Module By: Jonathan Abbey, jonabbey@arlut.utexas.edu ----------------------------------------------------------------------- Ganymede Directory Management System Copyright (C) 1996-2010 The University of Texas at Austin Contact information Author Email: ganymede_author@arlut.utexas.edu Email mailing list: ganymede@arlut.utexas.edu US Mail: Computer Science Division Applied Research Laboratories The University of Texas at Austin PO Box 8029, Austin TX 78713-8029 Telephone: (512) 835-3200 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package arlut.csd.ganymede.common; /*------------------------------------------------------------------------------ class InvidAllocator ------------------------------------------------------------------------------*/ /** * <p>This interface is used by the Invid class to provide an Invid when * given a short type number and an int object number. By using an * InvidAllocator, the server will be able to reuse previously created * Invid's, much as the JVM can reuse interned strings.</p> */ public interface InvidAllocator { /** * <p>This method takes the identifying elements of an Invid to be found, and searches * to find a suitable Invid object to return. If one cannot found, null should be * returned, in which case {@link arlut.csd.ganymede.common.Invid#createInvid(short,int) createInvid} * will synthesize and return a new one. */ public Invid findInvid(Invid matchInvid); /** * <p>This method takes the invid given and places in whatever * storage mechanism is appropriate, if any, for findInvid() to * later draw upon.</p> */ public void storeInvid(Invid newInvid); }