Exemplo n.º 1
0
 /**
  * Checks if another definition is equal.
  *
  * Two definitions are equal if and only if all of their properties are equal.
  *
  * @param Definition $definition The definition to compare with
  *
  * @return bool True if the definitions are equal, false otherwise
  */
 public function equals(Definition $definition)
 {
     if (get_class($this) !== get_class($definition)) {
         return false;
     }
     if (null !== $this->type xor null !== $definition->type) {
         return false;
     }
     if (null !== $this->type && null !== $definition->type && !$this->type->equals($definition->type)) {
         return false;
     }
     if (null !== $this->moreInfo xor null !== $definition->moreInfo) {
         return false;
     }
     if (null !== $this->moreInfo && null !== $definition->moreInfo && !$this->moreInfo->equals($definition->moreInfo)) {
         return false;
     }
     if (null !== $this->extensions xor null !== $definition->extensions) {
         return false;
     }
     if (count($this->name) !== count($definition->name)) {
         return false;
     }
     if (count($this->description) !== count($definition->description)) {
         return false;
     }
     if (!is_array($this->name) xor !is_array($definition->name)) {
         return false;
     }
     if (!is_array($this->description) xor !is_array($definition->description)) {
         return false;
     }
     if (is_array($this->name)) {
         foreach ($this->name as $language => $value) {
             if (!isset($definition->name[$language])) {
                 return false;
             }
             if ($value !== $definition->name[$language]) {
                 return false;
             }
         }
     }
     if (is_array($this->description)) {
         foreach ($this->description as $language => $value) {
             if (!isset($definition->description[$language])) {
                 return false;
             }
             if ($value !== $definition->description[$language]) {
                 return false;
             }
         }
     }
     if (null !== $this->extensions && null !== $definition->extensions && !$this->extensions->equals($definition->extensions)) {
         return false;
     }
     return true;
 }
Exemplo n.º 2
0
 public function equals(Context $context)
 {
     if ($this->registration !== $context->registration) {
         return false;
     }
     if (null !== $this->instructor xor null !== $context->instructor) {
         return false;
     }
     if (null !== $this->instructor && null !== $context->instructor && !$this->instructor->equals($context->instructor)) {
         return false;
     }
     if (null !== $this->team xor null !== $context->team) {
         return false;
     }
     if (null !== $this->team && null !== $context->team && !$this->team->equals($context->team)) {
         return false;
     }
     if ($this->contextActivities != $context->contextActivities) {
         return false;
     }
     if ($this->revision !== $context->revision) {
         return false;
     }
     if ($this->platform !== $context->platform) {
         return false;
     }
     if ($this->language !== $context->language) {
         return false;
     }
     if (null !== $this->statement xor null !== $context->statement) {
         return false;
     }
     if (null !== $this->statement && null !== $context->statement && !$this->statement->equals($context->statement)) {
         return false;
     }
     if (null !== $this->extensions xor null !== $context->extensions) {
         return false;
     }
     if (null !== $this->extensions && null !== $context->extensions && !$this->extensions->equals($context->extensions)) {
         return false;
     }
     return true;
 }