rehydrateInvs = true;
  protected void setupSubscriptions() {    if (! getBlackboardService().didRehydrate()) {      setupOperatingModes();    } else {      Collection level2OMs = getBlackboardService().        query(new OperatingModePredicate(supplyType, LEVEL_2_TIME_HORIZON));      //there should only be one.      Iterator level2it = level2OMs.iterator();      if (level2it.hasNext()) {        level2Horizon = (OperatingMode) level2it.next();      }      Collection level6OMs = getBlackboardService().        query(new OperatingModePredicate(supplyType, LEVEL_6_TIME_HORIZON));      //there should only be one.      Iterator level6it = level6OMs.iterator();      if (level6it.hasNext()) {        level6Horizon = (OperatingMode) level6it.next();      }      if (level2Horizon == null || level6Horizon == null) {        if (logger.isErrorEnabled()) {          logger.error("InventoryPlugin in agent: " + getAgentIdentifier() +                       " of supply type: " + supplyType +                        " is missing operating modes upon rehydration... level2 OM is: " +                       level2Horizon + " level 6 OM is: " + level6Horizon);        }      }    }    detReqSubscription = (IncrementalSubscription) blackboard.subscribe(new DetInvReqPredicate(taskUtils));    aggMILSubscription = (CollectionSubscription) blackboard.subscribe(new AggMILPredicate(), false);    milSubscription = (IncrementalSubscription) blackboard.subscribe(new MILPredicate());    detReqHandler.addMILTasks(milSubscription.elements());    selfOrganizations = (IncrementalSubscription) blackboard.subscribe(orgsPredicate);    inventoryPolicySubscription = (IncrementalSubscription) blackboard.subscribe(new InventoryPolicyPredicate(supplyType));    logisticsOPlanSubscription = (IncrementalSubscription) blackboard.subscribe(new LogisticsOPlanPredicate());    withdrawTaskSubscription = (IncrementalSubscription) blackboard.subscribe(new WithdrawPredicate(supplyType));    projectWithdrawTaskSubscription = (IncrementalSubscription) blackboard.subscribe(new ProjectWithdrawPredicate(supplyType));    MIExpansionSubscription = (IncrementalSubscription)blackboard.subscribe(new MIExpansionPredicate(supplyType, taskUtils));    MITopExpansionSubscription = (IncrementalSubscription)blackboard.subscribe(new MITopExpansionPredicate());    DetReqInvExpansionSubscription = (IncrementalSubscription)blackboard.subscribe(new DetReqInvExpansionPredicate(taskUtils));    if (getAgentIdentifier() == null && logger.isErrorEnabled()) {      logger.error("No agentIdentifier ... subscriptions need this info!!  In plugin: " + this);    }    refillAllocationSubscription = (IncrementalSubscription) blackboard.      subscribe(new RefillAllocPredicate(supplyType, getAgentIdentifier().toString(), taskUtils));    expansionSubscription = (IncrementalSubscription)blackboard.      subscribe(new ExpansionPredicate(supplyType, getAgentIdentifier().toString(), taskUtils));    refillSubscription = (IncrementalSubscription)blackboard.      subscribe(new RefillPredicate(supplyType, getAgentIdentifier().toString(), taskUtils));    supplyTaskSubscription = (IncrementalSubscription) blackboard.      subscribe(new SupplyTaskPredicate(supplyType, getAgentIdentifier().toString(), taskUtils));    projectionTaskSubscription = (IncrementalSubscription) blackboard.      subscribe( new ProjectionTaskPredicate(supplyType, getAgentIdentifier().toString(), taskUtils));  }