public virtual void Contribute(NHibernate.Mapping.ByCode.ModelMapper mapper)
 {
     var maptypes = GetType().GetNestedTypes().Where(t =>
         t.IsAssignableToGenericType(typeof (ClassMapping<>)) ||
         t.IsAssignableToGenericType(typeof (SubclassMapping<>)) ||
         t.IsAssignableToGenericType(typeof (JoinedSubclassMapping<>)) ||
         t.IsAssignableToGenericType(typeof (UnionSubclassMapping<>))
     ).ToArray();
     if (maptypes.Any())
         mapper.AddMappings(maptypes);
 }