protected function _validateTransitions(StatusModel $status)
 {
     if (count($status->getTransitions()) > 2) {
         $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS];
         return false;
     }
     if (count($status->getTransitions()) < 2) {
         $this->_messages[self::NOT_ENOUGH_TRANSITIONS] = $this->_messageTemplatesUser[self::NOT_ENOUGH_TRANSITIONS];
         return false;
     }
     if (!$this->_validateTimeCauseTransition($status, LifeCycleModel::STATUS_SUSPENDED)) {
         return false;
     }
     if ($this->getUseTest()) {
         //To Test
         if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_TEST)) {
             return false;
         }
     } else {
         if ($this->getManual()) {
             if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVATION_PENDANT)) {
                 return false;
             }
         } else {
             if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVATION_READY)) {
                 return false;
             }
         }
     }
     return true;
 }
 protected function _validateTransitions(StatusModel $status)
 {
     if (count($status->getTransitions()) > 0) {
         $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS];
         return false;
     }
     return true;
 }
 protected function _validateTransitions(StatusModel $status)
 {
     if (count($status->getTransitions()) > 6) {
         $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS];
         return false;
     }
     $min = $this->getUseTest() ? 6 : 5;
     if (count($status->getTransitions()) < $min) {
         $this->_messages[self::NOT_ENOUGH_TRANSITIONS] = $this->_messageTemplatesUser[self::NOT_ENOUGH_TRANSITIONS];
         return false;
     }
     //To InactiveNew
     if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_INACTIVE_NEW)) {
         return false;
     }
     //To Active
     if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVE)) {
         return false;
     }
     //To Deactivate
     if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_DEACTIVATED)) {
         return false;
     }
     //To Retired
     if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_RETIRED)) {
         return false;
     }
     if ($this->getManual()) {
         //To Activation pendant
         if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVATION_PENDANT)) {
             return false;
         }
     } else {
         //To Activation ready
         if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_ACTIVATION_READY)) {
             return false;
         }
     }
     if ($this->getUseTest()) {
         //To Test
         if (!$this->_validateManualTransition($status, LifeCycleModel::STATUS_TEST)) {
             return false;
         }
     }
     return true;
 }
 protected function _validateTransitions(StatusModel $status)
 {
     if (count($status->getTransitions()) > 2) {
         $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS];
         return false;
     }
     if (count($status->getTransitions()) < 2) {
         $this->_messages[self::NOT_ENOUGH_TRANSITIONS] = $this->_messageTemplatesUser[self::NOT_ENOUGH_TRANSITIONS];
         return false;
     }
     if (!parent::_validateTransitions($status)) {
         return false;
     }
     if (!$this->_validateFirstUseTransition($status, LifeCycleModel::STATUS_ACTIVE)) {
         return false;
     }
     return true;
 }
 protected function _validateTransitions(StatusModel $status)
 {
     if (count($status->getTransitions()) > 2) {
         $this->_messages[self::TOO_MANY_TRANSITIONS] = $this->_messageTemplatesUser[self::TOO_MANY_TRANSITIONS];
         return false;
     }
     if (count($status->getTransitions()) < 2) {
         $this->_messages[self::NOT_ENOUGH_TRANSITIONS] = $this->_messageTemplatesUser[self::NOT_ENOUGH_TRANSITIONS];
         return false;
     }
     if (!parent::_validateTransitions($status)) {
         return false;
     }
     if ($this->getManual()) {
         if (!$this->_validateTransitionExists($status, LifeCycleModel::STATUS_ACTIVATION_PENDANT)) {
             return false;
         }
     } else {
         if (!$this->_validateTransitionExists($status, LifeCycleModel::STATUS_ACTIVATION_READY)) {
             return false;
         }
     }
     return true;
 }