/**
  * StateMachine change for unblock trigger.
  *
  * @param alarm the alarm that is being triggered.
  * @return The event to be fired on acknowledge.
  */
 private AlarmEvent enable(AlarmPoint alarm) {
   AlarmStatus status = alarm.currentStatus();
   if (status.name(null).equals(AlarmPoint.STATUS_DISABLED)) {
     AlarmStatus newStatus = createStatus(AlarmPoint.STATUS_NORMAL);
     return createEvent(((Identity) alarm), status, newStatus, AlarmPoint.EVENT_ENABLING);
   }
   return null;
 }
 /**
  * StateMachine change for unblock trigger.
  *
  * @param alarm the alarm that is being triggered.
  * @return The event to be fired on acknowledge.
  */
 private AlarmEvent unblock(AlarmPoint alarm) {
   AlarmStatus status = alarm.currentStatus();
   if (status.name(null).equals(AlarmPoint.STATUS_BLOCKED)) {
     AlarmStatus newStatus = createStatus(AlarmPoint.STATUS_NORMAL);
     return createEvent(((Identity) alarm), status, newStatus, AlarmPoint.EVENT_UNBLOCKING);
   }
   return null;
 }
 /**
  * StateMachine change for activate trigger.
  *
  * @param alarm the alarm that is being triggered.
  * @return The event to be fired on activation.
  */
 private AlarmEvent activation(AlarmPoint alarm) {
   AlarmStatus status = alarm.currentStatus();
   if ((status.name(null).equals(AlarmPoint.STATUS_NORMAL))
       || (status.name(null).equals(AlarmPoint.STATUS_DEACTIVATED))) {
     AlarmStatus newStatus = createStatus(AlarmPoint.STATUS_ACTIVATED);
     return createEvent(((Identity) alarm), status, newStatus, AlarmPoint.EVENT_ACTIVATION);
   }
   return null;
 }
 /**
  * StateMachine change for activate trigger.
  *
  * @param alarm the alarm that is being triggered.
  * @return The event to be fired on acknowledge.
  */
 private AlarmEvent acknowledge(AlarmPoint alarm) {
   AlarmStatus status = alarm.currentStatus();
   if (status.name(null).equals(AlarmPoint.STATUS_DEACTIVATED)) {
     AlarmStatus newStatus = createStatus(AlarmPoint.STATUS_NORMAL);
     return createEvent(((Identity) alarm), status, newStatus, AlarmPoint.EVENT_ACKNOWLEDGEMENT);
   } else if (status.name(null).equals(AlarmPoint.STATUS_ACTIVATED)) {
     AlarmStatus newStatus = createStatus(AlarmPoint.STATUS_ACKNOWLEDGED);
     return createEvent(((Identity) alarm), status, newStatus, AlarmPoint.EVENT_ACKNOWLEDGEMENT);
   }
   return null;
 }
 @Override
 public String computeTrigger(AlarmStatus status, boolean condition) {
   if (condition) {
     if ((status.name(null).equals(AlarmPoint.STATUS_DEACTIVATED))
         || (status.name(null).equals(AlarmPoint.STATUS_NORMAL))) {
       return AlarmPoint.TRIGGER_ACTIVATE;
     }
   } else {
     if ((status.name(null).equals(AlarmPoint.STATUS_ACTIVATED))
         || (status.name(null).equals(AlarmPoint.STATUS_REACTIVATED))
         || (status.name(null).equals(AlarmPoint.STATUS_ACKNOWLEDGED))) {
       return AlarmPoint.TRIGGER_DEACTIVATE;
     }
   }
   return null;
 }
 @Override
 public boolean computeCondition(AlarmStatus status) {
   return (status.name(null).equals(AlarmPoint.STATUS_ACTIVATED))
       || (status.name(null).equals(AlarmPoint.STATUS_REACTIVATED))
       || (status.name(null).equals(AlarmPoint.STATUS_ACKNOWLEDGED));
 }