From: <fab...@us...> - 2009-12-02 04:57:00
|
Revision: 4890 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4890&view=rev Author: fabiomaulo Date: 2009-12-02 04:56:46 +0000 (Wed, 02 Dec 2009) Log Message: ----------- binders refactoring - removed unused code Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassBinder.cs trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/JoinedSubclassBinder.cs trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ValuePropertyBinder.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassBinder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassBinder.cs 2009-12-02 04:27:58 UTC (rev 4889) +++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ClassBinder.cs 2009-12-02 04:56:46 UTC (rev 4890) @@ -65,7 +65,7 @@ { foreach (var joinedSubclass in joinedSubclasses) { - new JoinedSubclassBinder(this).HandleJoinedSubclass(persistentClass, Serialize(joinedSubclass), joinedSubclass, inheritedMetas); + new JoinedSubclassBinder(this).HandleJoinedSubclass(persistentClass, joinedSubclass, inheritedMetas); } } Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/JoinedSubclassBinder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/JoinedSubclassBinder.cs 2009-12-02 04:27:58 UTC (rev 4889) +++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/JoinedSubclassBinder.cs 2009-12-02 04:56:46 UTC (rev 4890) @@ -21,12 +21,12 @@ public void Bind(XmlNode node, HbmJoinedSubclass joinedSubclassMapping, IDictionary<string, MetaAttribute> inheritedMetas) { PersistentClass superModel = GetSuperclass(node); - HandleJoinedSubclass(superModel, node, joinedSubclassMapping, inheritedMetas); + HandleJoinedSubclass(superModel, joinedSubclassMapping, inheritedMetas); } - public void HandleJoinedSubclass(PersistentClass model, XmlNode subnode, HbmJoinedSubclass joinedSubclassMapping, IDictionary<string, MetaAttribute> inheritedMetas) + public void HandleJoinedSubclass(PersistentClass model, HbmJoinedSubclass joinedSubclassMapping, IDictionary<string, MetaAttribute> inheritedMetas) { - JoinedSubclass subclass = new JoinedSubclass(model); + var subclass = new JoinedSubclass(model); BindClass(joinedSubclassMapping, subclass, inheritedMetas); inheritedMetas = GetMetas(joinedSubclassMapping, inheritedMetas, true); // get meta's from <joined-subclass> @@ -50,12 +50,7 @@ log.InfoFormat("Mapping joined-subclass: {0} -> {1}", subclass.EntityName, subclass.Table.Name); // KEY - XmlNode keyNode = subnode.SelectSingleNode(HbmConstants.nsKey, namespaceManager); - SimpleValue key = new DependantValue(mytable, subclass.Identifier); - subclass.Key = key; - if (keyNode.Attributes["on-delete"] != null) - key.IsCascadeDeleteEnabled = "cascade".Equals(keyNode.Attributes["on-delete"].Value); - BindSimpleValue(keyNode, key, false, subclass.EntityName); + BindKey(subclass, joinedSubclassMapping.key, mytable); subclass.CreatePrimaryKey(dialect); @@ -77,5 +72,15 @@ mappings.AddClass(subclass); } + private void BindKey(JoinedSubclass subclass, HbmKey keyMapping, Table mytable) + { + // TODO : property-ref ?? + SimpleValue key = new DependantValue(mytable, subclass.Identifier); + subclass.Key = key; + key.IsCascadeDeleteEnabled = keyMapping.ondelete == HbmOndelete.Cascade; + key.ForeignKeyName = keyMapping.foreignkey; + + new ValuePropertyBinder(key, Mappings).BindSimpleValue(keyMapping, subclass.EntityName, false); + } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ValuePropertyBinder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ValuePropertyBinder.cs 2009-12-02 04:27:58 UTC (rev 4889) +++ trunk/nhibernate/src/NHibernate/Cfg/XmlHbmBinding/ValuePropertyBinder.cs 2009-12-02 04:56:46 UTC (rev 4890) @@ -51,5 +51,19 @@ }); } } + + public void BindSimpleValue(HbmKey propertyMapping, string propertyPath, bool isNullable) + { + new ColumnsBinder(value, Mappings).Bind(propertyMapping.Columns, isNullable, + () => + new HbmColumn + { + name = mappings.NamingStrategy.PropertyToColumnName(propertyPath), + notnull = propertyMapping.notnull, + notnullSpecified = propertyMapping.notnullSpecified, + unique = propertyMapping.unique, + uniqueSpecified = propertyMapping.uniqueSpecified, + }); + } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |