public static <X> String createTypeId(AnnotatedType<X> annotatedType) {
        String id = createTypeId(annotatedType.getJavaClass(), annotatedType.getAnnotations(), annotatedType.getMethods(), annotatedType.getFields(), annotatedType.getConstructors());
        String hash = hash(id);
        MetadataLogger.LOG.tracef("Generated AnnotatedType id hash for %s: %s", id, hash);
        return hash;
    }
public static < X > String createTypeId ( AnnotatedType < X > annotatedType ) { String id = createTypeId ( annotatedType . getJavaClass ( ) , annotatedType . getAnnotations ( ) , annotatedType . getMethods ( ) , annotatedType . getFields ( ) , annotatedType . getConstructors ( ) ) ; String hash = hash ( id ) ; MetadataLogger . LOG . tracef ( "Generated AnnotatedType id hash for %s: %s" , id , hash ) ; return hash ; }
Generates a unique signature for an annotated type. Members without
annotations are omitted to reduce the length of the signature

@param <X>
@param annotatedType
@return hash of a signature for a concrete annotated type