From: <fab...@us...> - 2008-09-18 14:05:51
|
Revision: 3766 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3766&view=rev Author: fabiomaulo Date: 2008-09-18 21:06:00 +0000 (Thu, 18 Sep 2008) Log Message: ----------- EntityNames recognitions inside a hbm file with default namespace Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/MappingsQueueEntry.cs trunk/nhibernate/src/NHibernate.Test/Extendshbm/ExtendsFixture.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/MappingsQueueEntry.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingsQueueEntry.cs 2008-09-18 20:29:55 UTC (rev 3765) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingsQueueEntry.cs 2008-09-18 21:06:00 UTC (rev 3766) @@ -1,7 +1,5 @@ -using Iesi.Collections; -using NHibernate.Util; +using System.Collections.Generic; using Iesi.Collections.Generic; -using System.Collections.Generic; namespace NHibernate.Cfg { @@ -10,17 +8,16 @@ /// </summary> public class MappingsQueueEntry { + private readonly HashedSet<string> containedClassNames; private readonly NamedXmlDocument document; - private readonly ISet<string> requiredClassNames; - private readonly ISet<string> containedClassNames; + private readonly HashedSet<string> requiredClassNames; public MappingsQueueEntry(NamedXmlDocument document, IEnumerable<ClassExtractor.ClassEntry> classEntries) { this.document = document; containedClassNames = GetClassNames(classEntries); - requiredClassNames = GetExtendsNames(classEntries); - requiredClassNames.RemoveAll(containedClassNames); + requiredClassNames = GetRequiredClassNames(classEntries, containedClassNames); } public NamedXmlDocument Document @@ -28,8 +25,25 @@ get { return document; } } - private static ISet<string> GetClassNames(IEnumerable<ClassExtractor.ClassEntry> classEntries) + /// <summary> + /// Gets the names of all entities outside this resource + /// needed by the classes in this resource. + /// </summary> + public ICollection<string> RequiredClassNames { + get { return requiredClassNames; } + } + + /// <summary> + /// Gets the names of all entities in this resource + /// </summary> + public ICollection<string> ContainedClassNames + { + get { return containedClassNames; } + } + + private static HashedSet<string> GetClassNames(IEnumerable<ClassExtractor.ClassEntry> classEntries) + { HashedSet<string> result = new HashedSet<string>(); foreach (ClassExtractor.ClassEntry ce in classEntries) @@ -47,13 +61,14 @@ return result; } - private static ISet<string> GetExtendsNames(IEnumerable<ClassExtractor.ClassEntry> classEntries) + private static HashedSet<string> GetRequiredClassNames(IEnumerable<ClassExtractor.ClassEntry> classEntries, + ICollection<string> containedNames) { HashedSet<string> result = new HashedSet<string>(); foreach (ClassExtractor.ClassEntry ce in classEntries) { - if (ce.FullExtends != null) + if (ce.ExtendsEntityName != null && !containedNames.Contains(ce.FullExtends.Type) && !containedNames.Contains(ce.ExtendsEntityName)) { result.Add(ce.FullExtends.Type); } @@ -61,20 +76,5 @@ return result; } - - /// <summary> - /// Gets the names of all classes outside this resource - /// needed by the classes in this resource. - /// </summary> - /// <returns>An <see cref="ISet"/> of <see cref="AssemblyQualifiedTypeName" /></returns> - public ICollection<string> RequiredClassNames - { - get { return requiredClassNames; } - } - - public ICollection<string> ContainedClassNames - { - get { return containedClassNames; } - } } -} +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/Extendshbm/ExtendsFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Extendshbm/ExtendsFixture.cs 2008-09-18 20:29:55 UTC (rev 3765) +++ trunk/nhibernate/src/NHibernate.Test/Extendshbm/ExtendsFixture.cs 2008-09-18 21:06:00 UTC (rev 3766) @@ -104,7 +104,7 @@ Assert.That(cfg.GetClassMapping("EntityCompany"), Is.Not.Null); } - [Test, Ignore("Not supported yet!")] + [Test] public void EntityNamesWithPackageFailureExpected() { Configuration cfg = new Configuration(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |