From: <fab...@us...> - 2010-07-28 20:11:37
|
Revision: 5070 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5070&view=rev Author: fabiomaulo Date: 2010-07-28 20:11:31 +0000 (Wed, 28 Jul 2010) Log Message: ----------- Refactoring (removed some 'static' and pushed out the responsibility of creation of ILinqToHqlGeneratorsRegistry) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Settings.cs trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs trunk/nhibernate/src/NHibernate/IQueryExpression.cs trunk/nhibernate/src/NHibernate/Impl/ExpressionQueryImpl.cs trunk/nhibernate/src/NHibernate/Linq/Functions/FunctionRegistry.cs trunk/nhibernate/src/NHibernate/Linq/NhLinqExpression.cs trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs trunk/nhibernate/src/NHibernate/Linq/Visitors/SelectClauseVisitor.cs trunk/nhibernate/src/NHibernate/Linq/Visitors/VisitorParameters.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Settings.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Settings.cs 2010-07-28 19:45:24 UTC (rev 5069) +++ trunk/nhibernate/src/NHibernate/Cfg/Settings.cs 2010-07-28 20:11:31 UTC (rev 5070) @@ -6,6 +6,7 @@ using NHibernate.Connection; using NHibernate.Exceptions; using NHibernate.Hql; +using NHibernate.Linq.Functions; using NHibernate.Transaction; namespace NHibernate.Cfg @@ -119,6 +120,11 @@ public bool IsOuterJoinFetchEnabled { get; internal set; } + /// <summary> + /// Get the registry to provide Hql-Generators for known properties/methods. + /// </summary> + public ILinqToHqlGeneratorsRegistry LinqToHqlGeneratorsRegistry { get; internal set; } + #endregion } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs 2010-07-28 19:45:24 UTC (rev 5069) +++ trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs 2010-07-28 20:11:31 UTC (rev 5070) @@ -10,6 +10,7 @@ using NHibernate.Dialect; using NHibernate.Exceptions; using NHibernate.Hql; +using NHibernate.Linq.Functions; using NHibernate.Transaction; using NHibernate.Util; @@ -51,6 +52,8 @@ } settings.Dialect = dialect; + settings.LinqToHqlGeneratorsRegistry = new FunctionRegistry(); + #region SQL Exception converter ISQLExceptionConverter sqlExceptionConverter; Modified: trunk/nhibernate/src/NHibernate/IQueryExpression.cs =================================================================== --- trunk/nhibernate/src/NHibernate/IQueryExpression.cs 2010-07-28 19:45:24 UTC (rev 5069) +++ trunk/nhibernate/src/NHibernate/IQueryExpression.cs 2010-07-28 20:11:31 UTC (rev 5070) @@ -1,13 +1,13 @@ using System.Collections.Generic; +using NHibernate.Engine; using NHibernate.Engine.Query; using NHibernate.Hql.Ast.ANTLR.Tree; -using NHibernate.Impl; namespace NHibernate { public interface IQueryExpression { - IASTNode Translate(ISessionFactory sessionFactory); + IASTNode Translate(ISessionFactoryImplementor sessionFactory); string Key { get; } System.Type Type { get; } IList<NamedParameterDescriptor> ParameterDescriptors { get; } Modified: trunk/nhibernate/src/NHibernate/Impl/ExpressionQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/ExpressionQueryImpl.cs 2010-07-28 19:45:24 UTC (rev 5069) +++ trunk/nhibernate/src/NHibernate/Impl/ExpressionQueryImpl.cs 2010-07-28 20:11:31 UTC (rev 5070) @@ -150,7 +150,7 @@ ParameterDescriptors = queryExpression.ParameterDescriptors; } - public IASTNode Translate(ISessionFactory sessionFactory) + public IASTNode Translate(ISessionFactoryImplementor sessionFactory) { return _tree; } Modified: trunk/nhibernate/src/NHibernate/Linq/Functions/FunctionRegistry.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Linq/Functions/FunctionRegistry.cs 2010-07-28 19:45:24 UTC (rev 5069) +++ trunk/nhibernate/src/NHibernate/Linq/Functions/FunctionRegistry.cs 2010-07-28 20:11:31 UTC (rev 5070) @@ -10,13 +10,11 @@ { public class FunctionRegistry : ILinqToHqlGeneratorsRegistry { - public static readonly ILinqToHqlGeneratorsRegistry Instance = new FunctionRegistry(); - private readonly Dictionary<MethodInfo, IHqlGeneratorForMethod> registeredMethods = new Dictionary<MethodInfo, IHqlGeneratorForMethod>(); private readonly Dictionary<MemberInfo, IHqlGeneratorForProperty> registeredProperties = new Dictionary<MemberInfo, IHqlGeneratorForProperty>(); private readonly List<IHqlGeneratorForType> typeGenerators = new List<IHqlGeneratorForType>(); - private FunctionRegistry() + public FunctionRegistry() { // TODO - could use reflection here Register(new QueryableGenerator()); Modified: trunk/nhibernate/src/NHibernate/Linq/NhLinqExpression.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Linq/NhLinqExpression.cs 2010-07-28 19:45:24 UTC (rev 5069) +++ trunk/nhibernate/src/NHibernate/Linq/NhLinqExpression.cs 2010-07-28 20:11:31 UTC (rev 5070) @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; +using NHibernate.Engine; using NHibernate.Engine.Query; using NHibernate.Hql.Ast.ANTLR.Tree; using NHibernate.Linq.Visitors; @@ -54,7 +55,7 @@ } } - public IASTNode Translate(ISessionFactory sessionFactory) + public IASTNode Translate(ISessionFactoryImplementor sessionFactory) { //if (_astNode == null) { Modified: trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs 2010-07-28 19:45:24 UTC (rev 5069) +++ trunk/nhibernate/src/NHibernate/Linq/Visitors/HqlGeneratorExpressionTreeVisitor.cs 2010-07-28 20:11:31 UTC (rev 5070) @@ -23,7 +23,7 @@ public HqlGeneratorExpressionTreeVisitor(VisitorParameters parameters) { - functionRegistry = FunctionRegistry.Instance; + functionRegistry = parameters.SessionFactory.Settings.LinqToHqlGeneratorsRegistry; _parameters = parameters; _hqlTreeBuilder = new HqlTreeBuilder(); } Modified: trunk/nhibernate/src/NHibernate/Linq/Visitors/SelectClauseVisitor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Linq/Visitors/SelectClauseVisitor.cs 2010-07-28 19:45:24 UTC (rev 5069) +++ trunk/nhibernate/src/NHibernate/Linq/Visitors/SelectClauseVisitor.cs 2010-07-28 20:11:31 UTC (rev 5070) @@ -20,7 +20,7 @@ public SelectClauseVisitor(System.Type inputType, VisitorParameters parameters) { - functionRegistry = FunctionRegistry.Instance; + functionRegistry = parameters.SessionFactory.Settings.LinqToHqlGeneratorsRegistry; _inputParameter = Expression.Parameter(inputType, "input"); _parameters = parameters; } Modified: trunk/nhibernate/src/NHibernate/Linq/Visitors/VisitorParameters.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Linq/Visitors/VisitorParameters.cs 2010-07-28 19:45:24 UTC (rev 5069) +++ trunk/nhibernate/src/NHibernate/Linq/Visitors/VisitorParameters.cs 2010-07-28 20:11:31 UTC (rev 5070) @@ -1,16 +1,17 @@ using System.Collections.Generic; using System.Linq.Expressions; +using NHibernate.Engine; using NHibernate.Engine.Query; namespace NHibernate.Linq.Visitors { public class VisitorParameters { - public ISessionFactory SessionFactory { get; private set; } + public ISessionFactoryImplementor SessionFactory { get; private set; } public IDictionary<ConstantExpression, NamedParameter> ConstantToParameterMap { get; private set; } public List<NamedParameterDescriptor> RequiredHqlParameters { get; private set; } - public VisitorParameters(ISessionFactory sessionFactory, IDictionary<ConstantExpression, NamedParameter> constantToParameterMap, List<NamedParameterDescriptor> requiredHqlParameters) + public VisitorParameters(ISessionFactoryImplementor sessionFactory, IDictionary<ConstantExpression, NamedParameter> constantToParameterMap, List<NamedParameterDescriptor> requiredHqlParameters) { SessionFactory = sessionFactory; ConstantToParameterMap = constantToParameterMap; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |