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