java getchild_Java CommonTree.getChild方法代码示例

import org.antlr.runtime.tree.CommonTree; //导入方法依赖的package包/类

static public PropertyArgument buildFieldReference(String argumentName, CommonTree fieldReferenceNode, QueryModelFactory factory,

FunctionEvaluationContext functionEvaluationContext, Selector selector, Map columnMap)

{

if (fieldReferenceNode.getType() != FTSParser.FIELD_REF)

{

throw new FTSQueryException("Not column ref ..." + fieldReferenceNode.getText());

}

String fieldName = getText(fieldReferenceNode.getChild(0));

if (columnMap != null)

{

for (Column column : columnMap.values())

{

if (column.getAlias().equals(fieldName))

{

// TODO: Check selector matches ...

PropertyArgument arg = (PropertyArgument) column.getFunctionArguments().get(PropertyAccessor.ARG_PROPERTY);

fieldName = arg.getPropertyName();

break;

}

}

}

// prepend prefixes and name spaces

if (fieldReferenceNode.getChildCount() > 1)

{

CommonTree child = (CommonTree) fieldReferenceNode.getChild(1);

if (child.getType() == FTSParser.PREFIX)

{

fieldName = getText(child.getChild(0)) + ":" + fieldName;

}

else if (child.getType() == FTSParser.NAME_SPACE)

{

fieldName = getText(child.getChild(0)) + fieldName;

}

}

String alias = "";

if (selector != null)

{

functionEvaluationContext.checkFieldApplies(selector, fieldName);

alias = selector.getAlias();

}

return factory.createPropertyArgument(argumentName, functionEvaluationContext.isQueryable(fieldName), functionEvaluationContext.isOrderable(fieldName), alias, fieldName);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值