/** * {@inheritdoc} */ public function isFresh(ClassMetadata $metadata) { if ($metadata instanceof FileTrackingClassMetadata) { return $metadata->isFresh(); } return false; }
/** * {@inheritdoc} */ public function merge(ClassMetadata $object) { $properties = $this->properties; $methods = $this->methods; $resources = $this->fileResources; foreach ($object->getProperties() as $property) { $properties[$property->getName()] = $property; } foreach ($object->getMethods() as $method) { $methods[$method->getName()] = $method; } $createdAt = $this->createdAt; if (($otherCreatedAt = $object->getCreatedAt()) > $createdAt) { $createdAt = $otherCreatedAt; } if ($object instanceof self) { $resources = array_unique(array_merge($resources, $object->getFileResources())); } return new static($this->className, $properties, $methods, $createdAt, $resources); }
/** * Returns a new NullClassMetadata with the highest createdAt. * * No actual merging is performed as NullClassMetadata can't hold * any data and it's not possible to determine which ClassMetadata * implementation must be used. * * Only the createdAt of the object is used if it's higher then * the current createdAt value. * * @param ClassMetadata $object Another MergeableClassMetadata object. * * @return NullClassMetadata */ public function merge(ClassMetadata $object) { $createdAt = $this->createdAt; if (($otherCreatedAt = $object->getCreatedAt()) > $createdAt) { $createdAt = $otherCreatedAt; } return new self($this->className, $createdAt); }
/** * Merge the ClassMetadata of the object with the current ClassMetadata * into a new object. * * Note: instead of modifying the current ClassMetadata * you should instead return a new object. * * @param ClassMetadata $object Another MergeableClassMetadata object. * * @return self New ClassMetadata instance with * the merged class metadata. */ public function merge(ClassMetadata $object) { $properties = $this->properties; $methods = $this->methods; foreach ($object->getProperties() as $property) { $properties[$property->getName()] = $property; } foreach ($object->getMethods() as $method) { $methods[$method->getName()] = $method; } $createdAt = $this->createdAt; if (($otherCreatedAt = $object->getCreatedAt()) > $createdAt) { $createdAt = $otherCreatedAt; } return new static($this->className, $properties, $methods, $createdAt); }