コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function isFresh(ClassMetadata $metadata)
 {
     if ($metadata instanceof FileTrackingClassMetadata) {
         return $metadata->isFresh();
     }
     return false;
 }
コード例 #2
0
 /**
  * {@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);
 }
コード例 #3
0
 /**
  * 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);
 }
コード例 #4
0
 /**
  * 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);
 }