|
From: <jul...@us...> - 2010-12-04 02:27:10
|
Revision: 5288
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5288&view=rev
Author: julian-maughan
Date: 2010-12-04 02:27:02 +0000 (Sat, 04 Dec 2010)
Log Message:
-----------
Added some Linq support for Dictionary collections (ref. NH-2416, NH-2423). Based on a patch from Diego Mijelshon.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeBuilder.cs
trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeNode.cs
trunk/nhibernate/src/NHibernate/Linq/Functions/DefaultLinqToHqlGeneratorsRegistry.cs
trunk/nhibernate/src/NHibernate/NHibernate.csproj
trunk/nhibernate/src/NHibernate.DomainModel/NHSpecific/BasicClass.cs
trunk/nhibernate/src/NHibernate.DomainModel/NHSpecific/BasicClass.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BasicClassFixture.cs
Added Paths:
-----------
trunk/nhibernate/src/NHibernate/Linq/Functions/DictionaryGenerator.cs
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeBuilder.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeBuilder.cs 2010-12-03 09:20:26 UTC (rev 5287)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeBuilder.cs 2010-12-04 02:27:02 UTC (rev 5288)
@@ -5,430 +5,440 @@
namespace NHibernate.Hql.Ast
{
- public class HqlTreeBuilder
- {
- private readonly IASTFactory _factory;
+ public class HqlTreeBuilder
+ {
+ private readonly IASTFactory _factory;
- public HqlTreeBuilder()
- {
- _factory = new ASTFactory(new ASTTreeAdaptor());
- }
+ public HqlTreeBuilder()
+ {
+ _factory = new ASTFactory(new ASTTreeAdaptor());
+ }
- public HqlQuery Query()
- {
- return new HqlQuery(_factory);
- }
+ public HqlQuery Query()
+ {
+ return new HqlQuery(_factory);
+ }
- public HqlQuery Query(HqlSelectFrom selectFrom)
- {
- return new HqlQuery(_factory, selectFrom);
- }
+ public HqlQuery Query(HqlSelectFrom selectFrom)
+ {
+ return new HqlQuery(_factory, selectFrom);
+ }
- public HqlQuery Query(HqlSelectFrom selectFrom, HqlWhere where)
- {
- return new HqlQuery(_factory, selectFrom, where);
- }
+ public HqlQuery Query(HqlSelectFrom selectFrom, HqlWhere where)
+ {
+ return new HqlQuery(_factory, selectFrom, where);
+ }
- public HqlTreeNode Query(HqlSelectFrom selectFrom, HqlWhere where, HqlOrderBy orderBy)
- {
- return new HqlQuery(_factory, selectFrom, where, orderBy);
- }
+ public HqlTreeNode Query(HqlSelectFrom selectFrom, HqlWhere where, HqlOrderBy orderBy)
+ {
+ return new HqlQuery(_factory, selectFrom, where, orderBy);
+ }
- public HqlSelectFrom SelectFrom()
- {
- return new HqlSelectFrom(_factory);
- }
+ public HqlSelectFrom SelectFrom()
+ {
+ return new HqlSelectFrom(_factory);
+ }
- public HqlSelectFrom SelectFrom(HqlSelect select)
- {
- return new HqlSelectFrom(_factory, select);
- }
+ public HqlSelectFrom SelectFrom(HqlSelect select)
+ {
+ return new HqlSelectFrom(_factory, select);
+ }
- public HqlSelectFrom SelectFrom(HqlFrom @from, HqlSelect select)
- {
- return new HqlSelectFrom(_factory, @from, select);
- }
+ public HqlSelectFrom SelectFrom(HqlFrom @from, HqlSelect select)
+ {
+ return new HqlSelectFrom(_factory, @from, select);
+ }
- public HqlSelectFrom SelectFrom(HqlFrom @from)
- {
- return new HqlSelectFrom(_factory, @from);
- }
+ public HqlSelectFrom SelectFrom(HqlFrom @from)
+ {
+ return new HqlSelectFrom(_factory, @from);
+ }
- public HqlFrom From(HqlRange range)
- {
- return new HqlFrom(_factory, range);
- }
+ public HqlFrom From(HqlRange range)
+ {
+ return new HqlFrom(_factory, range);
+ }
- public HqlFrom From()
- {
- return new HqlFrom(_factory);
- }
+ public HqlFrom From()
+ {
+ return new HqlFrom(_factory);
+ }
- public HqlRange Range(HqlIdent ident)
- {
- return new HqlRange(_factory, ident);
- }
+ public HqlRange Range(HqlIdent ident)
+ {
+ return new HqlRange(_factory, ident);
+ }
- public HqlRange Range(HqlTreeNode ident, HqlAlias alias)
- {
- return new HqlRange(_factory, ident, alias);
- }
+ public HqlRange Range(HqlTreeNode ident, HqlAlias alias)
+ {
+ return new HqlRange(_factory, ident, alias);
+ }
- public HqlIdent Ident(string ident)
- {
- return new HqlIdent(_factory, ident);
- }
+ public HqlIdent Ident(string ident)
+ {
+ return new HqlIdent(_factory, ident);
+ }
- public HqlIdent Ident(System.Type type)
- {
- return new HqlIdent(_factory, type);
- }
+ public HqlIdent Ident(System.Type type)
+ {
+ return new HqlIdent(_factory, type);
+ }
- public HqlAlias Alias(string alias)
- {
- return new HqlAlias(_factory, alias);
- }
+ public HqlAlias Alias(string alias)
+ {
+ return new HqlAlias(_factory, alias);
+ }
- public HqlEquality Equality(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlEquality(_factory, lhs, rhs);
- }
+ public HqlEquality Equality(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlEquality(_factory, lhs, rhs);
+ }
- public HqlBooleanAnd BooleanAnd(HqlBooleanExpression lhs, HqlBooleanExpression rhs)
- {
- return new HqlBooleanAnd(_factory, lhs, rhs);
- }
+ public HqlBooleanAnd BooleanAnd(HqlBooleanExpression lhs, HqlBooleanExpression rhs)
+ {
+ return new HqlBooleanAnd(_factory, lhs, rhs);
+ }
- public HqlBooleanOr BooleanOr(HqlBooleanExpression lhs, HqlBooleanExpression rhs)
- {
- return new HqlBooleanOr(_factory, lhs, rhs);
- }
+ public HqlBooleanOr BooleanOr(HqlBooleanExpression lhs, HqlBooleanExpression rhs)
+ {
+ return new HqlBooleanOr(_factory, lhs, rhs);
+ }
- public HqlAdd Add(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlAdd(_factory, lhs, rhs);
- }
+ public HqlAdd Add(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlAdd(_factory, lhs, rhs);
+ }
- public HqlSubtract Subtract(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlSubtract(_factory, lhs, rhs);
- }
+ public HqlSubtract Subtract(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlSubtract(_factory, lhs, rhs);
+ }
- public HqlMultiplty Multiply(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlMultiplty(_factory, lhs, rhs);
- }
+ public HqlMultiplty Multiply(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlMultiplty(_factory, lhs, rhs);
+ }
- public HqlDivide Divide(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlDivide(_factory, lhs, rhs);
- }
+ public HqlDivide Divide(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlDivide(_factory, lhs, rhs);
+ }
- public HqlDot Dot(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlDot(_factory, lhs, rhs);
- }
+ public HqlDot Dot(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlDot(_factory, lhs, rhs);
+ }
- public HqlParameter Parameter(string name)
- {
- return new HqlParameter(_factory, name);
- }
+ public HqlParameter Parameter(string name)
+ {
+ return new HqlParameter(_factory, name);
+ }
- public HqlWhere Where(HqlExpression expression)
- {
- return new HqlWhere(_factory, expression);
- }
+ public HqlWhere Where(HqlExpression expression)
+ {
+ return new HqlWhere(_factory, expression);
+ }
- // TODO - constant will be removed when we have parameter handling done properly. Particularly bad datetime handling here, so it'll be good to delete it :)
- public HqlConstant Constant(object value)
- {
- if (value == null)
- {
- return new HqlNull(_factory);
- }
+ // TODO - constant will be removed when we have parameter handling done properly. Particularly bad datetime handling here, so it'll be good to delete it :)
+ public HqlConstant Constant(object value)
+ {
+ if (value == null)
+ {
+ return new HqlNull(_factory);
+ }
- switch (System.Type.GetTypeCode(value.GetType()))
- {
- case TypeCode.Int16:
- case TypeCode.Int32:
- case TypeCode.Int64:
- return new HqlIntegerConstant(_factory, value.ToString());
- case TypeCode.Single:
- return new HqlFloatConstant(_factory, value.ToString());
- case TypeCode.Double:
- return new HqlDoubleConstant(_factory, value.ToString());
- case TypeCode.Decimal:
- return new HqlDecimalConstant(_factory, value.ToString());
- case TypeCode.String:
- case TypeCode.Char:
- return new HqlStringConstant(_factory, "\'" + value + "\'");
- case TypeCode.DateTime:
- return new HqlStringConstant(_factory, "\'" + (DateTime)value + "\'");
- case TypeCode.Boolean:
- return new HqlStringConstant(_factory, "\'" + ((bool)value ? "true" : "false") + "\'");
- default:
- throw new NotSupportedException(string.Format("The constant for '{0}' is not supported", value));
- }
- }
+ switch (System.Type.GetTypeCode(value.GetType()))
+ {
+ case TypeCode.Int16:
+ case TypeCode.Int32:
+ case TypeCode.Int64:
+ return new HqlIntegerConstant(_factory, value.ToString());
+ case TypeCode.Single:
+ return new HqlFloatConstant(_factory, value.ToString());
+ case TypeCode.Double:
+ return new HqlDoubleConstant(_factory, value.ToString());
+ case TypeCode.Decimal:
+ return new HqlDecimalConstant(_factory, value.ToString());
+ case TypeCode.String:
+ case TypeCode.Char:
+ return new HqlStringConstant(_factory, "\'" + value + "\'");
+ case TypeCode.DateTime:
+ return new HqlStringConstant(_factory, "\'" + (DateTime)value + "\'");
+ case TypeCode.Boolean:
+ return new HqlStringConstant(_factory, "\'" + ((bool)value ? "true" : "false") + "\'");
+ default:
+ throw new NotSupportedException(string.Format("The constant for '{0}' is not supported", value));
+ }
+ }
- public HqlOrderBy OrderBy()
- {
- return new HqlOrderBy(_factory);
- }
+ public HqlOrderBy OrderBy()
+ {
+ return new HqlOrderBy(_factory);
+ }
- public HqlSelect Select(HqlExpression expression)
- {
- return new HqlSelect(_factory, expression);
- }
+ public HqlSelect Select(HqlExpression expression)
+ {
+ return new HqlSelect(_factory, expression);
+ }
- public HqlSelect Select(params HqlExpression[] expression)
- {
- return new HqlSelect(_factory, expression);
- }
+ public HqlSelect Select(params HqlExpression[] expression)
+ {
+ return new HqlSelect(_factory, expression);
+ }
- public HqlSelect Select(IEnumerable<HqlExpression> expressions)
- {
- return new HqlSelect(_factory, expressions.ToArray());
- }
+ public HqlSelect Select(IEnumerable<HqlExpression> expressions)
+ {
+ return new HqlSelect(_factory, expressions.ToArray());
+ }
- public HqlCase Case(HqlWhen[] whenClauses)
- {
- return new HqlCase(_factory, whenClauses, null);
- }
+ public HqlCase Case(HqlWhen[] whenClauses)
+ {
+ return new HqlCase(_factory, whenClauses, null);
+ }
- public HqlCase Case(HqlWhen[] whenClauses, HqlExpression ifFalse)
- {
- return new HqlCase(_factory, whenClauses, ifFalse);
- }
+ public HqlCase Case(HqlWhen[] whenClauses, HqlExpression ifFalse)
+ {
+ return new HqlCase(_factory, whenClauses, ifFalse);
+ }
- public HqlWhen When(HqlExpression predicate, HqlExpression ifTrue)
- {
- return new HqlWhen(_factory, predicate, ifTrue);
- }
+ public HqlWhen When(HqlExpression predicate, HqlExpression ifTrue)
+ {
+ return new HqlWhen(_factory, predicate, ifTrue);
+ }
- public HqlElse Else(HqlExpression ifFalse)
- {
- return new HqlElse(_factory, ifFalse);
- }
+ public HqlElse Else(HqlExpression ifFalse)
+ {
+ return new HqlElse(_factory, ifFalse);
+ }
- public HqlInequality Inequality(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlInequality(_factory, lhs, rhs);
- }
+ public HqlInequality Inequality(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlInequality(_factory, lhs, rhs);
+ }
- public HqlLessThan LessThan(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlLessThan(_factory, lhs, rhs);
- }
+ public HqlLessThan LessThan(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlLessThan(_factory, lhs, rhs);
+ }
- public HqlLessThanOrEqual LessThanOrEqual(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlLessThanOrEqual(_factory, lhs, rhs);
- }
+ public HqlLessThanOrEqual LessThanOrEqual(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlLessThanOrEqual(_factory, lhs, rhs);
+ }
- public HqlGreaterThan GreaterThan(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlGreaterThan(_factory, lhs, rhs);
- }
+ public HqlGreaterThan GreaterThan(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlGreaterThan(_factory, lhs, rhs);
+ }
- public HqlGreaterThanOrEqual GreaterThanOrEqual(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlGreaterThanOrEqual(_factory, lhs, rhs);
- }
+ public HqlGreaterThanOrEqual GreaterThanOrEqual(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlGreaterThanOrEqual(_factory, lhs, rhs);
+ }
- public HqlCount Count()
- {
- return new HqlCount(_factory);
- }
+ public HqlCount Count()
+ {
+ return new HqlCount(_factory);
+ }
- public HqlCount Count(HqlExpression child)
- {
- return new HqlCount(_factory, child);
- }
+ public HqlCount Count(HqlExpression child)
+ {
+ return new HqlCount(_factory, child);
+ }
- public HqlRowStar RowStar()
- {
- return new HqlRowStar(_factory);
- }
+ public HqlRowStar RowStar()
+ {
+ return new HqlRowStar(_factory);
+ }
- public HqlCast Cast(HqlExpression expression, System.Type type)
- {
- return new HqlCast(_factory, expression, type);
- }
+ public HqlCast Cast(HqlExpression expression, System.Type type)
+ {
+ return new HqlCast(_factory, expression, type);
+ }
- public HqlBitwiseNot BitwiseNot()
- {
- return new HqlBitwiseNot(_factory);
- }
+ public HqlBitwiseNot BitwiseNot()
+ {
+ return new HqlBitwiseNot(_factory);
+ }
- public HqlBooleanNot BooleanNot(HqlBooleanExpression operand)
- {
- return new HqlBooleanNot(_factory, operand);
- }
+ public HqlBooleanNot BooleanNot(HqlBooleanExpression operand)
+ {
+ return new HqlBooleanNot(_factory, operand);
+ }
- public HqlAverage Average(HqlExpression expression)
- {
- return new HqlAverage(_factory, expression);
- }
+ public HqlAverage Average(HqlExpression expression)
+ {
+ return new HqlAverage(_factory, expression);
+ }
- public HqlSum Sum(HqlExpression expression)
- {
- return new HqlSum(_factory, expression);
- }
+ public HqlSum Sum(HqlExpression expression)
+ {
+ return new HqlSum(_factory, expression);
+ }
- public HqlMin Min(HqlExpression expression)
- {
- return new HqlMin(_factory, expression);
- }
+ public HqlMin Min(HqlExpression expression)
+ {
+ return new HqlMin(_factory, expression);
+ }
- public HqlMax Max(HqlExpression expression)
- {
- return new HqlMax(_factory, expression);
- }
+ public HqlMax Max(HqlExpression expression)
+ {
+ return new HqlMax(_factory, expression);
+ }
- public HqlJoin Join(HqlExpression expression, HqlAlias @alias)
- {
- return new HqlJoin(_factory, expression, @alias);
- }
+ public HqlJoin Join(HqlExpression expression, HqlAlias @alias)
+ {
+ return new HqlJoin(_factory, expression, @alias);
+ }
- public HqlAny Any()
- {
- return new HqlAny(_factory);
- }
+ public HqlAny Any()
+ {
+ return new HqlAny(_factory);
+ }
- public HqlExists Exists(HqlQuery query)
- {
- return new HqlExists(_factory, query);
- }
+ public HqlExists Exists(HqlQuery query)
+ {
+ return new HqlExists(_factory, query);
+ }
- public HqlElements Elements()
- {
- return new HqlElements(_factory);
- }
+ public HqlElements Elements()
+ {
+ return new HqlElements(_factory);
+ }
- public HqlDistinct Distinct()
- {
- return new HqlDistinct(_factory);
- }
+ public HqlDistinct Distinct()
+ {
+ return new HqlDistinct(_factory);
+ }
- public HqlDirectionAscending Ascending()
- {
- return new HqlDirectionAscending(_factory);
- }
+ public HqlDirectionAscending Ascending()
+ {
+ return new HqlDirectionAscending(_factory);
+ }
- public HqlDirectionDescending Descending()
- {
- return new HqlDirectionDescending(_factory);
- }
+ public HqlDirectionDescending Descending()
+ {
+ return new HqlDirectionDescending(_factory);
+ }
- public HqlGroupBy GroupBy(HqlExpression expression)
- {
- return new HqlGroupBy(_factory, expression);
- }
+ public HqlGroupBy GroupBy(HqlExpression expression)
+ {
+ return new HqlGroupBy(_factory, expression);
+ }
public HqlAll All()
- {
- return new HqlAll(_factory);
- }
+ {
+ return new HqlAll(_factory);
+ }
- public HqlLike Like(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlLike(_factory, lhs, rhs);
- }
+ public HqlLike Like(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlLike(_factory, lhs, rhs);
+ }
- public HqlConcat Concat(params HqlExpression[] args)
- {
- return new HqlConcat(_factory, args);
- }
+ public HqlConcat Concat(params HqlExpression[] args)
+ {
+ return new HqlConcat(_factory, args);
+ }
- public HqlMethodCall MethodCall(string methodName, IEnumerable<HqlExpression> parameters)
- {
- return new HqlMethodCall(_factory, methodName, parameters);
- }
+ public HqlMethodCall MethodCall(string methodName, IEnumerable<HqlExpression> parameters)
+ {
+ return new HqlMethodCall(_factory, methodName, parameters);
+ }
- public HqlMethodCall MethodCall(string methodName, params HqlExpression[] parameters)
- {
- return new HqlMethodCall(_factory, methodName, parameters);
- }
+ public HqlMethodCall MethodCall(string methodName, params HqlExpression[] parameters)
+ {
+ return new HqlMethodCall(_factory, methodName, parameters);
+ }
- public HqlBooleanMethodCall BooleanMethodCall(string methodName, IEnumerable<HqlExpression> parameters)
- {
- return new HqlBooleanMethodCall(_factory, methodName, parameters);
- }
+ public HqlBooleanMethodCall BooleanMethodCall(string methodName, IEnumerable<HqlExpression> parameters)
+ {
+ return new HqlBooleanMethodCall(_factory, methodName, parameters);
+ }
- public HqlDistinctHolder DistinctHolder(params HqlTreeNode[] children)
- {
- return new HqlDistinctHolder(_factory, children);
- }
+ public HqlDistinctHolder DistinctHolder(params HqlTreeNode[] children)
+ {
+ return new HqlDistinctHolder(_factory, children);
+ }
- public HqlIsNull IsNull(HqlExpression lhs)
- {
- return new HqlIsNull(_factory, lhs);
- }
+ public HqlIsNull IsNull(HqlExpression lhs)
+ {
+ return new HqlIsNull(_factory, lhs);
+ }
- public HqlIsNotNull IsNotNull(HqlExpression lhs)
- {
- return new HqlIsNotNull(_factory, lhs);
- }
+ public HqlIsNotNull IsNotNull(HqlExpression lhs)
+ {
+ return new HqlIsNotNull(_factory, lhs);
+ }
- public HqlTreeNode ExpressionList(IEnumerable<HqlExpression> expressions)
- {
- return new HqlExpressionList(_factory, expressions);
- }
+ public HqlTreeNode ExpressionList(IEnumerable<HqlExpression> expressions)
+ {
+ return new HqlExpressionList(_factory, expressions);
+ }
- public HqlStar Star()
- {
- return new HqlStar(_factory);
- }
+ public HqlStar Star()
+ {
+ return new HqlStar(_factory);
+ }
- public HqlTrue True()
- {
- return new HqlTrue(_factory);
- }
+ public HqlTrue True()
+ {
+ return new HqlTrue(_factory);
+ }
- public HqlFalse False()
- {
- return new HqlFalse(_factory);
- }
+ public HqlFalse False()
+ {
+ return new HqlFalse(_factory);
+ }
- public HqlIn In(HqlExpression itemExpression, HqlTreeNode source)
- {
- return new HqlIn(_factory, itemExpression, source);
- }
+ public HqlIn In(HqlExpression itemExpression, HqlTreeNode source)
+ {
+ return new HqlIn(_factory, itemExpression, source);
+ }
- public HqlLeftJoin LeftJoin(HqlExpression expression, HqlAlias @alias)
- {
- return new HqlLeftJoin(_factory, expression, @alias);
- }
+ public HqlLeftJoin LeftJoin(HqlExpression expression, HqlAlias @alias)
+ {
+ return new HqlLeftJoin(_factory, expression, @alias);
+ }
- public HqlFetchJoin FetchJoin(HqlExpression expression, HqlAlias @alias)
- {
- return new HqlFetchJoin(_factory, expression, @alias);
- }
+ public HqlFetchJoin FetchJoin(HqlExpression expression, HqlAlias @alias)
+ {
+ return new HqlFetchJoin(_factory, expression, @alias);
+ }
- public HqlLeftFetchJoin LeftFetchJoin(HqlExpression expression, HqlAlias @alias)
- {
- return new HqlLeftFetchJoin(_factory, expression, @alias);
- }
+ public HqlLeftFetchJoin LeftFetchJoin(HqlExpression expression, HqlAlias @alias)
+ {
+ return new HqlLeftFetchJoin(_factory, expression, @alias);
+ }
- public HqlClass Class()
- {
- return new HqlClass(_factory);
- }
+ public HqlClass Class()
+ {
+ return new HqlClass(_factory);
+ }
- public HqlBitwiseAnd BitwiseAnd(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlBitwiseAnd(_factory, lhs, rhs);
- }
+ public HqlBitwiseAnd BitwiseAnd(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlBitwiseAnd(_factory, lhs, rhs);
+ }
- public HqlBitwiseOr BitwiseOr(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlBitwiseOr(_factory, lhs, rhs);
- }
+ public HqlBitwiseOr BitwiseOr(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlBitwiseOr(_factory, lhs, rhs);
+ }
- public HqlTreeNode Coalesce(HqlExpression lhs, HqlExpression rhs)
- {
- return new HqlCoalesce(_factory, lhs, rhs);
- }
- }
+ public HqlTreeNode Coalesce(HqlExpression lhs, HqlExpression rhs)
+ {
+ return new HqlCoalesce(_factory, lhs, rhs);
+ }
+
+ public HqlTreeNode DictionaryItem(HqlExpression dictionary, HqlExpression index)
+ {
+ return new HqlDictionaryIndex(_factory, dictionary, index);
+ }
+
+ public HqlTreeNode Indices(HqlExpression dictionary)
+ {
+ return new HqlIndices(_factory, dictionary);
+ }
+ }
}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeNode.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeNode.cs 2010-12-03 09:20:26 UTC (rev 5287)
+++ trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeNode.cs 2010-12-04 02:27:02 UTC (rev 5288)
@@ -6,598 +6,596 @@
namespace NHibernate.Hql.Ast
{
- public class HqlTreeNode
- {
- public IASTFactory Factory { get; private set; }
- private readonly IASTNode _node;
- private readonly List<HqlTreeNode> _children;
+ public class HqlTreeNode
+ {
+ public IASTFactory Factory { get; private set; }
+ private readonly IASTNode _node;
+ private readonly List<HqlTreeNode> _children;
- protected HqlTreeNode(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
- {
- Factory = factory;
- _node = factory.CreateNode(type, text);
- _children = new List<HqlTreeNode>();
+ protected HqlTreeNode(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
+ {
+ Factory = factory;
+ _node = factory.CreateNode(type, text);
+ _children = new List<HqlTreeNode>();
- AddChildren(children);
- }
+ AddChildren(children);
+ }
- protected HqlTreeNode(int type, string text, IASTFactory factory, params HqlTreeNode[] children) : this(type, text, factory, (IEnumerable<HqlTreeNode>) children)
- {
- }
+ protected HqlTreeNode(int type, string text, IASTFactory factory, params HqlTreeNode[] children) : this(type, text, factory, (IEnumerable<HqlTreeNode>) children)
+ {
+ }
- private void AddChildren(IEnumerable<HqlTreeNode> children)
- {
- foreach (var child in children)
- {
- if (child != null)
- {
- if (child is HqlDistinctHolder)
- {
- AddChildren(child.Children);
- }
- else
- {
- _children.Add(child);
- _node.AddChild(child.AstNode);
- }
- }
- }
- }
+ private void AddChildren(IEnumerable<HqlTreeNode> children)
+ {
+ foreach (var child in children)
+ {
+ if (child != null)
+ {
+ if (child is HqlDistinctHolder)
+ {
+ AddChildren(child.Children);
+ }
+ else
+ {
+ _children.Add(child);
+ _node.AddChild(child.AstNode);
+ }
+ }
+ }
+ }
- public IEnumerable<HqlTreeNode> NodesPreOrder
- {
- get
- {
- yield return this;
+ public IEnumerable<HqlTreeNode> NodesPreOrder
+ {
+ get
+ {
+ yield return this;
- foreach (var child in _children)
- {
- foreach (var node in child.NodesPreOrder)
- {
- yield return node;
- }
- }
- }
- }
+ foreach (var child in _children)
+ {
+ foreach (var node in child.NodesPreOrder)
+ {
+ yield return node;
+ }
+ }
+ }
+ }
- public IEnumerable<HqlTreeNode> NodesPostOrder
- {
- get
- {
- foreach (var child in _children)
- {
- foreach (var node in child.NodesPostOrder)
- {
- yield return node;
- }
- }
+ public IEnumerable<HqlTreeNode> NodesPostOrder
+ {
+ get
+ {
+ foreach (var child in _children)
+ {
+ foreach (var node in child.NodesPostOrder)
+ {
+ yield return node;
+ }
+ }
- yield return this;
- }
- }
+ yield return this;
+ }
+ }
- public IEnumerable<HqlTreeNode> Children
- {
- get { return _children; }
- }
+ public IEnumerable<HqlTreeNode> Children
+ {
+ get { return _children; }
+ }
- public void ClearChildren()
- {
- _children.Clear();
- _node.ClearChildren();
- }
+ public void ClearChildren()
+ {
+ _children.Clear();
+ _node.ClearChildren();
+ }
- protected void SetText(string text)
- {
- _node.Text = text;
- }
+ protected void SetText(string text)
+ {
+ _node.Text = text;
+ }
- internal IASTNode AstNode
- {
- get { return _node; }
- }
+ internal IASTNode AstNode
+ {
+ get { return _node; }
+ }
- internal void AddChild(HqlTreeNode child)
- {
- if (child is HqlDistinctHolder)
- {
- AddChildren(child.Children);
- }
- else
- {
- _children.Add(child);
- _node.AddChild(child.AstNode);
- }
- }
- }
+ internal void AddChild(HqlTreeNode child)
+ {
+ if (child is HqlDistinctHolder)
+ {
+ AddChildren(child.Children);
+ }
+ else
+ {
+ _children.Add(child);
+ _node.AddChild(child.AstNode);
+ }
+ }
+ }
- public static class HqlTreeNodeExtensions
- {
- public static HqlExpression AsExpression(this HqlTreeNode node)
- {
- // TODO - nice error handling if cast fails
- return (HqlExpression)node;
- }
+ public static class HqlTreeNodeExtensions
+ {
+ public static HqlExpression AsExpression(this HqlTreeNode node)
+ {
+ // TODO - nice error handling if cast fails
+ return (HqlExpression)node;
+ }
- public static HqlBooleanExpression AsBooleanExpression(this HqlTreeNode node)
- {
- if (node is HqlDot)
- {
- return new HqlBooleanDot(node.Factory, (HqlDot) node);
- }
+ public static HqlBooleanExpression AsBooleanExpression(this HqlTreeNode node)
+ {
+ if (node is HqlDot)
+ {
+ return new HqlBooleanDot(node.Factory, (HqlDot) node);
+ }
- // TODO - nice error handling if cast fails
- return (HqlBooleanExpression)node;
- }
-
- }
+ // TODO - nice error handling if cast fails
+ return (HqlBooleanExpression)node;
+ }
+
+ }
- public abstract class HqlStatement : HqlTreeNode
- {
- protected HqlStatement(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
- : base(type, text, factory, children)
- {
- }
+ public abstract class HqlStatement : HqlTreeNode
+ {
+ protected HqlStatement(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
+ : base(type, text, factory, children)
+ {
+ }
- protected HqlStatement(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
- : base(type, text, factory, children)
- {
- }
- }
+ protected HqlStatement(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
+ : base(type, text, factory, children)
+ {
+ }
+ }
- public abstract class HqlExpression : HqlTreeNode
- {
- protected HqlExpression(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
- : base(type, text, factory, children)
- {
- }
+ public abstract class HqlExpression : HqlTreeNode
+ {
+ protected HqlExpression(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
+ : base(type, text, factory, children)
+ {
+ }
- protected HqlExpression(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
- : base(type, text, factory, children)
- {
- }
- }
+ protected HqlExpression(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
+ : base(type, text, factory, children)
+ {
+ }
+ }
- public abstract class HqlBooleanExpression : HqlExpression
- {
- protected HqlBooleanExpression(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
- : base(type, text, factory, children)
- {
- }
+ public abstract class HqlBooleanExpression : HqlExpression
+ {
+ protected HqlBooleanExpression(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
+ : base(type, text, factory, children)
+ {
+ }
- protected HqlBooleanExpression(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
- : base(type, text, factory, children)
- {
- }
- }
+ protected HqlBooleanExpression(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
+ : base(type, text, factory, children)
+ {
+ }
+ }
- public class HqlQuery : HqlExpression
- {
- internal HqlQuery(IASTFactory factory, params HqlStatement[] children)
- : base(HqlSqlWalker.QUERY, "query", factory, children)
- {
- }
- }
+ public class HqlQuery : HqlExpression
+ {
+ internal HqlQuery(IASTFactory factory, params HqlStatement[] children)
+ : base(HqlSqlWalker.QUERY, "query", factory, children)
+ {
+ }
+ }
- public class HqlIdent : HqlExpression
- {
- internal HqlIdent(IASTFactory factory, string ident)
- : base(HqlSqlWalker.IDENT, ident, factory)
- {
- }
+ public class HqlIdent : HqlExpression
+ {
+ internal HqlIdent(IASTFactory factory, string ident)
+ : base(HqlSqlWalker.IDENT, ident, factory)
+ {
+ }
- internal HqlIdent(IASTFactory factory, System.Type type)
- : base(HqlSqlWalker.IDENT, "", factory)
- {
- if (IsNullableType(type))
- {
- type = ExtractUnderlyingTypeFromNullable(type);
- }
+ internal HqlIdent(IASTFactory factory, System.Type type)
+ : base(HqlSqlWalker.IDENT, "", factory)
+ {
+ if (IsNullableType(type))
+ {
+ type = ExtractUnderlyingTypeFromNullable(type);
+ }
- switch (System.Type.GetTypeCode(type))
- {
+ switch (System.Type.GetTypeCode(type))
+ {
case TypeCode.Boolean:
- SetText("bool");
- break;
+ SetText("bool");
+ break;
case TypeCode.Int16:
- SetText("short");
- break;
+ SetText("short");
+ break;
case TypeCode.Int32:
- SetText("integer");
- break;
- case TypeCode.Int64:
- SetText("long");
- break;
- case TypeCode.Decimal:
- SetText("decimal");
- break;
- case TypeCode.DateTime:
- SetText("datetime");
- break;
+ SetText("integer");
+ break;
+ case TypeCode.Int64:
+ SetText("long");
+ break;
+ case TypeCode.Decimal:
+ SetText("decimal");
+ break;
+ case TypeCode.DateTime:
+ SetText("datetime");
+ break;
case TypeCode.String:
- SetText("string");
- break;
- case TypeCode.Double:
- SetText("double");
- break;
- default:
+ SetText("string");
+ break;
+ case TypeCode.Double:
+ SetText("double");
+ break;
+ default:
if (type == typeof(Guid))
{
SetText("guid");
break;
}
- throw new NotSupportedException(string.Format("Don't currently support idents of type {0}", type.Name));
- }
- }
+ throw new NotSupportedException(string.Format("Don't currently support idents of type {0}", type.Name));
+ }
+ }
- private static System.Type ExtractUnderlyingTypeFromNullable(System.Type type)
- {
- return type.GetGenericArguments()[0];
- }
+ private static System.Type ExtractUnderlyingTypeFromNullable(System.Type type)
+ {
+ return type.GetGenericArguments()[0];
+ }
- // TODO - code duplicated in LinqExtensionMethods
- private static bool IsNullableType(System.Type type)
- {
- return (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>));
- }
+ // TODO - code duplicated in LinqExtensionMethods
+ private static bool IsNullableType(System.Type type)
+ {
+ return (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>));
+ }
+ }
- }
+ public class HqlRange : HqlStatement
+ {
+ internal HqlRange(IASTFactory factory, params HqlTreeNode[] children)
+ : base(HqlSqlWalker.RANGE, "range", factory, children)
+ {
+ }
+ }
- public class HqlRange : HqlStatement
- {
- internal HqlRange(IASTFactory factory, params HqlTreeNode[] children)
- : base(HqlSqlWalker.RANGE, "range", factory, children)
- {
- }
- }
+ public class HqlFrom : HqlStatement
+ {
+ internal HqlFrom(IASTFactory factory, params HqlTreeNode[] children)
+ : base(HqlSqlWalker.FROM, "from", factory, children)
+ {
+ }
+ }
- public class HqlFrom : HqlStatement
- {
- internal HqlFrom(IASTFactory factory, params HqlTreeNode[] children)
- : base(HqlSqlWalker.FROM, "from", factory, children)
- {
- }
- }
+ public class HqlSelectFrom : HqlStatement
+ {
+ internal HqlSelectFrom(IASTFactory factory, params HqlTreeNode[] children)
+ : base(HqlSqlWalker.SELECT_FROM, "select_from", factory, children)
+ {
+ }
+ }
- public class HqlSelectFrom : HqlStatement
- {
- internal HqlSelectFrom(IASTFactory factory, params HqlTreeNode[] children)
- : base(HqlSqlWalker.SELECT_FROM, "select_from", factory, children)
- {
- }
- }
+ public class HqlAlias : HqlExpression
+ {
+ public HqlAlias(IASTFactory factory, string @alias)
+ : base(HqlSqlWalker.ALIAS, alias, factory)
+ {
+ }
+ }
- public class HqlAlias : HqlExpression
- {
- public HqlAlias(IASTFactory factory, string @alias)
- : base(HqlSqlWalker.ALIAS, alias, factory)
- {
- }
- }
+ public class HqlDivide : HqlExpression
+ {
+ public HqlDivide(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.DIV, "/", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlDivide : HqlExpression
- {
- public HqlDivide(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.DIV, "/", factory, lhs, rhs)
- {
- }
- }
+ public class HqlMultiplty : HqlExpression
+ {
+ public HqlMultiplty(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.STAR, "*", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlMultiplty : HqlExpression
- {
- public HqlMultiplty(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.STAR, "*", factory, lhs, rhs)
- {
- }
- }
+ public class HqlSubtract : HqlExpression
+ {
+ public HqlSubtract(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.MINUS, "-", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlSubtract : HqlExpression
- {
- public HqlSubtract(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.MINUS, "-", factory, lhs, rhs)
- {
- }
- }
+ public class HqlAdd : HqlExpression
+ {
+ public HqlAdd(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.PLUS, "+", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlAdd : HqlExpression
- {
- public HqlAdd(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.PLUS, "+", factory, lhs, rhs)
- {
- }
- }
+ public class HqlBooleanOr : HqlBooleanExpression
+ {
+ public HqlBooleanOr(IASTFactory factory, HqlBooleanExpression lhs, HqlBooleanExpression rhs)
+ : base(HqlSqlWalker.OR, "or", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlBooleanOr : HqlBooleanExpression
- {
- public HqlBooleanOr(IASTFactory factory, HqlBooleanExpression lhs, HqlBooleanExpression rhs)
- : base(HqlSqlWalker.OR, "or", factory, lhs, rhs)
- {
- }
- }
+ public class HqlBooleanAnd : HqlBooleanExpression
+ {
+ public HqlBooleanAnd(IASTFactory factory, HqlBooleanExpression lhs, HqlBooleanExpression rhs)
+ : base(HqlSqlWalker.AND, "and", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlBooleanAnd : HqlBooleanExpression
- {
- public HqlBooleanAnd(IASTFactory factory, HqlBooleanExpression lhs, HqlBooleanExpression rhs)
- : base(HqlSqlWalker.AND, "and", factory, lhs, rhs)
- {
- }
- }
+ public class HqlEquality : HqlBooleanExpression
+ {
+ public HqlEquality(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.EQ, "==", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlEquality : HqlBooleanExpression
- {
- public HqlEquality(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.EQ, "==", factory, lhs, rhs)
- {
- }
- }
-
- public class HqlParameter : HqlExpression
- {
- public HqlParameter(IASTFactory factory, string name)
- : base(HqlSqlWalker.COLON, ":", factory)
- {
+ public class HqlParameter : HqlExpression
+ {
+ public HqlParameter(IASTFactory factory, string name)
+ : base(HqlSqlWalker.COLON, ":", factory)
+ {
AddChild(new HqlIdent(factory, name));
- }
- }
+ }
+ }
- public class HqlDot : HqlExpression
- {
- public HqlDot(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.DOT, ".", factory, lhs, rhs)
- {
- }
- }
+ public class HqlDot : HqlExpression
+ {
+ public HqlDot(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.DOT, ".", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlBooleanDot : HqlBooleanExpression
- {
- public HqlBooleanDot(IASTFactory factory, HqlDot dot) : base(dot.AstNode.Type, dot.AstNode.Text, factory, dot.Children)
- {
- }
- }
+ public class HqlBooleanDot : HqlBooleanExpression
+ {
+ public HqlBooleanDot(IASTFactory factory, HqlDot dot) : base(dot.AstNode.Type, dot.AstNode.Text, factory, dot.Children)
+ {
+ }
+ }
- public class HqlWhere : HqlStatement
- {
- public HqlWhere(IASTFactory factory, HqlExpression expression)
- : base(HqlSqlWalker.WHERE, "where", factory, expression)
- {
- }
- }
+ public class HqlWhere : HqlStatement
+ {
+ public HqlWhere(IASTFactory factory, HqlExpression expression)
+ : base(HqlSqlWalker.WHERE, "where", factory, expression)
+ {
+ }
+ }
- public class HqlConstant : HqlExpression
- {
- public HqlConstant(IASTFactory factory, int type, string value)
- : base(type, value, factory)
- {
- }
- }
+ public class HqlConstant : HqlExpression
+ {
+ public HqlConstant(IASTFactory factory, int type, string value)
+ : base(type, value, factory)
+ {
+ }
+ }
- public class HqlStringConstant : HqlConstant
- {
- public HqlStringConstant(IASTFactory factory, string s)
- : base(factory, HqlSqlWalker.QUOTED_String, s)
- {
- }
- }
+ public class HqlStringConstant : HqlConstant
+ {
+ public HqlStringConstant(IASTFactory factory, string s)
+ : base(factory, HqlSqlWalker.QUOTED_String, s)
+ {
+ }
+ }
- public class HqlDoubleConstant : HqlConstant
- {
- public HqlDoubleConstant(IASTFactory factory, string s)
- : base(factory, HqlSqlWalker.NUM_DOUBLE, s)
- {
- }
- }
+ public class HqlDoubleConstant : HqlConstant
+ {
+ public HqlDoubleConstant(IASTFactory factory, string s)
+ : base(factory, HqlSqlWalker.NUM_DOUBLE, s)
+ {
+ }
+ }
- public class HqlFloatConstant : HqlConstant
- {
- public HqlFloatConstant(IASTFactory factory, string s)
- : base(factory, HqlSqlWalker.NUM_FLOAT, s)
- {
- }
- }
+ public class HqlFloatConstant : HqlConstant
+ {
+ public HqlFloatConstant(IASTFactory factory, string s)
+ : base(factory, HqlSqlWalker.NUM_FLOAT, s)
+ {
+ }
+ }
- public class HqlIntegerConstant : HqlConstant
- {
- public HqlIntegerConstant(IASTFactory factory, string s)
- : base(factory, HqlSqlWalker.NUM_INT, s)
- {
- }
- }
+ public class HqlIntegerConstant : HqlConstant
+ {
+ public HqlIntegerConstant(IASTFactory factory, string s)
+ : base(factory, HqlSqlWalker.NUM_INT, s)
+ {
+ }
+ }
- public class HqlDecimalConstant : HqlConstant
- {
- public HqlDecimalConstant(IASTFactory factory, string s)
- : base(factory, HqlSqlWalker.NUM_DECIMAL, s)
- {
- }
- }
+ public class HqlDecimalConstant : HqlConstant
+ {
+ public HqlDecimalConstant(IASTFactory factory, string s)
+ : base(factory, HqlSqlWalker.NUM_DECIMAL, s)
+ {
+ }
+ }
- public class HqlFalse : HqlConstant
- {
- public HqlFalse(IASTFactory factory)
- : base(factory, HqlSqlWalker.FALSE, "false")
- {
- }
- }
+ public class HqlFalse : HqlConstant
+ {
+ public HqlFalse(IASTFactory factory)
+ : base(factory, HqlSqlWalker.FALSE, "false")
+ {
+ }
+ }
- public class HqlTrue : HqlConstant
- {
- public HqlTrue(IASTFactory factory)
- : base(factory, HqlSqlWalker.TRUE, "true")
- {
- }
- }
+ public class HqlTrue : HqlConstant
+ {
+ public HqlTrue(IASTFactory factory)
+ : base(factory, HqlSqlWalker.TRUE, "true")
+ {
+ }
+ }
+ public class HqlNull : HqlConstant
+ {
+ public HqlNull(IASTFactory factory)
+ : base(factory, HqlSqlWalker.NULL, "null")
+ {
+ }
+ }
- public class HqlNull : HqlConstant
- {
- public HqlNull(IASTFactory factory)
- : base(factory, HqlSqlWalker.NULL, "null")
- {
- }
- }
+ public class HqlOrderBy : HqlStatement
+ {
+ public HqlOrderBy(IASTFactory factory)
+ : base(HqlSqlWalker.ORDER, "order by", factory)
+ {
+ }
+ }
- public class HqlOrderBy : HqlStatement
- {
- public HqlOrderBy(IASTFactory factory)
- : base(HqlSqlWalker.ORDER, "order by", factory)
- {
- }
- }
+ public enum HqlDirection
+ {
+ Ascending,
+ Descending
+ }
- public enum HqlDirection
- {
- Ascending,
- Descending
- }
+ public class HqlDirectionStatement : HqlStatement
+ {
+ public HqlDirectionStatement(int type, string text, IASTFactory factory)
+ : base(type, text, factory)
+ {
+ }
+ }
- public class HqlDirectionStatement : HqlStatement
- {
- public HqlDirectionStatement(int type, string text, IASTFactory factory)
- : base(type, text, factory)
- {
- }
- }
+ public class HqlDirectionAscending : HqlDirectionStatement
+ {
+ public HqlDirectionAscending(IASTFactory factory)
+ : base(HqlSqlWalker.ASCENDING, "asc", factory)
+ {
+ }
+ }
- public class HqlDirectionAscending : HqlDirectionStatement
- {
- public HqlDirectionAscending(IASTFactory factory)
- : base(HqlSqlWalker.ASCENDING, "asc", factory)
- {
- }
- }
+ public class HqlDirectionDescending : HqlDirectionStatement
+ {
+ public HqlDirectionDescending(IASTFactory factory)
+ : base(HqlSqlWalker.DESCENDING, "desc", factory)
+ {
+ }
+ }
- public class HqlDirectionDescending : HqlDirectionStatement
- {
- public HqlDirectionDescending(IASTFactory factory)
- : base(HqlSqlWalker.DESCENDING, "desc", factory)
- {
- }
- }
+ public class HqlSelect : HqlStatement
+ {
+ public HqlSelect(IASTFactory factory, params HqlExpression[] expression)
+ : base(HqlSqlWalker.SELECT, "select", factory, expression)
+ {
+ }
+ }
- public class HqlSelect : HqlStatement
- {
- public HqlSelect(IASTFactory factory, params HqlExpression[] expression)
- : base(HqlSqlWalker.SELECT, "select", factory, expression)
- {
- }
- }
+ public class HqlElse : HqlStatement
+ {
+ public HqlElse(IASTFactory factory, HqlExpression ifFalse)
+ : base(HqlSqlWalker.ELSE, "else", factory, ifFalse)
+ {
+ }
+ }
- public class HqlElse : HqlStatement
- {
- public HqlElse(IASTFactory factory, HqlExpression ifFalse)
- : base(HqlSqlWalker.ELSE, "else", factory, ifFalse)
- {
- }
- }
+ public class HqlWhen : HqlStatement
+ {
+ public HqlWhen(IASTFactory factory, HqlExpression predicate, HqlExpression ifTrue)
+ : base(HqlSqlWalker.WHEN, "when", factory, predicate, ifTrue)
+ {
+ }
+ }
- public class HqlWhen : HqlStatement
- {
- public HqlWhen(IASTFactory factory, HqlExpression predicate, HqlExpression ifTrue)
- : base(HqlSqlWalker.WHEN, "when", factory, predicate, ifTrue)
- {
- }
- }
+ public class HqlCase : HqlExpression
+ {
+ public HqlCase(IASTFactory factory, HqlWhen[] whenClauses, HqlExpression ifFalse)
+ : base(HqlSqlWalker.CASE, "case", factory, whenClauses)
+ {
+ if (ifFalse != null)
+ {
+ AddChild(new HqlElse(factory, ifFalse));
+ }
+ }
+ }
- public class HqlCase : HqlExpression
- {
- public HqlCase(IASTFactory factory, HqlWhen[] whenClauses, HqlExpression ifFalse)
- : base(HqlSqlWalker.CASE, "case", factory, whenClauses)
- {
- if (ifFalse != null)
- {
- AddChild(new HqlElse(factory, ifFalse));
- }
- }
- }
+ public class HqlGreaterThanOrEqual : HqlBooleanExpression
+ {
+ public HqlGreaterThanOrEqual(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.GE, "ge", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlGreaterThanOrEqual : HqlBooleanExpression
- {
- public HqlGreaterThanOrEqual(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.GE, "ge", factory, lhs, rhs)
- {
- }
- }
+ public class HqlGreaterThan : HqlBooleanExpression
+ {
+ public HqlGreaterThan(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.GT, "gt", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlGreaterThan : HqlBooleanExpression
- {
- public HqlGreaterThan(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.GT, "gt", factory, lhs, rhs)
- {
- }
- }
+ public class HqlLessThanOrEqual : HqlBooleanExpression
+ {
+ public HqlLessThanOrEqual(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.LE, "le", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlLessThanOrEqual : HqlBooleanExpression
- {
- public HqlLessThanOrEqual(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.LE, "le", factory, lhs, rhs)
- {
- }
- }
+ public class HqlLessThan : HqlBooleanExpression
+ {
+ public HqlLessThan(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.LT, "lt", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlLessThan : HqlBooleanExpression
- {
- public HqlLessThan(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.LT, "lt", factory, lhs, rhs)
- {
- }
- }
+ public class HqlInequality : HqlBooleanExpression
+ {
+ public HqlInequality(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
+ : base(HqlSqlWalker.NE, "ne", factory, lhs, rhs)
+ {
+ }
+ }
- public class HqlInequality : HqlBooleanExpression
- {
- public HqlInequality(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
- : base(HqlSqlWalker.NE, "ne", factory, lhs, rhs)
- {
- }
- }
+ public class HqlRowStar : HqlStatement
+ {
+ public HqlRowStar(IASTFactory factory)
+ : base(HqlSqlWalker.ROW_STAR, "*", factory)
+ {
+ }
+ }
- public class HqlRowStar : HqlStatement
- {
- public HqlRowStar(IASTFactory factory)
- : base(HqlSqlWalker.ROW_STAR, "*", factory)
- {
- }
- }
+ public class HqlCount : HqlExpression
+ {
+ public HqlCount(IASTFactory factory)
+ : base(HqlSqlWalker.COUNT, "count", factory)
+ {
+ }
- public class HqlCount : HqlExpression
- {
- public HqlCount(IASTFactory factory)
- : base(HqlSqlWalker.COUNT, "count", factory)
- {
- }
+ public HqlCount(IASTFactory factory, HqlExpression child)
+ : base(HqlSqlWalker.COUNT, "count", factory, child)
+ {
+ }
+ }
- public HqlCount(IASTFactory factory, HqlExpression child)
- : base(HqlSqlWalker.COUNT, "count", factory, child)
- {
- }
- }
+ public class HqlAs : HqlExpression
+ {
+ public HqlAs(IASTFactory factory, HqlExpression expression, System.Type type)
+ : base(HqlSqlWalker.AS, "as", factory, expression)
+ {
+ switch (System.Type.GetTypeCode(type))
+ {
+ case TypeCode.Int32:
+ AddChild(new HqlIdent(factory, "integer"));
+ break;
+ default:
+ throw new InvalidOperationException();
+ }
+ }
+ }
- public class HqlAs : HqlExpression
- {
- public HqlAs(IASTFactory factory, HqlExpression expression, System.Type type)
- : base(HqlSqlWalker.AS, "as", factory, expression)
- {
- switch (System.Type.GetTypeCode(type))
- {
- case TypeCode.Int32:
- AddChild(new HqlIdent(factory, "integer"));
- break;
- default:
- throw new InvalidOperationException();
- }
- }
- }
+ public class HqlCast : HqlExpression
+ {
+ public HqlCast(IASTFactory factory, HqlExpression expression, System.Type type)
+ : base(HqlSqlWalker.METHOD_CALL, "method", factory)
+ {
+ AddChild(new HqlIdent(factory, "cast"));
+ AddChild(new HqlExpressionList(factory, expression, new HqlIdent(factory, type)));
+ }
+ }
- public class HqlCast : HqlExpression
- {
- public HqlCast(IASTFactory factory, HqlExpression expression, System.Type type)
- : base(HqlSqlWalker.METHOD_CALL, "method", factory)
- {
- AddChild(new HqlIdent(factory, "cast"));
- AddChild(new HqlExpressionList(factory, expression, new HqlIdent(factory, type)));
- }
- }
-
public class HqlCoalesce : HqlExpression
{
public HqlCoalesce(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
@@ -608,264 +606,280 @@
}
}
- public class HqlExpressionList : HqlStatement
- {
- public HqlExpressionList(IASTFactory factory, params HqlExpression[] expressions)
- : base(HqlSqlWalker.EXPR_LIST, "expr_list", factory, expressions)
- {
- }
+ public class HqlDictionaryIndex : HqlExpression
+ {
+ public HqlDictionaryIndex(IASTFactory factory, HqlExpression dictionary, HqlExpression index)
+ : base(HqlSqlWalker.INDEX_OP, "[", factory, dictionary, index)
+ {
+ }
+ }
- public HqlExpressionList(IASTFactory factory, IEnumerable<HqlExpression> expressions)
- : base(HqlSqlWalker.EXPR_LIST, "expr_list", factory, expressions.Cast<HqlTreeNode>())
- {
- }
- }
+ public class HqlIndices : HqlExpression
+ {
+ public HqlIndices(IASTFactory factory, HqlExpression dictionary)
+ : base(HqlSqlWalker.INDICES, "indices", factory, dictionary)
+ {
+ }
+ }
- public class HqlBooleanNot : HqlBooleanExpression
- {
- public HqlBooleanNot(IASTFactory factory, HqlBooleanExpression operand)
- : base(HqlSqlWalker.NOT, "not", factory, operand)
- {
- }
- }
+ public class HqlExpressionList : HqlStatement
+ {
+ public HqlExpressionList(IASTFactory factory, params HqlExpression[] expressions)
+ : base(HqlSqlWalker.EXPR_LIST, "expr_list", factory, expressions)
+ {
+ }
- public class HqlAverage : HqlExpression
- {
- public HqlAverage(IASTFactory factory, HqlExpression expression)
- : base(HqlSqlWalker.AGGREGATE, "avg", factory, expression)
- {
- }
- }
+ public HqlExpressionList(IASTFactory factory, IEnumerable<HqlExpression> expressions)
+ : base(HqlSqlWalker.EXPR_LIST, "expr_list", factory, expressions.Cast<HqlTreeNode>())
+ {
+ }
+ }
- public class HqlBitwiseNot : HqlExpression
- {
- public HqlBitwiseNot(IASTFactory factory) : base(HqlSqlWalker.BNOT, "not", factory)
- {
- }
- }
+ public class HqlBooleanNot : HqlBooleanExpression
+ {
+ public HqlBooleanNot(IASTFactory factory, HqlBooleanExpression operand)
+ : base(HqlSqlWalker.NOT, "not", factory, operand)
+ {
+ }
+ }
- public class HqlSum : HqlExpression
- {
- public HqlSum(IASTFactory factory)
- : base(HqlSqlWalker.AGGREGATE, "sum", factory)
- {
- }
+ public class HqlAverage : HqlExpression
+ {
+ public HqlAverage(IASTFactory factory, HqlExpression expression)
+ : base(HqlSqlWalker.AGGREGATE, "avg", factory, expression)
+ {
+ }
+ }
- public HqlSum(IASTFactory factory, HqlExpression expression)
- : base(HqlSqlWalker.AGGREGATE, "sum", factory, expression)
- {
- }
- }
+ public class HqlBitwiseNot : HqlExpression
+ {
+ public HqlBitwiseNot(IASTFactory factory) : base(HqlSqlWalker.BNOT, "not", factory)
+ {
+ }
+ }
- public class HqlMax : HqlExpression
- {
- public HqlMax(IASTFactory factory, HqlExpression expression)
- : base(HqlSqlWalker.AGGREGATE, "max", factory, expression)
- {
- }
+ public class HqlSum : HqlExpression
+ {
+ public HqlSum(IASTFactory factory)
+ : base(HqlSqlWalker.AGGREGATE, "sum", factory)
+ {
+ }
+
+ public HqlSum(IASTFactory factory, HqlExpression expression)
+ : base(HqlSqlWalker.AGGREGATE, "sum", factory, expression)
+ {
+ }
+ }
+
+ public class HqlMax : HqlExpression
+ {
+ public HqlMax(IASTFactory factory, HqlExpression expression)
+ : base(HqlSqlWalker.AGGREGATE, "max", factory, expression)
+ {
+ }
}
- public class HqlMin : HqlExpression
- {
- public HqlMin(IASTFactory factory, HqlExpression expression)
- : base(HqlSqlWalker.AGGREGATE, "min", factory, expression)
- {
- }
- }
+ public class HqlMin : HqlExpression
+ {
+ public HqlMin(IASTFactory factory, HqlExpression expression)
+ : base(HqlSqlWalker.AGGREGATE, "min", factory, expression)
+ {
+ }
+ }
- public class HqlJoin : HqlStatement
- {
- public HqlJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias) : base(HqlSqlWalker.JOIN, "join", factory, expression, @alias)
- {
- }
- }
+ public class HqlJoin : HqlStatement
+ {
+ public HqlJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias) : base(HqlSqlWalker.JOIN, "join", factory, expression, @alias)
+ {
+ }
+ }
- public class HqlLeftJoin : HqlTreeNode
- {
- public HqlLeftJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias) : base(HqlSqlWalker.JOIN, "join", factory, new HqlLeft(factory), expression, @alias)
- {
- }
- }
+ public class HqlLeftJoin : HqlTreeNode
+ {
+ public HqlLeftJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias) : base(HqlSqlWalker.JOIN, "join", factory, new HqlLeft(factory), expression, @alias)
+ {
+ }
+ }
- public class HqlFetchJoin : HqlTreeNode
- {
- public HqlFetchJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias)
- : base(HqlSqlWalker.JOIN, "join", factory, new HqlFetch(factory), expression, @alias)
- {
- }
- }
+ public class HqlFetchJoin : HqlTreeNode
+ {
+ public HqlFetchJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias)
+ : base(HqlSqlWalker.JOIN, "join", factory, new HqlFetch(factory), expression, @alias)
+ {
+ }
+ }
- public class HqlLeftFetchJoin : HqlTreeNode
- {
- public HqlLeftFetchJoin(IASTFactory factory, HqlExpression ...
[truncated message content] |