List of usage examples for org.eclipse.jdt.core.dom SwitchCase getParent
public final ASTNode getParent()
null
if this is the root node. 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; } }; }