// Process Oplan subscription
 private void doUpdateOplans() {
   if (logger.isDebugEnabled()) {
     logger.debug("Updating the Oplans!");
   }
   Enumeration en;
   // Create new ClusterOPlan objects for each added Oplan
   if (oplans_.getAddedList().hasMoreElements()) {
     en = oplans_.getAddedList();
     while (en.hasMoreElements()) {
       Oplan oplan = (Oplan) en.nextElement();
       UID oplanUID = oplan.getUID();
       IncrementalSubscription oplanActivities =
           (IncrementalSubscription) orgActivitySubscriptionOfOPlanUID.get(oplanUID);
       if (oplanActivities == null) {
         oplanActivities =
             (IncrementalSubscription) subscribe(new OplanOrgActivitiesPredicate(oplanUID));
         monitorPluginSubscription(oplanActivities);
         orgActivitySubscriptionOfOPlanUID.put(oplanUID, oplanActivities);
       }
       ClusterOPlan coplan = (ClusterOPlan) ClusterOPlans_.get(oplanUID);
       if (coplan == null) {
         coplan = new ClusterOPlan(clusterId_, oplan);
         ClusterOPlans_.put(oplanUID, coplan);
         publishAdd(coplan);
       }
     }
   }
   // Remove ClusterOPlan objects that are no longer relevant
   if (oplans_.getRemovedList().hasMoreElements()) {
     en = oplans_.getRemovedList();
     while (en.hasMoreElements()) {
       Oplan oplan = (Oplan) en.nextElement();
       UID oplanUID = oplan.getUID();
       ClusterOPlan coplan = (ClusterOPlan) ClusterOPlans_.get(oplanUID);
       // Remove ClusterOPlan from array
       ClusterOPlans_.remove(oplanUID);
       // Cancel subscription
       IncrementalSubscription s =
           (IncrementalSubscription) orgActivitySubscriptionOfOPlanUID.remove(oplanUID);
       if (s != null) unsubscribe(s);
       publishRemove(coplan);
       break;
     }
   }
   if (ClusterOPlans_.isEmpty()) {
     if (logger.isErrorEnabled()) {
       logger.error(" updateOplans no OPLAN");
     }
   }
 }
 public ClusterOPlan findOPlan(Oplan oplan) {
   return findOPlan(oplan.getUID());
 }