create() публичный Метод

public create ( $class )
 /**
  * @param string $className
  *
  * @return NodeEntityMetadata|RelationshipEntityMetadata
  */
 public function create($className)
 {
     $reflectionClass = new \ReflectionClass($className);
     $entityIdMetadata = null;
     $propertiesMetadata = [];
     $relationshipsMetadata = [];
     if (null !== ($annotation = $this->reader->getClassAnnotation($reflectionClass, Node::class))) {
         $annotationMetadata = $this->nodeAnnotationMetadataFactory->create($className);
         foreach ($reflectionClass->getProperties() as $reflectionProperty) {
             $propertyAnnotationMetadata = $this->propertyAnnotationMetadataFactory->create($className, $reflectionProperty->getName());
             if (null !== $propertyAnnotationMetadata) {
                 $propertiesMetadata[] = new EntityPropertyMetadata($reflectionProperty->getName(), $reflectionProperty, $propertyAnnotationMetadata);
             } else {
                 $idA = $this->IdAnnotationMetadataFactory->create($className, $reflectionProperty);
                 if (null !== $idA) {
                     $entityIdMetadata = new EntityIdMetadata($reflectionProperty->getName(), $reflectionProperty, $idA);
                 }
             }
             foreach ($this->reader->getPropertyAnnotations($reflectionProperty) as $annot) {
                 if ($annot instanceof Label) {
                     $propertiesMetadata[] = new LabeledPropertyMetadata($reflectionProperty->getName(), $reflectionProperty, $annot);
                 }
                 if ($annot instanceof Relationship) {
                     $isLazy = null !== $this->reader->getPropertyAnnotation($reflectionProperty, Lazy::class);
                     $orderBy = $this->reader->getPropertyAnnotation($reflectionProperty, OrderBy::class);
                     $relationshipsMetadata[] = new RelationshipMetadata($className, $reflectionProperty, $annot, $isLazy, $orderBy);
                 }
             }
         }
         return new NodeEntityMetadata($className, $reflectionClass, $annotationMetadata, $entityIdMetadata, $propertiesMetadata, $relationshipsMetadata);
     } elseif (null !== ($annotation = $this->reader->getClassAnnotation($reflectionClass, RelationshipEntity::class))) {
         return $this->relationshipEntityMetadataFactory->create($className);
     }
     if (null !== get_parent_class($className)) {
         return $this->create(get_parent_class($className));
     }
     throw new MappingException(sprintf('The class "%s" is not a valid OGM entity', $className));
 }