package edu.vt.marian.search; import java.io.*; import java.util.*; import edu.vt.marian.common.*; /** A class manager (sometimes called a class factory) is an object within MARIAN that is responsible for creating, storing, and searching on all digital information objects within some MARIAN class. All class managers are either link class managers or node (DigInfObj) managers. It is in the latter two classes that all the interesting methods get defined.
Two aspects of class management are hidden within these three simple interfaces: caching and subclass management.
Caching is an aspect of the search methods. We expect search requests to be repeated in the context of real running digital library systems. We take advantage of this and speed things up by providing a cache of match sets in each manager indexed by search description.
Subclass management occurs when a MARIAN class is defined as a superclass of other MARIAN classes. In this case, the manager for the superclass is responsible to take all requests, pass them to each subclass, and assemble their responses together with any response from objects of this class proper. At the current stage of implementation (MARIAN v.2.1), class managers are implemented as either subclass managers or managers of objects. In otherwords, managers for superclasses do not "own" any objects of their own, and classes that directly manage objects do not have subclasses. This may change in later development.
JDK Version : 1.1.5
@author Robert France @see NodeClassManager @see LinkClassManager */ public interface ClassManager { /** Return codes specific to class managers. */ public final static int NO_SUCH_OBJECT = -11; // Not currently in this class. public final static int ALREADY_EXISTS = -12; // Can't add: already here. /** How many objects are in this class? */ public long classSize(); };