コード例 #1
0
		protected HqlTreeNode(int type, string text, IASTFactory factory, IEnumerable<HqlTreeNode> children)
		{
			Factory = factory;
			_node = factory.CreateNode(type, text);
			_children = new List<HqlTreeNode>();

			AddChildren(children);
		}
コード例 #2
0
ファイル: HqlTreeNode.cs プロジェクト: nkmajeti/nhibernate
        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);
            }
        }
コード例 #3
0
		/// <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)));
				}
			}
		}
コード例 #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;
		}
コード例 #5
0
 public HqlLike(IASTFactory factory, HqlExpression lhs, HqlExpression rhs, HqlConstant escapeCharacter)
     : base(HqlSqlWalker.LIKE, "like", factory, lhs, rhs, new HqlEscape(factory, escapeCharacter))
 {
 }
コード例 #6
0
 public HqlGroupBy(IASTFactory factory, params HqlExpression[] expressions) : base(HqlSqlWalker.GROUP, "group by", factory, expressions)
 {
 }
コード例 #7
0
		public HqlStar(IASTFactory factory) : base(HqlSqlWalker.ROW_STAR, "*", factory)
		{
		}
コード例 #8
0
		public HqlConcat(IASTFactory factory, params HqlExpression[] args)
			: base(HqlSqlWalker.METHOD_CALL, "method", factory)
		{
			AddChild(new HqlIdent(factory, "concat"));
			AddChild(new HqlExpressionList(factory, args));
		}
コード例 #9
0
		public HqlDistinct(IASTFactory factory) : base(HqlSqlWalker.DISTINCT, "distinct", factory)
		{
		}
コード例 #10
0
		public HqlLeft(IASTFactory factory)
			: base(HqlSqlWalker.LEFT, "left", factory)
		{
		}
コード例 #11
0
		public HqlFetch(IASTFactory factory) : base(HqlSqlWalker.FETCH, "fetch", factory)
		{
		}
コード例 #12
0
 public HqlLikeWithEscape(IASTFactory factory, HqlExpression lhs, HqlExpression rhs, HqlEscape escape)
     : base(HqlSqlWalker.LIKE, "like", factory, lhs, rhs, escape)
 {
 }
コード例 #13
0
ファイル: ColumnHelper.cs プロジェクト: ImanRezaeipour/GTS
 public static void GenerateSingleScalarColumn(IASTFactory factory, IASTNode node, int i)
 {
     node.AddSibling(factory.CreateNode(HqlSqlWalker.SELECT_COLUMNS, " as " + NameGenerator.ScalarName(i, 0)));
 }
コード例 #14
0
 public HqlExpressionSubTreeHolder(IASTFactory factory, IEnumerable <HqlTreeNode> children) : base(int.MinValue, "expression sub-tree holder", factory, children)
 {
 }
コード例 #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));
 }
コード例 #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));
 }
コード例 #17
0
 public HqlEscape(IASTFactory factory, HqlConstant escapeCharacter)
     : base(HqlSqlWalker.ESCAPE, "escape", factory, escapeCharacter)
 {
 }
コード例 #18
0
		public HqlSum(IASTFactory factory, HqlExpression expression)
			: base(HqlSqlWalker.AGGREGATE, "sum", factory, expression)
		{
		}
コード例 #19
0
		public HqlJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias) : base(HqlSqlWalker.JOIN, "join", factory, expression, @alias)
		{
		}
コード例 #20
0
 public HqlAll(IASTFactory factory)
     : base(HqlSqlWalker.ALL, "all", factory)
 {
 }
