/** recalculateStatus */
 @Override
 public void recalculateStatus() {
   PollableService criticalSvc = getCriticalService();
   if (criticalSvc != null) {
     criticalSvc.recalculateStatus();
     updateStatus(criticalSvc.getStatus().isUp() ? PollStatus.up() : PollStatus.down());
   } else {
     super.recalculateStatus();
   }
 }
  /** {@inheritDoc} */
  @Override
  public PollStatus pollRemainingMembers(PollableElement member) {
    PollableService critSvc = getCriticalService();

    if (critSvc != null && getStatus().isUp()) {
      if (member != critSvc) critSvc.poll();

      return critSvc.getStatus().isUp() ? PollStatus.up() : PollStatus.down();
    }

    if (getContext().isPollingAllIfCritServiceUndefined())
      return super.pollRemainingMembers(member);
    else {
      return getMemberStatus();
    }
  }
 /** {@inheritDoc} */
 @Override
 protected Object createMemberKey(PollableElement member) {
   PollableService svc = (PollableService) member;
   return svc.getSvcName();
 }