/**
  * @param boolean $includeRequired
  * @param boolean $includeNonRequired
  * @param $includeReadOnly
  * @return array
  */
 protected function resolveAttributesForActionsOrTimeTriggerData($includeRequired = false, $includeNonRequired = false, $includeReadOnly = false)
 {
     assert('is_bool($includeRequired)');
     assert('is_bool($includeNonRequired)');
     assert('is_bool($includeReadOnly)');
     $attributes = array();
     foreach ($this->model->getAttributes() as $attribute => $notUsed) {
         if ((!$this->model->isAttributeReadOnly($attribute) || $includeReadOnly) && ($this->model->isRelation($attribute) && $this->rules->relationIsUsedAsAttribute($this->model, $attribute) || !$this->model->isRelation($attribute) && $this->rules->attributeCanBeTriggered($this->model, $attribute))) {
             $attributeIsRequired = $this->model->isAttributeRequired($attribute);
             if ($includeNonRequired && !$attributeIsRequired || $includeRequired && $attributeIsRequired) {
                 $attributes[$attribute] = array('label' => $this->model->getAttributeLabel($attribute));
             }
         }
     }
     return $attributes;
 }