protected HqlTreeNode(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
		{
			Factory = factory;
			_node = factory.CreateNode(type, text);
			_children = new List<HqlTreeNode>();

			AddChildren(children);
		}
Example #2
0
        protected HqlTreeNode(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
        {
            _node = factory.CreateNode(type, text);
            _children = new List<HqlTreeNode>();

            foreach (var child in children)
            {
                _children.Add(child);
                _node.AddChild(child.AstNode);
            }
        }
		/// <summary>
		/// Generates the scalar column AST nodes for a given array of SQL columns
		/// </summary>
		public static void GenerateScalarColumns(IASTFactory factory, IASTNode node, string[] sqlColumns, int i)
		{
			if (sqlColumns.Length == 1)
			{
				GenerateSingleScalarColumn(factory, node, i);
			}
			else
			{
				node.Text = sqlColumns[0]; // Use the DOT node to emit the first column name.

				// Create the column names, folled by the column aliases.
				for (int j = 0; j < sqlColumns.Length; j++)
				{
					if (j > 0)
					{
						node = node.AddSibling(factory.CreateNode(HqlSqlWalker.SQL_TOKEN, sqlColumns[j]));
					}

					node = node.AddSibling(factory.CreateNode(HqlSqlWalker.SELECT_COLUMNS, " as " + NameGenerator.ScalarName(i, j)));
				}
			}
		}
Example #4
0
		/// <summary>
		/// Turns a path into an AST.
		/// </summary>
		/// <param name="path">The path.</param>
		/// <param name="factory">The AST factory to use.</param>
		/// <returns>An HQL AST representing the path.</returns>
		public static IASTNode ParsePath(string path, IASTFactory factory)
		{
			string[] identifiers = StringHelper.Split(".", path);
			IASTNode lhs = null;
			for (int i = 0; i < identifiers.Length; i++)
			{
				string identifier = identifiers[i];
				IASTNode child = factory.CreateNode(HqlSqlWalker.IDENT, identifier);
				if (i == 0)
				{
					lhs = child;
				}
				else
				{
					lhs = factory.CreateNode(HqlSqlWalker.DOT, ".", lhs, child);
				}
			}
			if (log.IsDebugEnabled)
			{
				log.Debug("parsePath() : " + path + " -> " + ASTUtil.GetDebugstring(lhs));
			}
			return lhs;
		}
Example #5
0
 public HqlLike(IASTFactory factory, HqlExpression lhs, HqlExpression rhs, HqlConstant escapeCharacter)
     : base(HqlSqlWalker.LIKE, "like", factory, lhs, rhs, new HqlEscape(factory, escapeCharacter))
 {
 }
Example #6
0
 public HqlGroupBy(IASTFactory factory, params HqlExpression[] expressions) : base(HqlSqlWalker.GROUP, "group by", factory, expressions)
 {
 }
		public HqlStar(IASTFactory factory) : base(HqlSqlWalker.ROW_STAR, "*", factory)
		{
		}
		public HqlConcat(IASTFactory factory, params HqlExpression[] args)
			: base(HqlSqlWalker.METHOD_CALL, "method", factory)
		{
			AddChild(new HqlIdent(factory, "concat"));
			AddChild(new HqlExpressionList(factory, args));
		}
		public HqlDistinct(IASTFactory factory) : base(HqlSqlWalker.DISTINCT, "distinct", factory)
		{
		}
Example #10
0
		public HqlLeft(IASTFactory factory)
			: base(HqlSqlWalker.LEFT, "left", factory)
		{
		}
Example #11
0
		public HqlFetch(IASTFactory factory) : base(HqlSqlWalker.FETCH, "fetch", factory)
		{
		}
 public HqlLikeWithEscape(IASTFactory factory, HqlExpression lhs, HqlExpression rhs, HqlEscape escape)
     : base(HqlSqlWalker.LIKE, "like", factory, lhs, rhs, escape)
 {
 }
Example #13
0
 public static void GenerateSingleScalarColumn(IASTFactory factory, IASTNode node, int i)
 {
     node.AddSibling(factory.CreateNode(HqlSqlWalker.SELECT_COLUMNS, " as " + NameGenerator.ScalarName(i, 0)));
 }
Example #14
0
 public HqlExpressionSubTreeHolder(IASTFactory factory, IEnumerable <HqlTreeNode> children) : base(int.MinValue, "expression sub-tree holder", factory, children)
 {
 }
Example #15
0
 public HqlBooleanMethodCall(IASTFactory factory, string methodName, IEnumerable <HqlExpression> parameters)
     : base(HqlSqlWalker.METHOD_CALL, "method", factory)
 {
     AddChild(new HqlIdent(factory, methodName));
     AddChild(new HqlExpressionList(factory, parameters));
 }
Example #16
0
 public HqlConcat(IASTFactory factory, params HqlExpression[] args)
     : base(HqlSqlWalker.METHOD_CALL, "method", factory)
 {
     AddChild(new HqlIdent(factory, "concat"));
     AddChild(new HqlExpressionList(factory, args));
 }
Example #17
0
 public HqlEscape(IASTFactory factory, HqlConstant escapeCharacter)
     : base(HqlSqlWalker.ESCAPE, "escape", factory, escapeCharacter)
 {
 }
Example #18
0
		public HqlSum(IASTFactory factory, HqlExpression expression)
			: base(HqlSqlWalker.AGGREGATE, "sum", factory, expression)
		{
		}
Example #19
0
		public HqlJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias) : base(HqlSqlWalker.JOIN, "join", factory, expression, @alias)
		{
		}
Example #20
0
 public HqlAll(IASTFactory factory)
     : base(HqlSqlWalker.ALL, "all", factory)
 {
 }
Example #21
0
		public HqlBitwiseOr(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
			: base(HqlSqlWalker.BOR, "bor", factory, lhs, rhs)
		{
		}
 public HqlTreeBuilder()
 {
     _factory = new ASTFactory(new ASTTreeAdaptor());
 }
Example #23
0
		public HqlExists(IASTFactory factory, HqlQuery query) : base(HqlSqlWalker.EXISTS, "exists", factory, query)
		{
		}
 public HqlElements(IASTFactory factory, HqlExpression dictionary)
     : base(HqlSqlWalker.ELEMENTS, "elements", factory, dictionary)
 {
 }
Example #25
0
		public HqlAll(IASTFactory factory)
			: base(HqlSqlWalker.ALL, "all", factory)
		{
		}
Example #26
0
 public HqlEscape(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.ESCAPE, "escape", factory, children)
 {
 }
Example #27
0
		public HqlExpressionSubTreeHolder(IASTFactory factory, IEnumerable<HqlTreeNode> children) : base(int.MinValue, "expression sub-tree holder", factory, children)
		{
		}
Example #28
0
 public HqlIsNotNull(IASTFactory factory, HqlExpression lhs) : base(HqlSqlWalker.IS_NOT_NULL, "is not null", factory, lhs)
 {
 }
Example #29
0
		public HqlInList(IASTFactory factory, HqlTreeNode source)
			: base(HqlSqlWalker.IN_LIST, "inlist", factory, source)
		{
		}
Example #30
0
		public HqlBitwiseNot(IASTFactory factory) : base(HqlSqlWalker.BNOT, "not", factory)
		{
		}
Example #31
0
 public HqlStar(IASTFactory factory) : base(HqlSqlWalker.ROW_STAR, "*", factory)
 {
 }
Example #32
0
 public HqlLike(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
     : base(HqlSqlWalker.LIKE, "like", factory, lhs, rhs)
 {
 }
Example #33
0
 public HqlIn(IASTFactory factory, HqlExpression itemExpression, HqlTreeNode source)
     : base(HqlSqlWalker.IN, "in", factory, itemExpression)
 {
     AddChild(new HqlInList(factory, source));
 }
Example #34
0
 public HqlInList(IASTFactory factory, HqlTreeNode source)
     : base(HqlSqlWalker.IN_LIST, "inlist", factory, source)
 {
 }
Example #35
0
		public HqlSum(IASTFactory factory)
			: base(HqlSqlWalker.AGGREGATE, "sum", factory)
		{
		}
Example #36
0
 protected HqlStatement(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
     : base(type, text, factory, children)
 {
 }
Example #37
0
		public HqlMin(IASTFactory factory, HqlExpression expression)
			: base(HqlSqlWalker.AGGREGATE, "min", factory, expression)
		{
		}
Example #38
0
 protected HqlStatement(int type, string text, IASTFactory factory, IEnumerable <HqlTreeNode> children)
     : base(type, text, factory, children)
 {
 }
Example #39
0
		public HqlLeftFetchJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias)
			: base(HqlSqlWalker.JOIN, "join", factory, new HqlLeft(factory), new HqlFetch(factory), expression, @alias)
		{
		}
Example #40
0
 protected HqlBooleanExpression(int type, string text, IASTFactory factory, IEnumerable <HqlTreeNode> children)
     : base(type, text, factory, children)
 {
 }
Example #41
0
		public HqlClass(IASTFactory factory)
			: base(HqlSqlWalker.CLASS, "class", factory)
		{
		}
Example #42
0
 protected HqlBooleanExpression(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
     : base(type, text, factory, children)
 {
 }
Example #43
0
		public HqlBitwiseAnd(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
			: base(HqlSqlWalker.BAND, "band", factory, lhs, rhs)
		{
		}
Example #44
0
 internal HqlQuery(IASTFactory factory, params HqlStatement[] children)
     : base(HqlSqlWalker.QUERY, "query", factory, children)
 {
 }
Example #45
0
		public HqlAny(IASTFactory factory) : base(HqlSqlWalker.ANY, "any", factory)
		{
		}
Example #46
0
 internal HqlIdent(IASTFactory factory, string ident)
     : base(HqlSqlWalker.IDENT, ident, factory)
 {
 }
Example #47
0
		public HqlElements(IASTFactory factory) : base(HqlSqlWalker.ELEMENTS, "elements", factory)
		{
		}
Example #48
0
 protected HqlTreeNode(int type, string text, IASTFactory factory, params HqlTreeNode[] children) : this(type, text, factory, (IEnumerable <HqlTreeNode>)children)
 {
 }
Example #49
0
		public HqlGroupBy(IASTFactory factory, params HqlExpression[] expressions) : base(HqlSqlWalker.GROUP, "group by", factory, expressions)
		{
		}
Example #50
0
 internal HqlRange(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.RANGE, "range", factory, children)
 {
 }
Example #51
0
		public HqlLike(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
			: base(HqlSqlWalker.LIKE, "like", factory, lhs, rhs)
		{
		}
Example #52
0
 internal HqlFrom(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.FROM, "from", factory, children)
 {
 }
Example #53
0
		public HqlBooleanMethodCall(IASTFactory factory, string methodName, IEnumerable<HqlExpression> parameters)
			: base(HqlSqlWalker.METHOD_CALL, "method", factory)
		{
			AddChild(new HqlIdent(factory, methodName));
			AddChild(new HqlExpressionList(factory, parameters));
		}
Example #54
0
 internal HqlSelectFrom(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.SELECT_FROM, "select_from", factory, children)
 {
 }
Example #55
0
		public HqlIsNotNull(IASTFactory factory, HqlExpression lhs) : base(HqlSqlWalker.IS_NOT_NULL, "is not null", factory, lhs)
		{
		}
Example #56
0
 internal HqlDelete(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.DELETE, "delete", factory, children)
 {
 }
Example #57
0
		public HqlIn(IASTFactory factory, HqlExpression itemExpression, HqlTreeNode source)
			: base(HqlSqlWalker.IN, "in", factory, itemExpression)
		{
			AddChild(new HqlInList(factory, source));
		}
Example #58
0
 internal HqlUpdate(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.UPDATE, "update", factory, children)
 {
 }
Example #59
0
		public HqlTreeBuilder()
		{
			_factory = new ASTFactory(new ASTTreeAdaptor());
		}
Example #60
0
 public HqlDistinct(IASTFactory factory) : base(HqlSqlWalker.DISTINCT, "distinct", factory)
 {
 }