/** * Completes the metadata by setting missing fields that can be inferred * by other fields * * Furthermore, the type of properties which is returned as string by * the metadata driver is replaced with a ClassMetadata instance. * * @param ClassMetadata $class The metadata to complete */ protected function completeMetadata(ClassMetadata $class) { $className = $class->getName(); if (null === $class->getIri()) { $class->setIri($this->namingStrategy->classIriFragment($className)); } if (null === $class->getExposeAs()) { $class->setExposeAs($this->namingStrategy->classShortName($className)); } // If no title has been set for this class, use it's short name if (null === $class->getTitle()) { $class->setTitle($this->namingStrategy->classShortName($className)); } foreach ($class->getProperties() as $property) { $propertyName = $property->getName(); if (null === $property->getIri()) { $property->setIri($this->namingStrategy->propertyIriFragment($className, $propertyName)); } if (null === $property->getExposeAs()) { $property->setExposeAs($this->namingStrategy->propertyShortName($className, $propertyName)); } // If no title has been set for this property, use it's short name if (null === $property->getTitle()) { $property->setTitle($this->namingStrategy->propertyShortName($className, $propertyName)); } } }