当前位置: 首页>>代码示例>>Java>>正文


Java Tree.deleteChild方法代码示例

本文整理汇总了Java中org.antlr.runtime.tree.Tree.deleteChild方法的典型用法代码示例。如果您正苦于以下问题:Java Tree.deleteChild方法的具体用法?Java Tree.deleteChild怎么用?Java Tree.deleteChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.antlr.runtime.tree.Tree的用法示例。


在下文中一共展示了Tree.deleteChild方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: replaceWithCount

import org.antlr.runtime.tree.Tree; //导入方法依赖的package包/类
public void replaceWithCount(EntityReference entityRef) {
    Tree selectedItems = tree.getFirstChildWithType(JPA2Lexer.T_SELECTED_ITEMS);
    boolean isDistinct = "DISTINCT".equalsIgnoreCase(selectedItems.getChild(0).getText());
    if (!(isDistinct && selectedItems.getChildCount() == 2 ||
            selectedItems.getChildCount() == 1))
        throw new IllegalStateException("Cannot replace with count if multiple fields selected");

    SelectedItemNode selectedItemNode;
    if (isDistinct)
        selectedItems.deleteChild(0);

    selectedItemNode = (SelectedItemNode) selectedItems.getChild(0);
    AggregateExpressionNode countNode = createCountNode(entityRef, isDistinct);
    selectedItemNode.deleteChild(0);
    selectedItemNode.addChild(countNode);

    Tree orderBy = tree.getFirstChildWithType(JPA2Lexer.T_ORDER_BY);
    if (orderBy != null) {
        tree.deleteChild(orderBy.getChildIndex());
    }
    tree.freshenParentAndChildIndexes();
}
 
开发者ID:cuba-platform,项目名称:cuba,代码行数:23,代码来源:QueryTreeTransformer.java

示例2: scrubTree

import org.antlr.runtime.tree.Tree; //导入方法依赖的package包/类
private void scrubTree(Tree tree) {
        // The top-level tree often has wrong position info, so start one down from the top
        for (int i = tree.getChildCount() - 1; i >= 0; i--) {
            Tree child = tree.getChild(i);
            if (child.getTokenStartIndex() > child.getTokenStopIndex()) {
                System.out.println("Deleting node " + child);
                tree.deleteChild(i);
                continue;
            }
            if (child.getTokenStartIndex() < 0) {
//                System.out.println("Deleting node " + child);
//                tree.deleteChild(i);
                continue;
            }
            scrubTree(child);
            if (child.getTokenStartIndex() < tree.getTokenStartIndex()) {
                tree.setTokenStartIndex(child.getTokenStartIndex());
            }
            if (child.getTokenStopIndex() > tree.getTokenStopIndex()) {
                tree.setTokenStopIndex(child.getTokenStopIndex());
            }
        }
    }
 
开发者ID:unktomi,项目名称:form-follows-function,代码行数:24,代码来源:F3Parser.java

示例3: patchTreeByString

import org.antlr.runtime.tree.Tree; //导入方法依赖的package包/类
public static void patchTreeByString(CommonTree tree, List<String> columns, String goal) {
    if (tree.getChildCount() == 0) {
        // leaf
		if (columns.contains(tree.getText())) {
		    Tree parent = tree.getParent();

		    // only patch tree when it's QNAME node
		    if (parent.getText().equals("QNAME")) {
    		    Tree tmpTree = createGenericNode(goal);
    		    // remove QNAME at index 0
    		    tmpTree.deleteChild(0);
                tmpTree.setParent(tree.getParent());
                parent.deleteChild(0);
                parent.addChild(tmpTree);
                parent.addChild(tree);
    
    		    ((CommonTree)tmpTree).getToken().setText(goal);
    		    ((CommonTree)tmpTree).getToken().setType(tree.getType());
		    }
		}
		return;
    }

    // process children
    for (Tree t : children(tree)) {
        patchTreeByString((CommonTree)t, columns, goal);
    }

    return;
}
 
开发者ID:ajoabraham,项目名称:hue,代码行数:31,代码来源:TreePatcher.java

示例4: removeDistinct

import org.antlr.runtime.tree.Tree; //导入方法依赖的package包/类
public boolean removeDistinct() {
    Tree selectedItems = tree.getFirstChildWithType(JPA2Lexer.T_SELECTED_ITEMS);
    boolean isDistinct = "DISTINCT".equalsIgnoreCase(selectedItems.getChild(0).getText());
    if (isDistinct) {
        selectedItems.deleteChild(0);
    } else {
        return false;
    }
    tree.freshenParentAndChildIndexes();
    return true;
}
 
开发者ID:cuba-platform,项目名称:cuba,代码行数:12,代码来源:QueryTreeTransformer.java


注:本文中的org.antlr.runtime.tree.Tree.deleteChild方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。