package edu.vt.marian.search; import java.util.*; import java.io.*; import edu.vt.marian.common.*; /** * The sort of Sequencer that is used with large numbers of unweighted * links. The keySet is a set of nodes on one side of links in the * class, and map is either LinkClassManager.sinkToSource() or * sourceToSinks(). *
* This implementation simply extends MergeSequencer by defining the * addSets() method to invoke addSet() repeatedly for every WtdObjSet * created by mapping elements in the key set using the given mapping * function. * * @author Paul Mather * @author Robert France * @version $Id: FlatSetSequencer.java,v 1.2 2000/03/10 15:35:39 paul Exp $ * @see MergeSequencer * @see Sequencer * @see WtdObjSetSequencer * @see java.util.Enumeration */ public class FlatSetSequencer extends MergeSequencer implements WtdObjSetSequencer { /** * Create a merging sequencer for an unknown number of sets. */ public FlatSetSequencer(long classSize, Debug d) { super( classSize, d ); } /** * Add a new component set to the Sequencer with no scaling constant. * * @param keySet a weighted object set, each of . * @param map someone who can turn each FullID in keySet into a WtdObjSet. * @return ReturnCodes.OK --- set was added without problems; * anything else --- problems. */ public int addSets(WtdObjSet keySet, WtdObjToSetMapping map) { WtdObjSetEnumeration enum; int returnValue; if (keySet != null && map != null) { // Map every WtdObj in keySet to a WtdObjSet... enum = keySet.elements(); while (enum.hasMoreElements()) { super.addSet( map.map( (WtdObj) enum.nextElement() ) ); } returnValue = ReturnCodes.OK; } else returnValue = ReturnCodes.BAD_PARAMS; return returnValue; } }