コード例 #21
0
		public HqlBitwiseOr(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
			: base(HqlSqlWalker.BOR, "bor", factory, lhs, rhs)
		{
		}
コード例 #22
0
 public HqlTreeBuilder()
 {
     _factory = new ASTFactory(new ASTTreeAdaptor());
 }
コード例 #23
0
		public HqlExists(IASTFactory factory, HqlQuery query) : base(HqlSqlWalker.EXISTS, "exists", factory, query)
		{
		}
コード例 #24
0
 public HqlElements(IASTFactory factory, HqlExpression dictionary)
     : base(HqlSqlWalker.ELEMENTS, "elements", factory, dictionary)
 {
 }
コード例 #25
0
		public HqlAll(IASTFactory factory)
			: base(HqlSqlWalker.ALL, "all", factory)
		{
		}
コード例 #26
0
 public HqlEscape(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.ESCAPE, "escape", factory, children)
 {
 }
コード例 #27
0
		public HqlExpressionSubTreeHolder(IASTFactory factory, IEnumerable<HqlTreeNode> children) : base(int.MinValue, "expression sub-tree holder", factory, children)
		{
		}
コード例 #28
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 public HqlIsNotNull(IASTFactory factory, HqlExpression lhs) : base(HqlSqlWalker.IS_NOT_NULL, "is not null", factory, lhs)
 {
 }
コード例 #29
0
		public HqlInList(IASTFactory factory, HqlTreeNode source)
			: base(HqlSqlWalker.IN_LIST, "inlist", factory, source)
		{
		}
コード例 #30
0
		public HqlBitwiseNot(IASTFactory factory) : base(HqlSqlWalker.BNOT, "not", factory)
		{
		}
コード例 #31
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 public HqlStar(IASTFactory factory) : base(HqlSqlWalker.ROW_STAR, "*", factory)
 {
 }
コード例 #32
0
 public HqlLike(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
     : base(HqlSqlWalker.LIKE, "like", factory, lhs, rhs)
 {
 }
コード例 #33
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 public HqlIn(IASTFactory factory, HqlExpression itemExpression, HqlTreeNode source)
     : base(HqlSqlWalker.IN, "in", factory, itemExpression)
 {
     AddChild(new HqlInList(factory, source));
 }
コード例 #34
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 public HqlInList(IASTFactory factory, HqlTreeNode source)
     : base(HqlSqlWalker.IN_LIST, "inlist", factory, source)
 {
 }
コード例 #35
0
		public HqlSum(IASTFactory factory)
			: base(HqlSqlWalker.AGGREGATE, "sum", factory)
		{
		}
コード例 #36
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 protected HqlStatement(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
     : base(type, text, factory, children)
 {
 }
コード例 #37
0
		public HqlMin(IASTFactory factory, HqlExpression expression)
			: base(HqlSqlWalker.AGGREGATE, "min", factory, expression)
		{
		}
コード例 #38
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 protected HqlStatement(int type, string text, IASTFactory factory, IEnumerable <HqlTreeNode> children)
     : base(type, text, factory, children)
 {
 }
コード例 #39
0
		public HqlLeftFetchJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias)
			: base(HqlSqlWalker.JOIN, "join", factory, new HqlLeft(factory), new HqlFetch(factory), expression, @alias)
		{
		}
コード例 #40
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 protected HqlBooleanExpression(int type, string text, IASTFactory factory, IEnumerable <HqlTreeNode> children)
     : base(type, text, factory, children)
 {
 }
コード例 #41
0
		public HqlClass(IASTFactory factory)
			: base(HqlSqlWalker.CLASS, "class", factory)
		{
		}
コード例 #42
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 protected HqlBooleanExpression(int type, string text, IASTFactory factory, params HqlTreeNode[] children)
     : base(type, text, factory, children)
 {
 }
コード例 #43
0
		public HqlBitwiseAnd(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
			: base(HqlSqlWalker.BAND, "band", factory, lhs, rhs)
		{
		}
コード例 #44
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 internal HqlQuery(IASTFactory factory, params HqlStatement[] children)
     : base(HqlSqlWalker.QUERY, "query", factory, children)
 {
 }
コード例 #45
0
		public HqlAny(IASTFactory factory) : base(HqlSqlWalker.ANY, "any", factory)
		{
		}
コード例 #46
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 internal HqlIdent(IASTFactory factory, string ident)
     : base(HqlSqlWalker.IDENT, ident, factory)
 {
 }
コード例 #47
0
		public HqlElements(IASTFactory factory) : base(HqlSqlWalker.ELEMENTS, "elements", factory)
		{
		}
コード例 #48
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 protected HqlTreeNode(int type, string text, IASTFactory factory, params HqlTreeNode[] children) : this(type, text, factory, (IEnumerable <HqlTreeNode>)children)
 {
 }
コード例 #49
0
		public HqlGroupBy(IASTFactory factory, params HqlExpression[] expressions) : base(HqlSqlWalker.GROUP, "group by", factory, expressions)
		{
		}
コード例 #50
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 internal HqlRange(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.RANGE, "range", factory, children)
 {
 }
コード例 #51
0
		public HqlLike(IASTFactory factory, HqlExpression lhs, HqlExpression rhs)
			: base(HqlSqlWalker.LIKE, "like", factory, lhs, rhs)
		{
		}
コード例 #52
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 internal HqlFrom(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.FROM, "from", factory, children)
 {
 }
コード例 #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));
		}
コード例 #54
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 internal HqlSelectFrom(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.SELECT_FROM, "select_from", factory, children)
 {
 }
コード例 #55
0
		public HqlIsNotNull(IASTFactory factory, HqlExpression lhs) : base(HqlSqlWalker.IS_NOT_NULL, "is not null", factory, lhs)
		{
		}
コード例 #56
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 internal HqlDelete(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.DELETE, "delete", factory, children)
 {
 }
コード例 #57
0
		public HqlIn(IASTFactory factory, HqlExpression itemExpression, HqlTreeNode source)
			: base(HqlSqlWalker.IN, "in", factory, itemExpression)
		{
			AddChild(new HqlInList(factory, source));
		}
コード例 #58
0
ファイル: HqlTreeNode.cs プロジェクト: jrauber/GH1429
 internal HqlUpdate(IASTFactory factory, params HqlTreeNode[] children)
     : base(HqlSqlWalker.UPDATE, "update", factory, children)
 {
 }
コード例 #59
0
		public HqlTreeBuilder()
		{
			_factory = new ASTFactory(new ASTTreeAdaptor());
		}
コード例 #60
0
 public HqlDistinct(IASTFactory factory) : base(HqlSqlWalker.DISTINCT, "distinct", factory)
 {
 }