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)
                );
            }
        }
    }