if (ws.sizePushed() > limit) {    break;
if (VERBOSE) { System.out.println( "done."+ "\n**********************************************\n");
  private static List searchDown(				 SimpleServletSupport support,				 Set startUIDSet,				 int limit) {        if (VERBOSE) {      System.out.println(			 "\n****************************************************"+			 "\nSEARCH DOWN"+			 "\nStart with ["+			 ((startUIDSet != null) ? startUIDSet.size() : 0)+			 "]: "+startUIDSet+			 ((limit >= 0) ? ("\nLimit: "+limit) : "\nNo limit"));    }        // find the starting objects    Collection startCol =      findUniqueObjects(			support, 			startUIDSet);        if (VERBOSE) {      System.out.println(			 "Found "+			 startCol.size()+			 " of "+			 ((startUIDSet != null) ? startUIDSet.size() : 0));    }        // make a list of Objs to search    WorkStack ws = new WorkStack();    ws.pushAll(startCol);        while (ws.hasWork()) {      UniqueObject uo = ws.take();      //      int type = getItemType(uo);      switch (type) {      case ITEM_TYPE_ALLOCATION:	{	  Allocation alloc = (Allocation)uo;	  // asset	  ws.push(alloc.getAsset());	  // FIXME: what about the task?	  ws.push(alloc.getTask());	  // if remote then remote task UID is a property	}	break;      case ITEM_TYPE_EXPANSION:	{	  Expansion ex = (Expansion)uo;	  ws.push(ex.getWorkflow());	}	break;      case ITEM_TYPE_AGGREGATION:	{	  Aggregation agg = (Aggregation)uo;	  Composition comp = agg.getComposition();	  if (comp != null) {	    // "^" ignore comp.getParentTasks	    // child MPTask	    ws.push(comp.getCombinedTask());	  }	}	break;      case ITEM_TYPE_ASSET_TRANSFER:	{	  AssetTransfer atrans = (AssetTransfer)uo;	  // asset moved	  ws.push(atrans.getAsset());	  // destination asset	  ws.push(atrans.getAssignee());	  // task	  ws.push(atrans.getTask());	}	break;      case ITEM_TYPE_TASK:	{	  Task t = (Task)uo;	  // direct object (Asset)	  ws.push(t.getDirectObject());	  // plan element	  ws.push(t.getPlanElement());	}	break;      case ITEM_TYPE_ASSET:	{	  Asset asset = (Asset)uo;	  // asset group?	  if (asset instanceof AssetGroup) {	    // assets	    ws.pushAll(((AssetGroup)asset).getAssets());	  }	}	break;      case ITEM_TYPE_WORKFLOW:	{	  Workflow wf = (Workflow)uo;	  // tasks	  ws.pushAll(wf.getTasks());	}	break;      case ITEM_TYPE_DISPOSITION:	{	  // FIXME: What about the Task?	  PlanElement pe = (PlanElement)uo;	  // task	  ws.push(pe.getTask());	  break;	}      case ITEM_TYPE_OTHER:	{	  // Add in something for HCEs to point to PlanElements?	  if (uo instanceof org.cougaar.tools.csmart.runtime.ldm.event.HappinessChangeEvent) {	    ws.push(((org.cougaar.tools.csmart.runtime.ldm.event.HappinessChangeEvent)uo).getRegarding());	  }	  break;	}      default:	// ignore	break;      }            if (ws.sizePushed() > limit) {	// we've exceeded our limit	//	// FIXME: trim "ws" to just (limit + 1)	break;      }    }        if (VERBOSE) {      System.out.println(			 "done."+			 "\n**********************************************\n");    }        List toL = new ArrayList(ws.sizePushed());    ws.toCollection(toL);    return toL;  }