/**
  * @param ValueObjectInterface $other
  * @return boolean
  */
 public function sameValueAs(ValueObjectInterface $other)
 {
     if (!$other instanceof RoleDescription) {
         return false;
     }
     return EqualsBuilder::create()->append($this->name()->sameValueAs($other->name()), true)->append($this->options()->sameValueAs($other->options()), true)->strict()->equals();
 }
 /**
  * @param ValueObjectInterface $other
  * @return boolean
  */
 public function sameValueAs(ValueObjectInterface $other)
 {
     if (!$other instanceof ActionDescription) {
         return false;
     }
     if ($this->hasStructureDefinition()) {
         if (!$other->hasStructureDefinition()) {
             return false;
         }
         if (!$this->structureDefinition()->sameValueAs($other->structureDefinition())) {
             return false;
         }
     }
     if (!$this->hasStructureDefinition() && $other->hasStructureDefinition()) {
         return false;
     }
     if (!is_null($this->eventsDefinition()) && !is_null($other->eventsDefinition())) {
         if (!$this->eventsDefinition()->sameValueAs($other->eventsDefinition())) {
             return false;
         }
     } else {
         if (!is_null($this->eventsDefinition()) && is_null($other->eventsDefinition())) {
             return false;
         } else {
             if (is_null($this->eventsDefinition()) && !is_null($other->eventsDefinition())) {
                 return false;
             }
         }
     }
     return EqualsBuilder::create()->append($this->name()->sameValueAs($other->name()), true)->append($this->type()->sameValueAs($other->type()), true)->append($this->arguments()->sameValueAs($other->arguments()), true)->strict()->equals();
 }