Example usage for org.eclipse.jdt.core.dom SwitchCase getParent

List of usage examples for org.eclipse.jdt.core.dom SwitchCase getParent

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom SwitchCase getParent.

Prototype

public final ASTNode getParent() 

Source Link

Document

Returns this node's parent node, or null if this is the root node.

Usage

From source file:egovframework.mgt.fit.library.parser.visitor.StatementParsingVisitor.java

License:Apache License

/**
 * switch case ? ?  ? ./*from  ww  w .j  av a2 s  .  co  m*/
 * @return   
 */
@Override
public boolean visit(SwitchCase node) {
    if (node.getParent().getNodeType() == parentType) {
        addSingleStatement(node.toString(), StatementLine.CASE);
    }
    return super.visit(node);
}

From source file:net.sf.eclipsecs.ui.quickfixes.coding.DefaultComesLastQuickfix.java

License:Open Source License

/**
 * {@inheritDoc}/*from ww w  .  ja  v a2s  .c  o m*/
 */
protected ASTVisitor handleGetCorrectingASTVisitor(final IRegion lineInfo, final int markerStartOffset) {

    return new ASTVisitor() {

        public boolean visit(SwitchCase node) {

            if (containsPosition(lineInfo, node.getStartPosition())) {

                if (node.isDefault() && !isLastSwitchCase(node)) {
                    SwitchStatement switchStatement = (SwitchStatement) node.getParent();

                    List defaultCaseStatements = new ArrayList();
                    defaultCaseStatements.add(node);

                    // collect all statements belonging to the default case
                    int defaultStatementIndex = switchStatement.statements().indexOf(node);
                    for (int i = defaultStatementIndex + 1; i < switchStatement.statements().size(); i++) {
                        ASTNode tmpNode = (ASTNode) switchStatement.statements().get(i);

                        if (!(tmpNode instanceof SwitchCase)) {
                            defaultCaseStatements.add(tmpNode);
                        } else {
                            break;
                        }
                    }

                    // move the statements to the end of the statement list
                    switchStatement.statements().removeAll(defaultCaseStatements);
                    switchStatement.statements().addAll(defaultCaseStatements);
                }
            }
            return true;
        }

        private boolean isLastSwitchCase(SwitchCase switchCase) {

            SwitchStatement switchStatement = (SwitchStatement) switchCase.getParent();

            // collect all statements belonging to the default case
            int defaultStatementIndex = switchStatement.statements().indexOf(switchCase);
            for (int i = defaultStatementIndex + 1; i < switchStatement.statements().size(); i++) {
                ASTNode tmpNode = (ASTNode) switchStatement.statements().get(i);

                if (tmpNode instanceof SwitchCase) {
                    return false;
                }
            }
            return true;
        }
    };
}