本文整理汇总了C#中IASTFactory类的典型用法代码示例。如果您正苦于以下问题:C# IASTFactory类的具体用法?C# IASTFactory怎么用?C# IASTFactory使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
IASTFactory类属于命名空间,在下文中一共展示了IASTFactory类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: 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);
}
示例2: HqlTreeNode
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: GenerateScalarColumns
/// <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: ParsePath
/// <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: HqlInList
public HqlInList(IASTFactory factory, HqlTreeNode source)
: base(HqlSqlWalker.IN_LIST, "inlist", factory, source)
{
}
示例6: HqlStar
public HqlStar(IASTFactory factory) : base(HqlSqlWalker.ROW_STAR, "*", factory)
{
}
示例7: HqlExpressionSubTreeHolder
public HqlExpressionSubTreeHolder(IASTFactory factory, IEnumerable<HqlTreeNode> children) : base(int.MinValue, "expression sub-tree holder", factory, children)
{
}
示例8: HqlConcat
public HqlConcat(IASTFactory factory, params HqlExpression[] args)
: base(HqlSqlWalker.METHOD_CALL, "method", factory)
{
AddChild(new HqlIdent(factory, "concat"));
AddChild(new HqlExpressionList(factory, args));
}
示例9: HqlAll
public HqlAll(IASTFactory factory)
: base(HqlSqlWalker.ALL, "all", factory)
{
}
示例10: HqlDistinct
public HqlDistinct(IASTFactory factory) : base(HqlSqlWalker.DISTINCT, "distinct", factory)
{
}
示例11: HqlJoin
public HqlJoin(IASTFactory factory, HqlExpression expression, HqlAlias @alias) : base(HqlSqlWalker.JOIN, "join", factory, expression, @alias)
{
}
示例12: HqlMin
public HqlMin(IASTFactory factory, HqlExpression expression)
: base(HqlSqlWalker.AGGREGATE, "min", factory, expression)
{
}
示例13: HqlSum
public HqlSum(IASTFactory factory, HqlExpression expression)
: base(HqlSqlWalker.AGGREGATE, "sum", factory, expression)
{
}
示例14: HqlBitwiseNot
public HqlBitwiseNot(IASTFactory factory) : base(HqlSqlWalker.BNOT, "not", factory)
{
}
示例15: HqlExists
public HqlExists(IASTFactory factory, HqlQuery query) : base(HqlSqlWalker.EXISTS, "exists", factory, query)
{
}