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