|
From: <fab...@us...> - 2010-07-31 14:16:00
|
Revision: 5086
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5086&view=rev
Author: fabiomaulo
Date: 2010-07-31 14:15:53 +0000 (Sat, 31 Jul 2010)
Log Message:
-----------
- relax of DateTimePropertiesHqlGenerator
- removed if in ToUpperLowerGenerator (separated in two classes)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Linq/Functions/DateTimePropertiesHqlGenerator.cs
trunk/nhibernate/src/NHibernate/Linq/Functions/DefaultLinqToHqlGeneratorsRegistry.cs
trunk/nhibernate/src/NHibernate/Linq/Functions/StringGenerator.cs
Modified: trunk/nhibernate/src/NHibernate/Linq/Functions/DateTimePropertiesHqlGenerator.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Linq/Functions/DateTimePropertiesHqlGenerator.cs 2010-07-31 13:59:59 UTC (rev 5085)
+++ trunk/nhibernate/src/NHibernate/Linq/Functions/DateTimePropertiesHqlGenerator.cs 2010-07-31 14:15:53 UTC (rev 5086)
@@ -33,7 +33,7 @@
}
}
- public HqlTreeNode BuildHql(MemberInfo member, Expression expression, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
+ public virtual HqlTreeNode BuildHql(MemberInfo member, Expression expression, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
{
return treeBuilder.MethodCall(member.Name.ToLowerInvariant(),
visitor.Visit(expression).AsExpression());
Modified: trunk/nhibernate/src/NHibernate/Linq/Functions/DefaultLinqToHqlGeneratorsRegistry.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Linq/Functions/DefaultLinqToHqlGeneratorsRegistry.cs 2010-07-31 13:59:59 UTC (rev 5085)
+++ trunk/nhibernate/src/NHibernate/Linq/Functions/DefaultLinqToHqlGeneratorsRegistry.cs 2010-07-31 14:15:53 UTC (rev 5086)
@@ -19,7 +19,8 @@
this.Merge(new EndsWithGenerator());
this.Merge(new ContainsGenerator());
this.Merge(new EqualsGenerator());
- this.Merge(new ToUpperLowerGenerator());
+ this.Merge(new ToUpperGenerator());
+ this.Merge(new ToLowerGenerator());
this.Merge(new SubStringGenerator());
this.Merge(new IndexOfGenerator());
this.Merge(new ReplaceGenerator());
Modified: trunk/nhibernate/src/NHibernate/Linq/Functions/StringGenerator.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Linq/Functions/StringGenerator.cs 2010-07-31 13:59:59 UTC (rev 5085)
+++ trunk/nhibernate/src/NHibernate/Linq/Functions/StringGenerator.cs 2010-07-31 14:15:53 UTC (rev 5086)
@@ -86,14 +86,12 @@
}
}
- public class ToUpperLowerGenerator : BaseHqlGeneratorForMethod
+ public class ToLowerGenerator : BaseHqlGeneratorForMethod
{
- public ToUpperLowerGenerator()
+ public ToLowerGenerator()
{
SupportedMethods = new[]
{
- ReflectionHelper.GetMethodDefinition<string>(x => x.ToUpper()),
- ReflectionHelper.GetMethodDefinition<string>(x => x.ToUpperInvariant()),
ReflectionHelper.GetMethodDefinition<string>(x => x.ToLower()),
ReflectionHelper.GetMethodDefinition<string>(x => x.ToLowerInvariant())
};
@@ -101,18 +99,24 @@
public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
{
- string methodName;
+ return treeBuilder.MethodCall("lower", visitor.Visit(targetObject).AsExpression());
+ }
+ }
- if (((method.Name == "ToUpper") || (method.Name == "ToUpperInvariant")))
- {
- methodName = "upper";
- }
- else
- {
- methodName = "lower";
- }
+ public class ToUpperGenerator : BaseHqlGeneratorForMethod
+ {
+ public ToUpperGenerator()
+ {
+ SupportedMethods = new[]
+ {
+ ReflectionHelper.GetMethodDefinition<string>(x => x.ToUpper()),
+ ReflectionHelper.GetMethodDefinition<string>(x => x.ToUpperInvariant()),
+ };
+ }
- return treeBuilder.MethodCall(methodName, visitor.Visit(targetObject).AsExpression());
+ public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
+ {
+ return treeBuilder.MethodCall("upper", visitor.Visit(targetObject).AsExpression());
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|