|
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.
|