From: <fab...@us...> - 2011-04-06 16:07:20
|
Revision: 5623 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5623&view=rev Author: fabiomaulo Date: 2011-04-06 16:07:13 +0000 (Wed, 06 Apr 2011) Log Message: ----------- Added classes for Conformist mapping Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj trunk/nhibernate/src/NHibernate.Test/MappingByCode/ModelExplicitDeclarationsHolderMergeTest.cs Added Paths: ----------- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/ClassMapping.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/ComponentMapping.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/JoinedSubclassMapping.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/SubclassMapping.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/UnionSubclassMapping.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/IConformistHoldersProvider.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ExplicitDeclarationsHolder.cs Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/ClassMapping.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/ClassMapping.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/ClassMapping.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -0,0 +1,10 @@ +using NHibernate.Mapping.ByCode.Impl; +using NHibernate.Mapping.ByCode.Impl.CustomizersImpl; + +namespace NHibernate.Mapping.ByCode.Conformist +{ + public class ClassMapping<T> : ClassCustomizer<T> where T : class + { + public ClassMapping() : base(new ExplicitDeclarationsHolder(), new CustomizersHolder()) { } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/ComponentMapping.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/ComponentMapping.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/ComponentMapping.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -0,0 +1,10 @@ +using NHibernate.Mapping.ByCode.Impl; +using NHibernate.Mapping.ByCode.Impl.CustomizersImpl; + +namespace NHibernate.Mapping.ByCode.Conformist +{ + public class ComponentMapping<T> : ComponentCustomizer<T> where T : class + { + public ComponentMapping() : base(new ExplicitDeclarationsHolder(), new CustomizersHolder()) { } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/JoinedSubclassMapping.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/JoinedSubclassMapping.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/JoinedSubclassMapping.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -0,0 +1,10 @@ +using NHibernate.Mapping.ByCode.Impl; +using NHibernate.Mapping.ByCode.Impl.CustomizersImpl; + +namespace NHibernate.Mapping.ByCode.Conformist +{ + public class JoinedSubclassMapping<T> : JoinedSubclassCustomizer<T> where T : class + { + public JoinedSubclassMapping() : base(new ExplicitDeclarationsHolder(), new CustomizersHolder()) { } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/SubclassMapping.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/SubclassMapping.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/SubclassMapping.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -0,0 +1,10 @@ +using NHibernate.Mapping.ByCode.Impl; +using NHibernate.Mapping.ByCode.Impl.CustomizersImpl; + +namespace NHibernate.Mapping.ByCode.Conformist +{ + public class SubclassMapping<T> : SubclassCustomizer<T> where T : class + { + public SubclassMapping() : base(new ExplicitDeclarationsHolder(), new CustomizersHolder()) { } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/UnionSubclassMapping.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/UnionSubclassMapping.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Conformist/UnionSubclassMapping.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -0,0 +1,10 @@ +using NHibernate.Mapping.ByCode.Impl; +using NHibernate.Mapping.ByCode.Impl.CustomizersImpl; + +namespace NHibernate.Mapping.ByCode.Conformist +{ + public class UnionSubclassMapping<T> : UnionSubclassCustomizer<T> where T : class + { + public UnionSubclassMapping() : base(new ExplicitDeclarationsHolder(), new CustomizersHolder()) { } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IConformistHoldersProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IConformistHoldersProvider.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IConformistHoldersProvider.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -0,0 +1,10 @@ +using NHibernate.Mapping.ByCode.Impl; + +namespace NHibernate.Mapping.ByCode +{ + public interface IConformistHoldersProvider + { + ICustomizersHolder CustomizersHolder { get; } + IModelExplicitDeclarationsHolder ExplicitDeclarationsHolder { get; } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs 2011-04-06 15:13:35 UTC (rev 5622) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/ClassCustomizer.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -6,7 +6,7 @@ namespace NHibernate.Mapping.ByCode.Impl.CustomizersImpl { - public class ClassCustomizer<TEntity> : PropertyContainerCustomizer<TEntity>, IClassMapper<TEntity> where TEntity : class + public class ClassCustomizer<TEntity> : PropertyContainerCustomizer<TEntity>, IClassMapper<TEntity>, IConformistHoldersProvider where TEntity : class { private Dictionary<string, IJoinMapper<TEntity>> joinCustomizers; @@ -201,5 +201,15 @@ } #endregion + + ICustomizersHolder IConformistHoldersProvider.CustomizersHolder + { + get { return CustomizersHolder; } + } + + IModelExplicitDeclarationsHolder IConformistHoldersProvider.ExplicitDeclarationsHolder + { + get { return ExplicitDeclarationsHolder; } + } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs 2011-04-06 15:13:35 UTC (rev 5622) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -20,9 +20,10 @@ PropertyPath = propertyPath; } - protected ICustomizersHolder CustomizersHolder { get; private set; } - protected PropertyPath PropertyPath { get; private set; } - protected IModelExplicitDeclarationsHolder ExplicitDeclarationsHolder + protected internal ICustomizersHolder CustomizersHolder { get; private set; } + protected internal PropertyPath PropertyPath { get; private set; } + + protected internal IModelExplicitDeclarationsHolder ExplicitDeclarationsHolder { get { return explicitDeclarationsHolder; } } Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ExplicitDeclarationsHolder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ExplicitDeclarationsHolder.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ExplicitDeclarationsHolder.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -0,0 +1,255 @@ +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace NHibernate.Mapping.ByCode.Impl +{ + public class ExplicitDeclarationsHolder : 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> 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<SplitDefinition> splitDefinitions = new HashSet<SplitDefinition>(); + 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> 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> 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 IEnumerable<SplitDefinition> SplitDefinitions + { + get { return splitDefinitions; } + } + + public IEnumerable<string> GetSplitGroupsFor(System.Type type) + { + return Enumerable.Empty<string>(); + } + + public string GetSplitGroupFor(MemberInfo member) + { + return null; + } + + 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 AddAsTablePerConcreteClassEntity(System.Type type) + { + tablePerConcreteClassEntities.Add(type); + } + + public void AddAsOneToOneRelation(MemberInfo member) + { + oneToOneRelations.Add(member); + } + + public void AddAsManyToOneRelation(MemberInfo member) + { + manyToOneRelations.Add(member); + } + + public void AddAsManyToManyRelation(MemberInfo member) + { + manyToManyRelations.Add(member); + } + + public void AddAsOneToManyRelation(MemberInfo member) + { + oneToManyRelations.Add(member); + } + + public void AddAsAny(MemberInfo member) + { + any.Add(member); + } + + public void AddAsPoid(MemberInfo member) + { + poids.Add(member); + } + + public void AddAsVersionProperty(MemberInfo member) + { + versionProperties.Add(member); + } + + public void AddAsNaturalId(MemberInfo member) + { + naturalIds.Add(member); + } + + public void AddAsSet(MemberInfo member) + { + sets.Add(member); + } + + public void AddAsBag(MemberInfo member) + { + bags.Add(member); + } + + public void AddAsIdBag(MemberInfo member) + { + idBags.Add(member); + } + + public void AddAsList(MemberInfo member) + { + lists.Add(member); + } + + public void AddAsArray(MemberInfo member) + { + arrays.Add(member); + } + + public void AddAsMap(MemberInfo member) + { + dictionaries.Add(member); + } + + public void AddAsProperty(MemberInfo member) + { + properties.Add(member); + } + + public void AddAsPropertySplit(System.Type propertyContainer, string splitGroupId, MemberInfo member) + { + splitDefinitions.Add(new SplitDefinition(propertyContainer, splitGroupId, member)); + } + + #endregion + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2011-04-06 15:13:35 UTC (rev 5622) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2011-04-06 16:07:13 UTC (rev 5623) @@ -280,6 +280,11 @@ <Compile Include="Mapping\ByCode\CascadeExtensions.cs" /> <Compile Include="Mapping\ByCode\CollectionFetchMode.cs" /> <Compile Include="Mapping\ByCode\CollectionLazy.cs" /> + <Compile Include="Mapping\ByCode\Conformist\ClassMapping.cs" /> + <Compile Include="Mapping\ByCode\Conformist\ComponentMapping.cs" /> + <Compile Include="Mapping\ByCode\Conformist\JoinedSubclassMapping.cs" /> + <Compile Include="Mapping\ByCode\Conformist\SubclassMapping.cs" /> + <Compile Include="Mapping\ByCode\Conformist\UnionSubclassMapping.cs" /> <Compile Include="Mapping\ByCode\ExplicitlyDeclaredModel.cs" /> <Compile Include="Mapping\ByCode\FakeModelExplicitDeclarationsHolder.cs" /> <Compile Include="Mapping\ByCode\FetchKind.cs" /> @@ -299,6 +304,7 @@ <Compile Include="Mapping\ByCode\IComponentMapKeyMapper.cs" /> <Compile Include="Mapping\ByCode\IComponentMapper.cs" /> <Compile Include="Mapping\ByCode\IComponentParentMapper.cs" /> + <Compile Include="Mapping\ByCode\IConformistHoldersProvider.cs" /> <Compile Include="Mapping\ByCode\IDiscriminatorMapper.cs" /> <Compile Include="Mapping\ByCode\IElementMapper.cs" /> <Compile Include="Mapping\ByCode\IEntityAttributesMapper.cs" /> @@ -369,6 +375,7 @@ <Compile Include="Mapping\ByCode\Impl\DefaultCandidatePersistentMembersProvider.cs" /> <Compile Include="Mapping\ByCode\Impl\DiscriminatorMapper.cs" /> <Compile Include="Mapping\ByCode\Impl\ElementMapper.cs" /> + <Compile Include="Mapping\ByCode\Impl\ExplicitDeclarationsHolder.cs" /> <Compile Include="Mapping\ByCode\Impl\FilterMapper.cs" /> <Compile Include="Mapping\ByCode\Impl\GeneratorMapper.cs" /> <Compile Include="Mapping\ByCode\Generators.cs" /> Modified: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ModelExplicitDeclarationsHolderMergeTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ModelExplicitDeclarationsHolderMergeTest.cs 2011-04-06 15:13:35 UTC (rev 5622) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ModelExplicitDeclarationsHolderMergeTest.cs 2011-04-06 16:07:13 UTC (rev 5623) @@ -1,7 +1,6 @@ -using System.Collections.Generic; -using System.Linq; using System.Reflection; using NHibernate.Mapping.ByCode; +using NHibernate.Mapping.ByCode.Impl; using NUnit.Framework; using SharpTestsEx; @@ -14,15 +13,15 @@ [Test] public void WhenMergeNullsThenNotThrows() { - Executing.This(() => ((EmptyHolder) null).Merge(new EmptyHolder())).Should().NotThrow(); - Executing.This(() => (new EmptyHolder()).Merge(null)).Should().NotThrow(); + Executing.This(() => ((ExplicitDeclarationsHolder) null).Merge(new ExplicitDeclarationsHolder())).Should().NotThrow(); + Executing.This(() => (new ExplicitDeclarationsHolder()).Merge(null)).Should().NotThrow(); } [Test] public void MergeSplitDefinitions() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsPropertySplit(typeof (MyClass), "foo", property); destination.Merge(source); @@ -32,8 +31,8 @@ [Test] public void MergeProperties() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsProperty(property); destination.Merge(source); @@ -43,8 +42,8 @@ [Test] public void MergeDictionaries() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsMap(property); destination.Merge(source); @@ -54,8 +53,8 @@ [Test] public void MergeArrays() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsArray(property); destination.Merge(source); @@ -65,8 +64,8 @@ [Test] public void MergeLists() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsList(property); destination.Merge(source); @@ -76,8 +75,8 @@ [Test] public void MergeIdBags() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsIdBag(property); destination.Merge(source); @@ -87,8 +86,8 @@ [Test] public void MergeBags() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsBag(property); destination.Merge(source); @@ -98,8 +97,8 @@ [Test] public void MergeSets() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsSet(property); destination.Merge(source); @@ -109,8 +108,8 @@ [Test] public void MergeNaturalIds() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsNaturalId(property); destination.Merge(source); @@ -120,8 +119,8 @@ [Test] public void MergeVersionProperties() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsVersionProperty(property); destination.Merge(source); @@ -131,8 +130,8 @@ [Test] public void MergePoids() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsPoid(property); destination.Merge(source); @@ -142,8 +141,8 @@ [Test] public void MergeAny() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsAny(property); destination.Merge(source); @@ -153,8 +152,8 @@ [Test] public void MergeOneToManyRelations() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsOneToManyRelation(property); destination.Merge(source); @@ -164,8 +163,8 @@ [Test] public void MergeManyToManyRelations() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsManyToManyRelation(property); destination.Merge(source); @@ -175,8 +174,8 @@ [Test] public void MergeManyToOneRelations() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsManyToOneRelation(property); destination.Merge(source); @@ -186,8 +185,8 @@ [Test] public void MergeOneToOneRelations() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsOneToOneRelation(property); destination.Merge(source); @@ -197,8 +196,8 @@ [Test] public void MergeTablePerConcreteClassEntities() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsTablePerConcreteClassEntity(typeof (MyClass)); destination.Merge(source); @@ -208,8 +207,8 @@ [Test] public void MergeTablePerClassHierarchyEntities() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsTablePerClassHierarchyEntity(typeof (MyClass)); destination.Merge(source); @@ -219,8 +218,8 @@ [Test] public void MergeTablePerClassEntities() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsTablePerClassEntity(typeof (MyClass)); destination.Merge(source); @@ -230,8 +229,8 @@ [Test] public void MergeComponents() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsComponent(typeof (MyClass)); destination.Merge(source); @@ -241,267 +240,14 @@ [Test] public void MergeRootEntities() { - var destination = new EmptyHolder(); - var source = new EmptyHolder(); + var destination = new ExplicitDeclarationsHolder(); + var source = new ExplicitDeclarationsHolder(); source.AddAsRootEntity(typeof (MyClass)); destination.Merge(source); destination.RootEntities.Should().Have.Count.EqualTo(1); } - #region Nested type: EmptyHolder - - public class EmptyHolder : 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> 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<SplitDefinition> splitDefinitions = new HashSet<SplitDefinition>(); - 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> 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> 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 IEnumerable<SplitDefinition> SplitDefinitions - { - get { return splitDefinitions; } - } - - public IEnumerable<string> GetSplitGroupsFor(System.Type type) - { - return Enumerable.Empty<string>(); - } - - public string GetSplitGroupFor(MemberInfo member) - { - return null; - } - - 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 AddAsTablePerConcreteClassEntity(System.Type type) - { - tablePerConcreteClassEntities.Add(type); - } - - public void AddAsOneToOneRelation(MemberInfo member) - { - oneToOneRelations.Add(member); - } - - public void AddAsManyToOneRelation(MemberInfo member) - { - manyToOneRelations.Add(member); - } - - public void AddAsManyToManyRelation(MemberInfo member) - { - manyToManyRelations.Add(member); - } - - public void AddAsOneToManyRelation(MemberInfo member) - { - oneToManyRelations.Add(member); - } - - public void AddAsAny(MemberInfo member) - { - any.Add(member); - } - - public void AddAsPoid(MemberInfo member) - { - poids.Add(member); - } - - public void AddAsVersionProperty(MemberInfo member) - { - versionProperties.Add(member); - } - - public void AddAsNaturalId(MemberInfo member) - { - naturalIds.Add(member); - } - - public void AddAsSet(MemberInfo member) - { - sets.Add(member); - } - - public void AddAsBag(MemberInfo member) - { - bags.Add(member); - } - - public void AddAsIdBag(MemberInfo member) - { - idBags.Add(member); - } - - public void AddAsList(MemberInfo member) - { - lists.Add(member); - } - - public void AddAsArray(MemberInfo member) - { - arrays.Add(member); - } - - public void AddAsMap(MemberInfo member) - { - dictionaries.Add(member); - } - - public void AddAsProperty(MemberInfo member) - { - properties.Add(member); - } - - public void AddAsPropertySplit(System.Type propertyContainer, string splitGroupId, MemberInfo member) - { - splitDefinitions.Add(new SplitDefinition(propertyContainer, splitGroupId, member)); - } - - #endregion - } - - #endregion - #region Nested type: MyClass private class MyClass This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |