/**
  * Get recommended layout from EN4J and execute the listener callback with results.
  *
  * @param useHamming
  * @param newNodes
  * @param killedNodes
  * @param leaveAsIsNodes
  * @param listener
  */
 public void doLayout(
     int solverMode,
     int annealTime,
     boolean useHamming,
     List newNodes,
     List killedNodes,
     List leaveAsIsNodes,
     LoadBalancerListener listener) {
   UID uid = uidService.nextUID();
   if (logger.isInfoEnabled()) {
     logger.info(
         "getLayout:"
             + " annealTime="
             + annealTime
             + " solverMode="
             + solverMode
             + " useHamming="
             + useHamming
             + " newNodes="
             + newNodes
             + " killedNodes="
             + killedNodes
             + " leaveAsIsNodes="
             + leaveAsIsNodes
             + " uid="
             + uid);
   }
   LoadBalanceRequest loadBalReq =
       new UniqueLoadBalanceRequest(
           annealTime, solverMode, useHamming, newNodes, killedNodes, leaveAsIsNodes, uid);
   myRequests.put(uid, listener);
   if (logger.isDebugEnabled()) {
     logger.debug("publishing LoadBalanceRequest");
   }
   fireLater(loadBalReq);
 }
 public MyBlackboardObject(int a, String s, UIDService uidService) {
   setUID(uidService.nextUID());
   _a = a;
   _s = s;
 }