/** * 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; }
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; }