From: <fab...@us...> - 2009-12-01 00:19:10
|
Revision: 4880 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4880&view=rev Author: fabiomaulo Date: 2009-12-01 00:18:30 +0000 (Tue, 01 Dec 2009) Log Message: ----------- Preparing other binders refactoring Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmAny.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToOne.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmOneToOne.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmProperty.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmVersion.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmCollectionId.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmDiscriminator.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmElement.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmId.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndex.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToAny.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToMany.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKey.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKeyManyToOne.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKeyProperty.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmListIndex.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToAny.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToMany.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmMapKey.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmMapKeyManyToMany.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/IColumnsMapping.cs trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/IFormulasMapping.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmAny.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmAny.cs 2009-11-30 20:31:06 UTC (rev 4879) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmAny.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -1,8 +1,9 @@ using System; +using System.Collections.Generic; namespace NHibernate.Cfg.MappingSchema { - public partial class HbmAny : AbstractDecoratable, IEntityPropertyMapping + public partial class HbmAny : AbstractDecoratable, IEntityPropertyMapping, IColumnsMapping { #region Implementation of IEntityPropertyMapping @@ -31,5 +32,30 @@ } #endregion + + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + index = index + }; + } + } } } \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmCollectionId.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmCollectionId.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmCollectionId.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,32 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmCollectionId: IColumnsMapping + { + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if(string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + length = length, + }; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmDiscriminator.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmDiscriminator.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmDiscriminator.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmDiscriminator: IColumnsMapping, IFormulasMapping + { + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get + { + if(Item as HbmColumn != null) + { + yield return (HbmColumn)Item; + } + else if (string.IsNullOrEmpty(column)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column, + length = length, + }; + } + } + } + + #endregion + + #region Implementation of IFormulasMapping + + public IEnumerable<HbmFormula> Formulas + { + get + { + if (Item as HbmFormula != null) + { + yield return (HbmFormula) Item; + } + else if (string.IsNullOrEmpty(formula)) + { + yield break; + } + else + { + yield return new HbmFormula {Text = new[] {formula}}; + } + } + } + + #endregion + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmElement.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmElement.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmElement.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmElement: IColumnsMapping, IFormulasMapping + { + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return Items != null ? Items.OfType<HbmColumn>() : AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column, + length = length, + scale = scale, + precision = precision, + notnull = notnull, + unique = unique, + uniqueSpecified = true, + }; + } + } + + #region Implementation of IFormulasMapping + + public IEnumerable<HbmFormula> Formulas + { + get { return Items != null ? Items.OfType<HbmFormula>() : AsFormulas(); } + } + + private IEnumerable<HbmFormula> AsFormulas() + { + if (string.IsNullOrEmpty(formula)) + { + yield break; + } + else + { + yield return new HbmFormula { Text = new[] { formula } }; + } + } + + #endregion + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmId.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmId.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmId.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,32 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmId: IColumnsMapping + { + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + length = length, + }; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndex.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndex.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndex.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,32 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmIndex: IColumnsMapping + { + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + length = length, + }; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToAny.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToAny.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToAny.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,31 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmIndexManyToAny: IColumnsMapping + { + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + }; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToMany.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToMany.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmIndexManyToMany.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,31 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmIndexManyToMany: IColumnsMapping + { + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + }; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKey.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKey.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKey.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,35 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmKey: IColumnsMapping + { + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + notnull = notnull, + notnullSpecified = notnullSpecified, + unique = unique, + uniqueSpecified = uniqueSpecified, + }; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKeyManyToOne.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKeyManyToOne.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKeyManyToOne.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,32 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmKeyManyToOne: IColumnsMapping + { + + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + }; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKeyProperty.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKeyProperty.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmKeyProperty.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,33 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmKeyProperty: IColumnsMapping + { + + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + length = length, + }; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmListIndex.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmListIndex.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmListIndex.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,29 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmListIndex: IColumnsMapping + { + public IEnumerable<HbmColumn> Columns + { + get + { + if (column != null) + { + yield return column; + } + else if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + }; + } + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToAny.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToAny.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToAny.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,32 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmManyToAny: IColumnsMapping + { + + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + }; + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToMany.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToMany.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToMany.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Linq; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmManyToMany: IColumnsMapping + { + + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return Items != null ? Items.OfType<HbmColumn>() : AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column, + }; + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToOne.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToOne.cs 2009-11-30 20:31:06 UTC (rev 4879) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmManyToOne.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -1,8 +1,10 @@ using System; +using System.Collections.Generic; +using System.Linq; namespace NHibernate.Cfg.MappingSchema { - public partial class HbmManyToOne : AbstractDecoratable, IEntityPropertyMapping + public partial class HbmManyToOne : AbstractDecoratable, IEntityPropertyMapping, IColumnsMapping, IFormulasMapping { #region Implementation of IEntityPropertyMapping @@ -32,5 +34,55 @@ #endregion + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return Items != null ? Items.OfType<HbmColumn>() : AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column, + notnull = notnull, + notnullSpecified = notnullSpecified, + unique = unique, + uniqueSpecified = true, + uniquekey = uniquekey, + index = index + }; + } + } + + #region Implementation of IFormulasMapping + + public IEnumerable<HbmFormula> Formulas + { + get { return Items != null ? Items.OfType<HbmFormula>() : AsFormulas(); } + } + + private IEnumerable<HbmFormula> AsFormulas() + { + if (string.IsNullOrEmpty(formula)) + { + yield break; + } + else + { + yield return new HbmFormula { Text = new[] { formula } }; + } + } + + #endregion } } \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmMapKey.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmMapKey.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmMapKey.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using System.Linq; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmMapKey: IColumnsMapping + { + + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return Items != null ? Items.OfType<HbmColumn>() : AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column, + length = length, + }; + } + } + + #region Implementation of IFormulasMapping + + public IEnumerable<HbmFormula> Formulas + { + get { return Items != null ? Items.OfType<HbmFormula>() : AsFormulas(); } + } + + private IEnumerable<HbmFormula> AsFormulas() + { + if (string.IsNullOrEmpty(formula)) + { + yield break; + } + else + { + yield return new HbmFormula { Text = new[] { formula } }; + } + } + + #endregion + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmMapKeyManyToMany.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmMapKeyManyToMany.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmMapKeyManyToMany.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,54 @@ +using System.Collections.Generic; +using System.Linq; + +namespace NHibernate.Cfg.MappingSchema +{ + public partial class HbmMapKeyManyToMany: IColumnsMapping, IFormulasMapping + { + + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return Items != null ? Items.OfType<HbmColumn>() : AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column, + }; + } + } + + #region Implementation of IFormulasMapping + + public IEnumerable<HbmFormula> Formulas + { + get { return Items != null ? Items.OfType<HbmFormula>() : AsFormulas(); } + } + + private IEnumerable<HbmFormula> AsFormulas() + { + if (string.IsNullOrEmpty(formula)) + { + yield break; + } + else + { + yield return new HbmFormula { Text = new[] { formula } }; + } + } + + #endregion + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmOneToOne.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmOneToOne.cs 2009-11-30 20:31:06 UTC (rev 4879) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmOneToOne.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -1,6 +1,8 @@ +using System.Collections.Generic; + namespace NHibernate.Cfg.MappingSchema { - public partial class HbmOneToOne : AbstractDecoratable, IEntityPropertyMapping + public partial class HbmOneToOne : AbstractDecoratable, IEntityPropertyMapping, IFormulasMapping { #region Implementation of IEntityPropertyMapping @@ -30,5 +32,26 @@ #endregion + #region Implementation of IFormulasMapping + + public IEnumerable<HbmFormula> Formulas + { + get { return formula ?? AsFormulas(); } + } + + private IEnumerable<HbmFormula> AsFormulas() + { + if (string.IsNullOrEmpty(formula1)) + { + yield break; + } + else + { + yield return new HbmFormula { Text = new[] { formula1 } }; + } + } + + #endregion + } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmProperty.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmProperty.cs 2009-11-30 20:31:06 UTC (rev 4879) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmProperty.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -1,6 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Linq; + namespace NHibernate.Cfg.MappingSchema { - public partial class HbmProperty : AbstractDecoratable, IEntityPropertyMapping + public partial class HbmProperty : AbstractDecoratable, IEntityPropertyMapping, IColumnsMapping, IFormulasMapping { #region Implementation of IEntityPropertyMapping @@ -29,5 +33,59 @@ } #endregion + + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return Items != null ? Items.OfType<HbmColumn>() : AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if(string.IsNullOrEmpty(column)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column, + length = length, + scale = scale, + precision = precision, + notnull = notnull, + notnullSpecified = notnullSpecified, + unique = unique, + uniqueSpecified = true, + uniquekey = uniquekey, + index = index + }; + } + } + + #region Implementation of IFormulasMapping + + public IEnumerable<HbmFormula> Formulas + { + get { return Items != null ? Items.OfType<HbmFormula>() : AsFormulas(); } + } + + private IEnumerable<HbmFormula> AsFormulas() + { + if (string.IsNullOrEmpty(formula)) + { + yield break; + } + else + { + yield return new HbmFormula { Text = new[] { formula } }; + } + } + + #endregion } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmVersion.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmVersion.cs 2009-11-30 20:31:06 UTC (rev 4879) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/HbmVersion.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -1,10 +1,36 @@ +using System.Collections.Generic; + namespace NHibernate.Cfg.MappingSchema { - partial class HbmVersion : AbstractDecoratable + partial class HbmVersion : AbstractDecoratable, IColumnsMapping { protected override HbmMeta[] Metadatas { get { return meta ?? new HbmMeta[0]; } } + + #region Implementation of IColumnsMapping + + public IEnumerable<HbmColumn> Columns + { + get { return column ?? AsColumns(); } + } + + #endregion + + private IEnumerable<HbmColumn> AsColumns() + { + if (string.IsNullOrEmpty(column1)) + { + yield break; + } + else + { + yield return new HbmColumn + { + name = column1, + }; + } + } } } \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/IColumnsMapping.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/IColumnsMapping.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/IColumnsMapping.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,12 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + /// <summary> + /// Implemented by any mapping elemes supports simple and/or multicolumn mapping. + /// </summary> + public interface IColumnsMapping + { + IEnumerable<HbmColumn> Columns { get; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/IFormulasMapping.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/IFormulasMapping.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/IFormulasMapping.cs 2009-12-01 00:18:30 UTC (rev 4880) @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace NHibernate.Cfg.MappingSchema +{ + public interface IFormulasMapping + { + IEnumerable<HbmFormula> Formulas { get; } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-11-30 20:31:06 UTC (rev 4879) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-12-01 00:18:30 UTC (rev 4880) @@ -497,16 +497,31 @@ <Compile Include="Cfg\MappingSchema\HbmAny.cs" /> <Compile Include="Cfg\MappingSchema\HbmArray.cs" /> <Compile Include="Cfg\MappingSchema\HbmBag.cs" /> + <Compile Include="Cfg\MappingSchema\HbmCollectionId.cs" /> <Compile Include="Cfg\MappingSchema\HbmComponent.cs" /> <Compile Include="Cfg\MappingSchema\HbmDefinition.cs" /> + <Compile Include="Cfg\MappingSchema\HbmDiscriminator.cs" /> <Compile Include="Cfg\MappingSchema\HbmDynamicComponent.cs" /> + <Compile Include="Cfg\MappingSchema\HbmElement.cs" /> <Compile Include="Cfg\MappingSchema\HbmExtensions.cs" /> + <Compile Include="Cfg\MappingSchema\HbmId.cs" /> <Compile Include="Cfg\MappingSchema\HbmIdbag.cs" /> + <Compile Include="Cfg\MappingSchema\HbmIndex.cs" /> + <Compile Include="Cfg\MappingSchema\HbmIndexManyToAny.cs" /> + <Compile Include="Cfg\MappingSchema\HbmIndexManyToMany.cs" /> <Compile Include="Cfg\MappingSchema\HbmJoin.cs" /> <Compile Include="Cfg\MappingSchema\HbmJoinedSubclass.cs" /> + <Compile Include="Cfg\MappingSchema\HbmKey.cs" /> + <Compile Include="Cfg\MappingSchema\HbmKeyManyToOne.cs" /> + <Compile Include="Cfg\MappingSchema\HbmKeyProperty.cs" /> <Compile Include="Cfg\MappingSchema\HbmList.cs" /> + <Compile Include="Cfg\MappingSchema\HbmListIndex.cs" /> + <Compile Include="Cfg\MappingSchema\HbmManyToAny.cs" /> + <Compile Include="Cfg\MappingSchema\HbmManyToMany.cs" /> <Compile Include="Cfg\MappingSchema\HbmManyToOne.cs" /> <Compile Include="Cfg\MappingSchema\HbmMap.cs" /> + <Compile Include="Cfg\MappingSchema\HbmMapKey.cs" /> + <Compile Include="Cfg\MappingSchema\HbmMapKeyManyToMany.cs" /> <Compile Include="Cfg\MappingSchema\HbmNaturalId.cs" /> <Compile Include="Cfg\MappingSchema\HbmOneToOne.cs" /> <Compile Include="Cfg\MappingSchema\HbmPrimitiveArray.cs" /> @@ -515,10 +530,12 @@ <Compile Include="Cfg\MappingSchema\HbmSubclass.cs" /> <Compile Include="Cfg\MappingSchema\HbmUnionSubclass.cs" /> <Compile Include="Cfg\MappingSchema\ICollectionPropertyMapping.cs" /> + <Compile Include="Cfg\MappingSchema\IColumnsMapping.cs" /> <Compile Include="Cfg\MappingSchema\IEntityDiscriminableMapping.cs" /> <Compile Include="Cfg\MappingSchema\IEntityMapping.cs" /> <Compile Include="Cfg\MappingSchema\IEntityPropertyMapping.cs" /> <Compile Include="Cfg\MappingSchema\IEntitySqlsMapping.cs" /> + <Compile Include="Cfg\MappingSchema\IFormulasMapping.cs" /> <Compile Include="Cfg\MappingSchema\IPropertiesContainerMapping.cs" /> <Compile Include="Cfg\MappingSchema\IReferencePropertyMapping.cs" /> <Compile Include="Cfg\SchemaAutoAction.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |