code: private EntityTypeMetadata<EntityMetadata> createEntityTypeMetadata(AnnotatedType annotatedType, List<TypeMetadata> superTypes,
              Collection<MethodMetadata<?, ?>> methodMetadataOfType) {
          IndexedPropertyMethodMetadata indexedProperty = getIndexedPropertyMethodMetadata(methodMetadataOfType);
          EntityMetadata datastoreEntityMetadata = metadataFactory.createEntityMetadata(annotatedType, superTypes, metadataByType);
          boolean abstractType = annotatedType.isAnnotationPresent(Abstract.class);
          boolean finalType = annotatedType.isAnnotationPresent(Final.class);
          return new EntityTypeMetadata<>(annotatedType, superTypes, methodMetadataOfType, abstractType, finalType, indexedProperty, datastoreEntityMetadata);
      }
docs: Create a {@link EntityTypeMetadata} instance for the given
  {@link AnnotatedType}.
  
  @param annotatedType
  The {@link AnnotatedType}.
  @param superTypes
  The metadata collection of the super types.
  @param methodMetadataOfType
  The method metadata of the type.
  @return The {@link EntityTypeMetadata} instance representing the annotated
  type.