@SuppressWarnings({ "unchecked" })
  private <X,Y> AttributeMetadata<X,Y> determineAttributeMetadata(
      AttributeContext<X> attributeContext,
      MemberResolver memberResolver) {
    log.trace( "Starting attribute metadata determination [{}]", attributeContext.getPropertyMapping().getName() );
    final Member member = memberResolver.resolveMember( attributeContext );
    log.trace( "    Determined member [{}]", member );
    final Value value = attributeContext.getPropertyMapping().getValue();
    final org.hibernate.type.Type type = value.getType();
    log.trace( "    determined type [name={}, class={}]", type.getName(), type.getClass().getName() );