|
From: <fab...@us...> - 2011-04-01 17:11:15
|
Revision: 5572
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5572&view=rev
Author: fabiomaulo
Date: 2011-04-01 17:11:05 +0000 (Fri, 01 Apr 2011)
Log Message:
-----------
Initial upload mapping by code
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/NHibernate.csproj
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate/Mapping/ByCode/
trunk/nhibernate/src/NHibernate/Mapping/ByCode/CacheInclude.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/CacheUsage.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Cascade.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/CascadeExtensions.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/CollectionFetchMode.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/CollectionLazy.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ExplicitlyDeclaredModel.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/FakeModelExplicitDeclarationsHolder.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/FetchMode.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ForClass.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IAccessorPropertyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IAnyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IBagPropertiesMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICacheMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IClassMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionElementRelation.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionPropertiesMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionSqlsMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IColumnMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IColumnsMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentElementMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentMapKeyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentParentMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IDiscriminatorMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IElementMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntityAttributesMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntityPropertyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntitySqlsMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IFilterMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGenerator.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGeneratorDef.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGeneratorMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IIdMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IJoinedSubclassMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IKeyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IListIndexMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IListPropertiesMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IManyToManyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IManyToOneMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IMapKeyManyToManyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IMapKeyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IMapKeyRelation.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IMapPropertiesMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IModelExplicitDeclarationsHolder.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IModelInspector.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/INaturalIdMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IOneToManyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IOneToOneMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IPlainPropertyContainerMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IPropertyContainerMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IPropertyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ISetPropertiesMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ISubclassMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IUnionSubclassMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/IVersionMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractBasePropertyContainerMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractPropertyContainerMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AccessorPropertyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AnyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/BagMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CacheMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CascadeConverter.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CollectionElementRelation.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ColumnMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ComponentElementMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ComponentMapKeyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ComponentMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ComponentNestedElementMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ComponentParentMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersHolder.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/BagPropertiesCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/CollectionElementCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/CollectionElementRelationCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/CollectionKeyCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/CollectionPropertiesCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ComponentCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ComponentElementCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinedSubclassKeyCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ListPropertiesCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ManyToManyCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/MapKeyComponentCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/MapKeyCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/MapKeyManyToManyCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/MapKeyRelationCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/MapPropertiesCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/OneToManyCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SetPropertiesCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/SubclassCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/UnionSubclassCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/DefaultCandidatePersistentMembersProvider.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/DiscriminatorMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ElementMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/FilterMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/GeneratorMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/Generators.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ICandidatePersistentMembersProvider.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ICustomizersHolder.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/IdMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/KeyManyToOneMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/KeyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/KeyPropertyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ListIndexMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ListMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ManyToManyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ManyToOneMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/MapKeyManyToManyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/MapKeyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/MapKeyRelation.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/MapMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/MapperEventsHandlersDefinitions.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/NaturalIdMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/NoMemberPropertyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/OneToManyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/OneToOneMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/PropertyMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/PropertyPath.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/PropertyPathExtensions.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/SetMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/TypeNameUtil.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/VersionMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Lazy.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/ModelMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/NotFoundMode.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/SchemaAction.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/TypeExtensions.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/VersionGeneration.cs
trunk/nhibernate/src/NHibernate.Test/MappingByCode/
trunk/nhibernate/src/NHibernate.Test/MappingByCode/BasicMappingOfSimpleClass.cs
trunk/nhibernate/src/NHibernate.Test/MappingByCode/ColumnsNamingConvetions.cs
trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappingOfPrivateMembersOnRootEntity.cs
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/CacheInclude.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/CacheInclude.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/CacheInclude.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,36 @@
+using NHibernate.Cfg.MappingSchema;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public abstract class CacheInclude
+ {
+ public static CacheInclude All = new AllCacheInclude();
+ public static CacheInclude NonLazy = new NonLazyCacheInclude();
+
+ public abstract HbmCacheInclude ToHbm();
+
+ #region Nested type: AllCacheInclude
+
+ public class AllCacheInclude : CacheInclude
+ {
+ public override HbmCacheInclude ToHbm()
+ {
+ return HbmCacheInclude.All;
+ }
+ }
+
+ #endregion
+
+ #region Nested type: NonLazyCacheInclude
+
+ public class NonLazyCacheInclude : CacheInclude
+ {
+ public override HbmCacheInclude ToHbm()
+ {
+ return HbmCacheInclude.NonLazy;
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/CacheUsage.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/CacheUsage.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/CacheUsage.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,62 @@
+using NHibernate.Cfg.MappingSchema;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public abstract class CacheUsage
+ {
+ public static CacheUsage ReadOnly = new ReadOnlyUsage();
+ public static CacheUsage ReadWrite = new ReadWriteUsage();
+ public static CacheUsage NonstrictReadWrite = new NonstrictReadWriteUsage();
+ public static CacheUsage Transactional = new TransactionalUsage();
+
+ public abstract HbmCacheUsage ToHbm();
+
+ #region Nested type: NonstrictReadWriteUsage
+
+ private class NonstrictReadWriteUsage : CacheUsage
+ {
+ public override HbmCacheUsage ToHbm()
+ {
+ return HbmCacheUsage.NonstrictReadWrite;
+ }
+ }
+
+ #endregion
+
+ #region Nested type: ReadOnlyUsage
+
+ private class ReadOnlyUsage : CacheUsage
+ {
+ public override HbmCacheUsage ToHbm()
+ {
+ return HbmCacheUsage.ReadOnly;
+ }
+ }
+
+ #endregion
+
+ #region Nested type: ReadWriteUsage
+
+ private class ReadWriteUsage : CacheUsage
+ {
+ public override HbmCacheUsage ToHbm()
+ {
+ return HbmCacheUsage.ReadWrite;
+ }
+ }
+
+ #endregion
+
+ #region Nested type: TransactionalUsage
+
+ private class TransactionalUsage : CacheUsage
+ {
+ public override HbmCacheUsage ToHbm()
+ {
+ return HbmCacheUsage.Transactional;
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Cascade.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Cascade.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Cascade.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,27 @@
+using System;
+
+namespace NHibernate.Mapping.ByCode
+{
+ /// <summary>
+ /// Defines behavior of soft-cascade actions.
+ /// </summary>
+ /// <remarks>
+ /// To check the content or to include/exclude values, from cascade, is strongly recommanded the usage of extensions methods defined in <see cref="CascadeExtensions"/>
+ /// </remarks>
+ /// <seealso cref="CascadeExtensions.Has"/>
+ /// <seealso cref="CascadeExtensions.Include"/>
+ /// <seealso cref="CascadeExtensions.Exclude"/>
+ [Flags]
+ public enum Cascade
+ {
+ None = 0,
+ Persist = 2,
+ Refresh = 4,
+ Merge = 8,
+ Remove = 16,
+ Detach = 32,
+ ReAttach = 64,
+ DeleteOrphans = 128,
+ All = 256,
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/CascadeExtensions.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/CascadeExtensions.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/CascadeExtensions.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,40 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public static class CascadeExtensions
+ {
+ private const Cascade AnyButOrphans = Cascade.Persist | Cascade.Refresh | Cascade.Merge | Cascade.Remove | Cascade.Detach | Cascade.ReAttach;
+
+ public static bool Has(this Cascade source, Cascade value)
+ {
+ return (source & value) == value;
+ }
+
+ public static Cascade Include(this Cascade source, Cascade value)
+ {
+ return Cleanup(source | value);
+ }
+
+ private static Cascade Cleanup(Cascade cascade)
+ {
+ bool hasAll = cascade.Has(Cascade.All) || cascade.Has(AnyButOrphans);
+ if (hasAll && cascade.Has(Cascade.DeleteOrphans))
+ {
+ return Cascade.All | Cascade.DeleteOrphans;
+ }
+ if (hasAll)
+ {
+ return Cascade.All;
+ }
+ return cascade;
+ }
+
+ public static Cascade Exclude(this Cascade source, Cascade value)
+ {
+ if (source.Has(Cascade.All) && !value.Has(Cascade.All))
+ {
+ return Cleanup(((source & ~Cascade.All) | AnyButOrphans) & ~value);
+ }
+ return Cleanup(source & ~value);
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/CollectionFetchMode.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/CollectionFetchMode.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/CollectionFetchMode.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,49 @@
+using NHibernate.Cfg.MappingSchema;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public abstract class CollectionFetchMode
+ {
+ public static CollectionFetchMode Select = new SelectFetchMode();
+ public static CollectionFetchMode Join = new JoinFetchMode();
+ public static CollectionFetchMode Subselect = new SubselectFetchMode();
+
+ public abstract HbmCollectionFetchMode ToHbm();
+
+ #region Nested type: JoinFetchMode
+
+ private class JoinFetchMode : CollectionFetchMode
+ {
+ public override HbmCollectionFetchMode ToHbm()
+ {
+ return HbmCollectionFetchMode.Join;
+ }
+ }
+
+ #endregion
+
+ #region Nested type: SelectFetchMode
+
+ private class SelectFetchMode : CollectionFetchMode
+ {
+ public override HbmCollectionFetchMode ToHbm()
+ {
+ return HbmCollectionFetchMode.Select;
+ }
+ }
+
+ #endregion
+
+ #region Nested type: SubselectFetchMode
+
+ private class SubselectFetchMode : CollectionFetchMode
+ {
+ public override HbmCollectionFetchMode ToHbm()
+ {
+ return HbmCollectionFetchMode.Subselect;
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/CollectionLazy.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/CollectionLazy.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/CollectionLazy.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,9 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public enum CollectionLazy
+ {
+ Lazy,
+ NoLazy,
+ Extra
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/ExplicitlyDeclaredModel.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/ExplicitlyDeclaredModel.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/ExplicitlyDeclaredModel.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,383 @@
+using System.Collections.Generic;
+using System.Reflection;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public class ExplicitlyDeclaredModel : IModelInspector, IModelExplicitDeclarationsHolder
+ {
+ private readonly HashSet<MemberInfo> any = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> arrays = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> bags = new HashSet<MemberInfo>();
+ private readonly HashSet<System.Type> components = new HashSet<System.Type>();
+ private readonly HashSet<MemberInfo> dictionaries = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> idBags = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> lists = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> manyToManyRelations = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> manyToOneRelations = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> naturalIds = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> oneToManyRelations = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> oneToOneRelations = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> persistentProperties = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> poids = new HashSet<MemberInfo>();
+ private readonly HashSet<MemberInfo> properties = new HashSet<MemberInfo>();
+ private readonly HashSet<System.Type> rootEntities = new HashSet<System.Type>();
+ private readonly HashSet<MemberInfo> sets = new HashSet<MemberInfo>();
+ private readonly HashSet<System.Type> tablePerClassEntities = new HashSet<System.Type>();
+ private readonly HashSet<System.Type> tablePerClassHierarchyEntities = new HashSet<System.Type>();
+ private readonly HashSet<System.Type> tablePerClassHierarchyJoinEntities = new HashSet<System.Type>();
+ private readonly HashSet<System.Type> tablePerConcreteClassEntities = new HashSet<System.Type>();
+ private readonly HashSet<MemberInfo> versionProperties = new HashSet<MemberInfo>();
+
+ #region IModelExplicitDeclarationsHolder Members
+
+ public IEnumerable<System.Type> RootEntities
+ {
+ get { return rootEntities; }
+ }
+
+ public IEnumerable<System.Type> Components
+ {
+ get { return components; }
+ }
+
+ public IEnumerable<System.Type> TablePerClassEntities
+ {
+ get { return tablePerClassEntities; }
+ }
+
+ public IEnumerable<System.Type> TablePerClassHierarchyEntities
+ {
+ get { return tablePerClassHierarchyEntities; }
+ }
+
+ public IEnumerable<System.Type> TablePerClassHierarchyJoinEntities
+ {
+ get { return tablePerClassHierarchyJoinEntities; }
+ }
+
+ public IEnumerable<System.Type> TablePerConcreteClassEntities
+ {
+ get { return tablePerConcreteClassEntities; }
+ }
+
+ public IEnumerable<MemberInfo> OneToOneRelations
+ {
+ get { return oneToOneRelations; }
+ }
+
+ public IEnumerable<MemberInfo> ManyToOneRelations
+ {
+ get { return manyToOneRelations; }
+ }
+
+ public IEnumerable<MemberInfo> ManyToManyRelations
+ {
+ get { return manyToManyRelations; }
+ }
+
+ public IEnumerable<MemberInfo> OneToManyRelations
+ {
+ get { return oneToManyRelations; }
+ }
+
+ public IEnumerable<MemberInfo> Any
+ {
+ get { return any; }
+ }
+
+ public IEnumerable<MemberInfo> Poids
+ {
+ get { return poids; }
+ }
+
+ public IEnumerable<MemberInfo> VersionProperties
+ {
+ get { return versionProperties; }
+ }
+
+ public IEnumerable<MemberInfo> NaturalIds
+ {
+ get { return naturalIds; }
+ }
+
+ public IEnumerable<MemberInfo> Sets
+ {
+ get { return sets; }
+ }
+
+ public IEnumerable<MemberInfo> Bags
+ {
+ get { return bags; }
+ }
+
+ public IEnumerable<MemberInfo> IdBags
+ {
+ get { return idBags; }
+ }
+
+ public IEnumerable<MemberInfo> Lists
+ {
+ get { return lists; }
+ }
+
+ public IEnumerable<MemberInfo> Arrays
+ {
+ get { return arrays; }
+ }
+
+ public IEnumerable<MemberInfo> Dictionaries
+ {
+ get { return dictionaries; }
+ }
+
+ public IEnumerable<MemberInfo> Properties
+ {
+ get { return properties; }
+ }
+
+ public void AddAsRootEntity(System.Type type)
+ {
+ rootEntities.Add(type);
+ }
+
+ public void AddAsComponent(System.Type type)
+ {
+ components.Add(type);
+ }
+
+ public void AddAsTablePerClassEntity(System.Type type)
+ {
+ tablePerClassEntities.Add(type);
+ }
+
+ public void AddAsTablePerClassHierarchyEntity(System.Type type)
+ {
+ tablePerClassHierarchyEntities.Add(type);
+ }
+
+ public void AddAsTablePerClassHierarchyJoinEntity(System.Type type)
+ {
+ tablePerClassHierarchyJoinEntities.Add(type);
+ }
+
+ public void AddAsTablePerConcreteClassEntity(System.Type type)
+ {
+ tablePerConcreteClassEntities.Add(type);
+ }
+
+ public void AddAsOneToOneRelation(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ oneToOneRelations.Add(member);
+ }
+
+ public void AddAsManyToOneRelation(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ manyToOneRelations.Add(member);
+ }
+
+ public void AddAsManyToManyRelation(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ manyToManyRelations.Add(member);
+ }
+
+ public void AddAsOneToManyRelation(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ oneToManyRelations.Add(member);
+ }
+
+ public void AddAsAny(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ any.Add(member);
+ }
+
+ public void AddAsPoid(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ poids.Add(member);
+ }
+
+ public void AddAsVersionProperty(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ versionProperties.Add(member);
+ }
+
+ public void AddAsNaturalId(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ naturalIds.Add(member);
+ }
+
+ public void AddAsSet(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ sets.Add(member);
+ }
+
+ public void AddAsBag(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ bags.Add(member);
+ }
+
+ public void AddAsIdBag(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ idBags.Add(member);
+ }
+
+ public void AddAsList(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ lists.Add(member);
+ }
+
+ public void AddAsArray(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ arrays.Add(member);
+ }
+
+ public void AddAsMap(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ dictionaries.Add(member);
+ }
+
+ public void AddAsProperty(MemberInfo member)
+ {
+ persistentProperties.Add(member);
+ properties.Add(member);
+ }
+
+ #endregion
+
+ #region Implementation of IModelInspector
+
+ public bool IsRootEntity(System.Type type)
+ {
+ return rootEntities.Contains(type);
+ }
+
+ public bool IsComponent(System.Type type)
+ {
+ return components.Contains(type);
+ }
+
+ public bool IsEntity(System.Type type)
+ {
+ return rootEntities.Contains(type) ||
+ tablePerClassEntities.Contains(type) ||
+ tablePerClassHierarchyEntities.Contains(type) ||
+ tablePerClassHierarchyJoinEntities.Contains(type) ||
+ tablePerConcreteClassEntities.Contains(type);
+ }
+
+ public bool IsTablePerClass(System.Type type)
+ {
+ return tablePerClassEntities.Contains(type);
+ }
+
+ public bool IsTablePerClassHierarchy(System.Type type)
+ {
+ return tablePerClassHierarchyEntities.Contains(type);
+ }
+
+ public bool IsTablePerClassHierarchyJoin(System.Type type)
+ {
+ return tablePerClassHierarchyJoinEntities.Contains(type);
+ }
+
+ public bool IsTablePerConcreteClass(System.Type type)
+ {
+ return tablePerConcreteClassEntities.Contains(type);
+ }
+
+ public bool IsOneToOne(MemberInfo member)
+ {
+ return oneToOneRelations.Contains(member);
+ }
+
+ public bool IsManyToOne(MemberInfo member)
+ {
+ return manyToOneRelations.Contains(member);
+ }
+
+ public bool IsManyToMany(MemberInfo member)
+ {
+ return manyToManyRelations.Contains(member);
+ }
+
+ public bool IsOneToMany(MemberInfo member)
+ {
+ return oneToManyRelations.Contains(member);
+ }
+
+ public bool IsHeterogeneousAssociation(MemberInfo member)
+ {
+ return any.Contains(member);
+ }
+
+ public bool IsPersistentId(MemberInfo member)
+ {
+ return poids.Contains(member);
+ }
+
+ public bool IsVersion(MemberInfo member)
+ {
+ return versionProperties.Contains(member);
+ }
+
+ public bool IsMemberOfNaturalId(MemberInfo member)
+ {
+ return naturalIds.Contains(member);
+ }
+
+ public bool IsPersistentProperty(MemberInfo member)
+ {
+ return persistentProperties.Contains(member);
+ }
+
+ public bool IsSet(MemberInfo role)
+ {
+ return sets.Contains(role);
+ }
+
+ public bool IsBag(MemberInfo role)
+ {
+ return bags.Contains(role);
+ }
+
+ public bool IsIdBag(MemberInfo role)
+ {
+ return idBags.Contains(role);
+ }
+
+ public bool IsList(MemberInfo role)
+ {
+ return lists.Contains(role);
+ }
+
+ public bool IsArray(MemberInfo role)
+ {
+ return arrays.Contains(role);
+ }
+
+ public bool IsDictionary(MemberInfo role)
+ {
+ return dictionaries.Contains(role);
+ }
+
+ public bool IsProperty(MemberInfo member)
+ {
+ return properties.Contains(member);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/FakeModelExplicitDeclarationsHolder.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/FakeModelExplicitDeclarationsHolder.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/FakeModelExplicitDeclarationsHolder.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,182 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public class FakeModelExplicitDeclarationsHolder : IModelExplicitDeclarationsHolder
+ {
+ private readonly IEnumerable<MemberInfo> any = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> arrays = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> bags = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<System.Type> components = Enumerable.Empty<System.Type>();
+ private readonly IEnumerable<MemberInfo> dictionaries = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> idBags = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> lists = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> manyToManyRelations = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> manyToOneRelations = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> naturalIds = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> oneToManyRelations = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> oneToOneRelations = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> poids = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<MemberInfo> properties = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<System.Type> rootEntities = Enumerable.Empty<System.Type>();
+ private readonly IEnumerable<MemberInfo> sets = Enumerable.Empty<MemberInfo>();
+ private readonly IEnumerable<System.Type> tablePerClassEntities = Enumerable.Empty<System.Type>();
+ private readonly IEnumerable<System.Type> tablePerClassHierarchyEntities = Enumerable.Empty<System.Type>();
+ private readonly IEnumerable<System.Type> tablePerClassHierarchyJoinEntities = Enumerable.Empty<System.Type>();
+ private readonly IEnumerable<System.Type> tablePerConcreteClassEntities = Enumerable.Empty<System.Type>();
+ private readonly IEnumerable<MemberInfo> versionProperties = Enumerable.Empty<MemberInfo>();
+
+ #region IModelExplicitDeclarationsHolder Members
+
+ public IEnumerable<System.Type> RootEntities
+ {
+ get { return rootEntities; }
+ }
+
+ public IEnumerable<System.Type> Components
+ {
+ get { return components; }
+ }
+
+ public IEnumerable<System.Type> TablePerClassEntities
+ {
+ get { return tablePerClassEntities; }
+ }
+
+ public IEnumerable<System.Type> TablePerClassHierarchyEntities
+ {
+ get { return tablePerClassHierarchyEntities; }
+ }
+
+ public IEnumerable<System.Type> TablePerClassHierarchyJoinEntities
+ {
+ get { return tablePerClassHierarchyJoinEntities; }
+ }
+
+ public IEnumerable<System.Type> TablePerConcreteClassEntities
+ {
+ get { return tablePerConcreteClassEntities; }
+ }
+
+ public IEnumerable<MemberInfo> OneToOneRelations
+ {
+ get { return oneToOneRelations; }
+ }
+
+ public IEnumerable<MemberInfo> ManyToOneRelations
+ {
+ get { return manyToOneRelations; }
+ }
+
+ public IEnumerable<MemberInfo> ManyToManyRelations
+ {
+ get { return manyToManyRelations; }
+ }
+
+ public IEnumerable<MemberInfo> OneToManyRelations
+ {
+ get { return oneToManyRelations; }
+ }
+
+ public IEnumerable<MemberInfo> Any
+ {
+ get { return any; }
+ }
+
+ public IEnumerable<MemberInfo> Poids
+ {
+ get { return poids; }
+ }
+
+ public IEnumerable<MemberInfo> VersionProperties
+ {
+ get { return versionProperties; }
+ }
+
+ public IEnumerable<MemberInfo> NaturalIds
+ {
+ get { return naturalIds; }
+ }
+
+ public IEnumerable<MemberInfo> Sets
+ {
+ get { return sets; }
+ }
+
+ public IEnumerable<MemberInfo> Bags
+ {
+ get { return bags; }
+ }
+
+ public IEnumerable<MemberInfo> IdBags
+ {
+ get { return idBags; }
+ }
+
+ public IEnumerable<MemberInfo> Lists
+ {
+ get { return lists; }
+ }
+
+ public IEnumerable<MemberInfo> Arrays
+ {
+ get { return arrays; }
+ }
+
+ public IEnumerable<MemberInfo> Dictionaries
+ {
+ get { return dictionaries; }
+ }
+
+ public IEnumerable<MemberInfo> Properties
+ {
+ get { return properties; }
+ }
+
+ public void AddAsRootEntity(System.Type type) {}
+
+ public void AddAsComponent(System.Type type) {}
+
+ public void AddAsTablePerClassEntity(System.Type type) {}
+
+ public void AddAsTablePerClassHierarchyEntity(System.Type type) {}
+
+ public void AddAsTablePerClassHierarchyJoinEntity(System.Type type) {}
+
+ public void AddAsTablePerConcreteClassEntity(System.Type type) {}
+
+ public void AddAsOneToOneRelation(MemberInfo member) {}
+
+ public void AddAsManyToOneRelation(MemberInfo member) {}
+
+ public void AddAsManyToManyRelation(MemberInfo member) {}
+
+ public void AddAsOneToManyRelation(MemberInfo member) {}
+
+ public void AddAsAny(MemberInfo member) {}
+
+ public void AddAsPoid(MemberInfo member) {}
+
+ public void AddAsVersionProperty(MemberInfo member) {}
+
+ public void AddAsNaturalId(MemberInfo member) {}
+
+ public void AddAsSet(MemberInfo member) {}
+
+ public void AddAsBag(MemberInfo member) {}
+
+ public void AddAsIdBag(MemberInfo member) {}
+
+ public void AddAsList(MemberInfo member) {}
+
+ public void AddAsArray(MemberInfo member) {}
+
+ public void AddAsMap(MemberInfo member) {}
+
+ public void AddAsProperty(MemberInfo member) {}
+
+ #endregion
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/FetchMode.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/FetchMode.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/FetchMode.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,36 @@
+using NHibernate.Cfg.MappingSchema;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public abstract class FetchMode
+ {
+ public static FetchMode Select = new SelectFetchMode();
+ public static FetchMode Join = new JoinFetchMode();
+
+ public abstract HbmFetchMode ToHbm();
+
+ #region Nested type: JoinFetchMode
+
+ private class JoinFetchMode : FetchMode
+ {
+ public override HbmFetchMode ToHbm()
+ {
+ return HbmFetchMode.Join;
+ }
+ }
+
+ #endregion
+
+ #region Nested type: SelectFetchMode
+
+ private class SelectFetchMode : FetchMode
+ {
+ public override HbmFetchMode ToHbm()
+ {
+ return HbmFetchMode.Select;
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/ForClass.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/ForClass.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/ForClass.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,30 @@
+using System.Reflection;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public static class ForClass<T>
+ {
+ private const BindingFlags DefaultFlags =
+ BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly;
+
+ public static FieldInfo Field(string fieldName)
+ {
+ if (fieldName == null)
+ {
+ return null;
+ }
+
+ return GetField(typeof(T), fieldName);
+ }
+
+ private static FieldInfo GetField(System.Type type, string fieldName)
+ {
+ if(type == typeof(object) || type == null)
+ {
+ return null;
+ }
+ FieldInfo member = type.GetField(fieldName, DefaultFlags) ?? GetField(type.BaseType, fieldName);
+ return member;
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IAccessorPropertyMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IAccessorPropertyMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IAccessorPropertyMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,17 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public enum Accessor
+ {
+ Property,
+ Field,
+ NoSetter,
+ ReadOnly,
+ None
+ }
+
+ public interface IAccessorPropertyMapper
+ {
+ void Access(Accessor accessor);
+ void Access(System.Type accessorType);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IAnyMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IAnyMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IAnyMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,32 @@
+using System;
+using NHibernate.Type;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IAnyMapper : IEntityPropertyMapper
+ {
+ void MetaType(IType metaType);
+ void MetaType<TMetaType>();
+ void MetaType(System.Type metaType);
+
+ void IdType(IType idType);
+ void IdType<TIdType>();
+ void IdType(System.Type idType);
+
+ void Columns(Action<IColumnMapper> idColumnMapping, Action<IColumnMapper> classColumnMapping);
+
+ /// <summary>
+ /// Add or modify a value-class pair.
+ /// </summary>
+ /// <param name="value">The value of the DB-field dor a given association instance (should override <see cref="object.ToString"/>)</param>
+ /// <param name="entityType">The class associated to the specific <paramref name="value"/>. </param>
+ void MetaValue(object value, System.Type entityType);
+
+
+ void Cascade(Cascade cascadeStyle);
+ void Index(string indexName);
+ void Lazy(bool isLazy);
+ void Update(bool consideredInUpdateQuery);
+ void Insert(bool consideredInInsertQuery);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IBagPropertiesMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IBagPropertiesMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IBagPropertiesMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,6 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IBagPropertiesMapper : ICollectionPropertiesMapper {}
+
+ public interface IBagPropertiesMapper<TEntity, TElement> : ICollectionPropertiesMapper<TEntity, TElement> where TEntity : class {}
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICacheMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICacheMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICacheMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,15 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface ICacheMapper
+ {
+ void Usage(CacheUsage cacheUsage);
+ void Region(string regionName);
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="cacheInclude"></param>
+ /// <remarks>Not supported in NH3.</remarks>
+ void Include(CacheInclude cacheInclude);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IClassMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IClassMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IClassMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,47 @@
+using System;
+using System.Linq.Expressions;
+using System.Reflection;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IClassAttributesMapper : IEntityAttributesMapper, IEntitySqlsMapper
+ {
+ void Id(Action<IIdMapper> idMapper);
+ void Id(MemberInfo idProperty, Action<IIdMapper> idMapper);
+ void Discriminator(Action<IDiscriminatorMapper> discriminatorMapping);
+ void DiscriminatorValue(object value);
+ void Table(string tableName);
+ void Catalog(string catalogName);
+ void Schema(string schemaName);
+ void Mutable(bool isMutable);
+ void Version(MemberInfo versionProperty, Action<IVersionMapper> versionMapping);
+ void NaturalId(Action<INaturalIdMapper> naturalIdMapping);
+ void Cache(Action<ICacheMapper> cacheMapping);
+ void Filter(string filterName, Action<IFilterMapper> filterMapping);
+ void Where(string whereClause);
+ void SchemaAction(SchemaAction action);
+ }
+
+ public interface IClassMapper : IClassAttributesMapper, IPropertyContainerMapper {}
+
+ public interface IClassAttributesMapper<TEntity> : IEntityAttributesMapper, IEntitySqlsMapper where TEntity : class
+ {
+ void Id(Action<IIdMapper> idMapper);
+ void Id<TProperty>(Expression<Func<TEntity, TProperty>> idProperty, Action<IIdMapper> idMapper);
+ void Id(FieldInfo idProperty, Action<IIdMapper> idMapper);
+ void Discriminator(Action<IDiscriminatorMapper> discriminatorMapping);
+ void DiscriminatorValue(object value);
+ void Table(string tableName);
+ void Catalog(string catalogName);
+ void Schema(string schemaName);
+ void Mutable(bool isMutable);
+ void Version<TProperty>(Expression<Func<TEntity, TProperty>> versionProperty, Action<IVersionMapper> versionMapping);
+ void NaturalId(Action<INaturalIdAttributesMapper> naturalIdMapping);
+ void Cache(Action<ICacheMapper> cacheMapping);
+ void Filter(string filterName, Action<IFilterMapper> filterMapping);
+ void Where(string whereClause);
+ void SchemaAction(SchemaAction action);
+ }
+
+ public interface IClassMapper<TEntity> : IClassAttributesMapper<TEntity>, IPropertyContainerMapper<TEntity> where TEntity : class {}
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionElementRelation.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionElementRelation.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionElementRelation.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,20 @@
+using System;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface ICollectionElementRelation
+ {
+ void Element(Action<IElementMapper> mapping);
+ void OneToMany(Action<IOneToManyMapper> mapping);
+ void ManyToMany(Action<IManyToManyMapper> mapping);
+ void Component(Action<IComponentElementMapper> mapping);
+ }
+
+ public interface ICollectionElementRelation<TElement>
+ {
+ void Element(Action<IElementMapper> mapping);
+ void OneToMany(Action<IOneToManyMapper> mapping);
+ void ManyToMany(Action<IManyToManyMapper> mapping);
+ void Component(Action<IComponentElementMapper<TElement>> mapping);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionPropertiesMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionPropertiesMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionPropertiesMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,54 @@
+using System;
+using System.Linq.Expressions;
+using System.Reflection;
+using NHibernate.UserTypes;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface ICollectionPropertiesMapper : IEntityPropertyMapper, ICollectionSqlsMapper
+ {
+ void Inverse(bool value);
+ void Mutable(bool value);
+ void Where(string sqlWhereClause);
+ void BatchSize(int value);
+ void Lazy(CollectionLazy collectionLazy);
+ void Key(Action<IKeyMapper> keyMapping);
+ void OrderBy(MemberInfo property);
+ void OrderBy(string sqlOrderByClause);
+ void Sort();
+ void Sort<TComparer>();
+ void Cascade(Cascade cascadeStyle);
+ //void Type(string namedCollectionType); // TODO: figure out a way to avoid string for embedded namedCollectionType
+ void Type<TCollection>() where TCollection : IUserCollectionType;
+ void Type(System.Type collectionType);
+ void Table(string tableName);
+ void Catalog(string catalogName);
+ void Schema(string schemaName);
+ void Cache(Action<ICacheMapper> cacheMapping);
+ void Filter(string filterName, Action<IFilterMapper> filterMapping);
+ void Fetch(CollectionFetchMode fetchMode);
+ }
+
+ public interface ICollectionPropertiesMapper<TEntity, TElement> : IEntityPropertyMapper, ICollectionSqlsMapper where TEntity : class
+ {
+ void Inverse(bool value);
+ void Mutable(bool value);
+ void Where(string sqlWhereClause);
+ void BatchSize(int value);
+ void Lazy(CollectionLazy collectionLazy);
+ void Key(Action<IKeyMapper<TEntity>> keyMapping);
+ void OrderBy<TProperty>(Expression<Func<TElement, TProperty>> property);
+ void OrderBy(string sqlOrderByClause);
+ void Sort();
+ void Sort<TComparer>();
+ void Cascade(Cascade cascadeStyle);
+ void Type<TCollection>() where TCollection : IUserCollectionType;
+ void Type(System.Type collectionType);
+ void Table(string tableName);
+ void Catalog(string catalogName);
+ void Schema(string schemaName);
+ void Cache(Action<ICacheMapper> cacheMapping);
+ void Filter(string filterName, Action<IFilterMapper> filterMapping);
+ void Fetch(CollectionFetchMode fetchMode);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionSqlsMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionSqlsMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/ICollectionSqlsMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,12 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface ICollectionSqlsMapper
+ {
+ void Loader(string namedQueryReference);
+ void SqlInsert(string sql);
+ void SqlUpdate(string sql);
+ void SqlDelete(string sql);
+ void SqlDeleteAll(string sql);
+ void Subselect(string sql);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IColumnMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IColumnMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IColumnMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,17 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IColumnMapper
+ {
+ void Name(string name);
+ void Length(int length);
+ void Precision(short precision);
+ void Scale(short scale);
+ void NotNullable(bool notnull);
+ void Unique(bool unique);
+ void UniqueKey(string uniquekeyName);
+ void SqlType(string sqltype);
+ void Index(string indexName);
+ void Check(string checkConstraint);
+ void Default(object defaultValue);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IColumnsMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IColumnsMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IColumnsMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,11 @@
+using System;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IColumnsMapper
+ {
+ void Column(Action<IColumnMapper> columnMapper);
+ void Columns(params Action<IColumnMapper>[] columnMapper);
+ void Column(string name);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentElementMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentElementMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentElementMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,26 @@
+using System;
+using System.Linq.Expressions;
+using System.Reflection;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IComponentElementMapper : IComponentAttributesMapper
+ {
+ void Property(MemberInfo property, Action<IPropertyMapper> mapping);
+
+ void Component(MemberInfo property, Action<IComponentElementMapper> mapping);
+
+ void ManyToOne(MemberInfo property, Action<IManyToOneMapper> mapping);
+ }
+
+ public interface IComponentElementMapper<TComponent> : IComponentAttributesMapper<TComponent>
+ {
+ void Property<TProperty>(Expression<Func<TComponent, TProperty>> property, Action<IPropertyMapper> mapping);
+
+ void Component<TNestedComponent>(Expression<Func<TComponent, TNestedComponent>> property,
+ Action<IComponentElementMapper<TNestedComponent>> mapping)
+ where TNestedComponent : class;
+
+ void ManyToOne<TProperty>(Expression<Func<TComponent, TProperty>> property, Action<IManyToOneMapper> mapping) where TProperty : class;
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentMapKeyMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentMapKeyMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentMapKeyMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,20 @@
+using System;
+using System.Linq.Expressions;
+using System.Reflection;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IComponentMapKeyMapper
+ {
+ void Property(MemberInfo property, Action<IPropertyMapper> mapping);
+
+ void ManyToOne(MemberInfo property, Action<IManyToOneMapper> mapping);
+ }
+
+ public interface IComponentMapKeyMapper<TComponent>
+ {
+ void Property<TProperty>(Expression<Func<TComponent, TProperty>> property, Action<IPropertyMapper> mapping);
+
+ void ManyToOne<TProperty>(Expression<Func<TComponent, TProperty>> property, Action<IManyToOneMapper> mapping) where TProperty : class;
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,30 @@
+using System;
+using System.Linq.Expressions;
+using System.Reflection;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IComponentAttributesMapper : IEntityPropertyMapper
+ {
+ void Parent(MemberInfo parent);
+ void Parent(MemberInfo parent, Action<IComponentParentMapper> parentMapping);
+ void Update(bool consideredInUpdateQuery);
+ void Insert(bool consideredInInsertQuery);
+ void Lazy(bool isLazy);
+ void Class(System.Type componentType);
+ }
+
+ public interface IComponentMapper : IComponentAttributesMapper, IPropertyContainerMapper {}
+
+ public interface IComponentAttributesMapper<TComponent> : IEntityPropertyMapper
+ {
+ void Parent<TProperty>(Expression<Func<TComponent, TProperty>> parent) where TProperty : class;
+ void Parent<TProperty>(Expression<Func<TComponent, TProperty>> parent, Action<IComponentParentMapper> parentMapping) where TProperty : class;
+ void Update(bool consideredInUpdateQuery);
+ void Insert(bool consideredInInsertQuery);
+ void Lazy(bool isLazy);
+ void Class<TConcrete>() where TConcrete : TComponent;
+ }
+
+ public interface IComponentMapper<TComponent> : IComponentAttributesMapper<TComponent>, IPropertyContainerMapper<TComponent> where TComponent : class {}
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentParentMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentParentMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IComponentParentMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,4 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IComponentParentMapper : IAccessorPropertyMapper {}
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IDiscriminatorMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IDiscriminatorMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IDiscriminatorMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,20 @@
+using System;
+using NHibernate.Type;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IDiscriminatorMapper
+ {
+ void Column(string column);
+ void Column(Action<IColumnMapper> columnMapper);
+ void Type(IType persistentType);
+ void Type(IDiscriminatorType persistentType);
+ void Type<TPersistentType>() where TPersistentType : IDiscriminatorType;
+ void Type(System.Type persistentType);
+ void Formula(string formula);
+ void Force(bool force);
+ void Insert(bool applyOnApplyOnInsert);
+ void NotNullable(bool isNotNullable);
+ void Length(int length);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IElementMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IElementMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IElementMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,18 @@
+using NHibernate.Type;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IElementMapper : IColumnsMapper
+ {
+ void Type(IType persistentType);
+ void Type<TPersistentType>();
+ void Type<TPersistentType>(object parameters);
+ void Type(System.Type persistentType, object parameters);
+ void Length(int length);
+ void Precision(short precision);
+ void Scale(short scale);
+ void NotNullable(bool notnull);
+ void Unique(bool unique);
+ void Formula(string formula);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntityAttributesMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntityAttributesMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntityAttributesMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,16 @@
+using NHibernate.Persister.Entity;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IEntityAttributesMapper
+ {
+ void EntityName(string value);
+ void Proxy(System.Type proxy);
+ void Lazy(bool value);
+ void DynamicUpdate(bool value);
+ void DynamicInsert(bool value);
+ void BatchSize(int value);
+ void SelectBeforeUpdate(bool value);
+ void Persister<T>() where T : IEntityPersister;
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntityPropertyMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntityPropertyMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntityPropertyMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,7 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IEntityPropertyMapper : IAccessorPropertyMapper
+ {
+ void OptimisticLock(bool takeInConsiderationForOptimisticLock);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntitySqlsMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntitySqlsMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IEntitySqlsMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,11 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IEntitySqlsMapper
+ {
+ void Loader(string namedQueryReference);
+ void SqlInsert(string sql);
+ void SqlUpdate(string sql);
+ void SqlDelete(string sql);
+ void Subselect(string sql);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IFilterMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IFilterMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IFilterMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,7 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IFilterMapper
+ {
+ void Condition(string sqlCondition);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGenerator.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGenerator.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGenerator.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,4 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IGenerator {}
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGeneratorDef.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGeneratorDef.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGeneratorDef.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,8 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IGeneratorDef
+ {
+ string Class { get; }
+ object Params { get; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGeneratorMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGeneratorMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IGeneratorMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,7 @@
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IGeneratorMapper
+ {
+ void Params(object generatorParameters);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IIdMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IIdMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IIdMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,20 @@
+using System;
+using NHibernate.Type;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IIdMapper : IAccessorPropertyMapper
+ {
+ void Generator(IGeneratorDef generator);
+ void Generator(IGeneratorDef generator, Action<IGeneratorMapper> generatorMapping);
+
+ void Type(IIdentifierType persistentType);
+ //void Type<TPersistentType>() where TPersistentType : IIdentifierType;
+ //void Type<TPersistentType>(object parameters) where TPersistentType : IIdentifierType;
+ //void Type(System.System.Type persistentType, object parameters);
+ //void Column(Action<IColumnMapper> columnMapper);
+ //void Columns(params Action<IColumnMapper>[] columnMapper);
+ void Column(string name);
+ void Length(int length);
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IJoinedSubclassMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IJoinedSubclassMapper.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IJoinedSubclassMapper.cs 2011-04-01 17:11:05 UTC (rev 5572)
@@ -0,0 +1,25 @@
+using System;
+
+namespace NHibernate.Mapping.ByCode
+{
+ public interface IJoinedSubclassAttributesMapper : IEntityAttributesMapper, IEntitySqlsMapper
+ {
+ void Table(string tableName);
+ void Catalog(string catalogName);
+ void Schema(string schemaName);
+ void Key(Action<IKeyMapper> keyMapping);
+ void Extends(System.Type baseType);
+ }
+
+ public int...
[truncated message content] |