@Override public void endVisit(WhileStatement node) { ASTNode[] selectedNodes= getSelectedNodes(); if (doAfterValidation(node, selectedNodes)) { if (contains(selectedNodes, node.getExpression()) && contains(selectedNodes, node.getBody())) { invalidSelection(RefactoringCoreMessages.StatementAnalyzer_while_expression_body); } } super.endVisit(node); }
@Override public void endVisit(SynchronizedStatement node) { ASTNode firstSelectedNode= getFirstSelectedNode(); if (getSelection().getEndVisitSelectionMode(node) == Selection.SELECTED) { if (firstSelectedNode == node.getBody()) { invalidSelection(JavaManipulationMessages.StatementAnalyzer_synchronized_statement); } } super.endVisit(node); }
public void endVisit(SwitchStatement node) { ASTNode[] selectedNodes= getSelectedNodes(); if (doAfterValidation(node, selectedNodes)) { List cases= getSwitchCases(node); for (int i= 0; i < selectedNodes.length; i++) { ASTNode topNode= selectedNodes[i]; if (cases.contains(topNode)) { invalidSelection(RefactoringCoreMessages.StatementAnalyzer_switch_statement); break; } } } super.endVisit(node); }
@Override public void endVisit(CompilationUnit node) { if (!hasSelectedNodes()) { super.endVisit(node); return; } ASTNode selectedNode= getFirstSelectedNode(); Selection selection= getSelection(); if (node != selectedNode) { ASTNode parent= selectedNode.getParent(); fStatus.merge(CommentAnalyzer.perform(selection, fScanner.getScanner(), parent.getStartPosition(), parent.getLength())); } if (!fStatus.hasFatalError()) checkSelectedNodes(); super.endVisit(node); }
protected void checkSelectedNodes() { ASTNode[] nodes= getSelectedNodes(); if (nodes.length == 0) return; ASTNode node= nodes[0]; int selectionOffset= getSelection().getOffset(); try { int start= fScanner.getNextStartOffset(selectionOffset, true); if (start == node.getStartPosition()) { int lastNodeEnd= ASTNodes.getExclusiveEnd(nodes[nodes.length - 1]); int pos= fScanner.getNextStartOffset(lastNodeEnd, true); int selectionEnd= getSelection().getInclusiveEnd(); if (pos <= selectionEnd) { IScanner scanner= fScanner.getScanner(); char[] token= scanner.getCurrentTokenSource(); //see https://bugs.eclipse.org/324237 if (start < lastNodeEnd && token.length == 1 && (token[0] == ';' || token[0] == ',')) { setSelection(Selection.createFromStartEnd(start, lastNodeEnd - 1)); } else { ISourceRange range= new SourceRange(lastNodeEnd, pos - lastNodeEnd); invalidSelection(RefactoringCoreMessages.StatementAnalyzer_end_of_selection, JavaStatusContext.create(fCUnit, range)); } } return; // success } } catch (CoreException e) { // fall through } ISourceRange range= new SourceRange(selectionOffset, node.getStartPosition() - selectionOffset + 1); invalidSelection(RefactoringCoreMessages.StatementAnalyzer_beginning_of_selection, JavaStatusContext.create(fCUnit, range)); }
protected void checkSelectedNodes() { ASTNode[] nodes= getSelectedNodes(); if (nodes.length == 0) return; ASTNode node= nodes[0]; int selectionOffset= getSelection().getOffset(); try { int pos= fScanner.getNextStartOffset(selectionOffset, true); if (pos == node.getStartPosition()) { int lastNodeEnd= ASTNodes.getExclusiveEnd(nodes[nodes.length - 1]); pos= fScanner.getNextStartOffset(lastNodeEnd, true); int selectionEnd= getSelection().getInclusiveEnd(); if (pos <= selectionEnd) { ISourceRange range= new SourceRange(lastNodeEnd, pos - lastNodeEnd); invalidSelection(RefactoringCoreMessages.StatementAnalyzer_end_of_selection, JavaStatusContext.create(fCUnit, range)); } return; // success } } catch (CoreException e) { // fall through } ISourceRange range= new SourceRange(selectionOffset, node.getStartPosition() - selectionOffset + 1); invalidSelection(RefactoringCoreMessages.StatementAnalyzer_beginning_of_selection, JavaStatusContext.create(fCUnit, range)); }
protected void invalidSelection(String message) { fStatus.addFatalError(message); reset(); }
@Override protected final void checkSelectedNodes() { super.checkSelectedNodes(); RefactoringStatus status= getStatus(); if (status.hasFatalError()) return; ASTNode node= getFirstSelectedNode(); if (node instanceof ArrayInitializer) { status.addFatalError(JavaManipulationMessages.CodeAnalyzer_array_initializer, JavaStatusContext.create(fCUnit, node)); } } }
private boolean doAfterValidation(ASTNode node, ASTNode[] selectedNodes) { return selectedNodes.length > 0 && node == selectedNodes[0].getParent() && getSelection().getEndVisitSelectionMode(node) == Selection.AFTER; }
public void endVisit(CompilationUnit node) { if (!hasSelectedNodes()) { super.endVisit(node); return; } ASTNode selectedNode= getFirstSelectedNode(); Selection selection= getSelection(); if (node != selectedNode) { ASTNode parent= selectedNode.getParent(); fStatus.merge(CommentAnalyzer.perform(selection, fScanner.getScanner(), parent.getStartPosition(), parent.getLength())); } if (!fStatus.hasFatalError()) checkSelectedNodes(); super.endVisit(node); }
protected void checkSelectedNodes() { ASTNode[] nodes= getSelectedNodes(); if (nodes.length == 0) return; ASTNode node= nodes[0]; int selectionOffset= getSelection().getOffset(); try { int start= fScanner.getNextStartOffset(selectionOffset, true); if (start == node.getStartPosition()) { int lastNodeEnd= ASTNodes.getExclusiveEnd(nodes[nodes.length - 1]); int pos= fScanner.getNextStartOffset(lastNodeEnd, true); int selectionEnd= getSelection().getInclusiveEnd(); if (pos <= selectionEnd) { IScanner scanner= fScanner.getScanner(); char[] token= scanner.getCurrentTokenSource(); //see https://bugs.eclipse.org/324237 if (start < lastNodeEnd && token.length == 1 && (token[0] == ';' || token[0] == ',')) { setSelection(Selection.createFromStartEnd(start, lastNodeEnd - 1)); } else { ISourceRange range= new SourceRange(lastNodeEnd, pos - lastNodeEnd); invalidSelection(JavaManipulationMessages.StatementAnalyzer_end_of_selection, JavaStatusContext.create(fCUnit, range)); } } return; // success } } catch (CoreException e) { // fall through } ISourceRange range= new SourceRange(selectionOffset, node.getStartPosition() - selectionOffset + 1); invalidSelection(JavaManipulationMessages.StatementAnalyzer_beginning_of_selection, JavaStatusContext.create(fCUnit, range)); }
protected void invalidSelection(String message) { fStatus.addFatalError(message); reset(); }
@Override protected final void checkSelectedNodes() { super.checkSelectedNodes(); RefactoringStatus status= getStatus(); if (status.hasFatalError()) return; ASTNode node= getFirstSelectedNode(); if (node instanceof ArrayInitializer) { status.addFatalError(RefactoringCoreMessages.CodeAnalyzer_array_initializer, JavaStatusContext.create(fCUnit, node)); } } }
private boolean doAfterValidation(ASTNode node, ASTNode[] selectedNodes) { return selectedNodes.length > 0 && node == selectedNodes[0].getParent() && getSelection().getEndVisitSelectionMode(node) == Selection.AFTER; }
@Override public void endVisit(ForStatement node) { ASTNode[] selectedNodes= getSelectedNodes(); if (doAfterValidation(node, selectedNodes)) { boolean containsExpression= contains(selectedNodes, node.getExpression()); boolean containsUpdaters= contains(selectedNodes, node.updaters()); if (contains(selectedNodes, node.initializers()) && containsExpression) { invalidSelection(JavaManipulationMessages.StatementAnalyzer_for_initializer_expression); } else if (containsExpression && containsUpdaters) { invalidSelection(JavaManipulationMessages.StatementAnalyzer_for_expression_updater); } else if (containsUpdaters && contains(selectedNodes, node.getBody())) { invalidSelection(JavaManipulationMessages.StatementAnalyzer_for_updater_body); } } super.endVisit(node); }
public void endVisit(SynchronizedStatement node) { ASTNode firstSelectedNode= getFirstSelectedNode(); if (getSelection().getEndVisitSelectionMode(node) == Selection.SELECTED) { if (firstSelectedNode == node.getBody()) { invalidSelection(RefactoringCoreMessages.StatementAnalyzer_synchronized_statement); } } super.endVisit(node); }
@Override public void endVisit(CompilationUnit node) { if (!hasSelectedNodes()) { super.endVisit(node); return; } ASTNode selectedNode= getFirstSelectedNode(); Selection selection= getSelection(); if (node != selectedNode) { ASTNode parent= selectedNode.getParent(); fStatus.merge(CommentAnalyzer.perform(selection, fScanner.getScanner(), parent.getStartPosition(), parent.getLength())); } if (!fStatus.hasFatalError()) checkSelectedNodes(); super.endVisit(node); }
@Override public void endVisit(SwitchStatement node) { ASTNode[] selectedNodes= getSelectedNodes(); if (doAfterValidation(node, selectedNodes)) { List<SwitchCase> cases= getSwitchCases(node); for (int i= 0; i < selectedNodes.length; i++) { ASTNode topNode= selectedNodes[i]; if (cases.contains(topNode)) { invalidSelection(JavaManipulationMessages.StatementAnalyzer_switch_statement); break; } } } super.endVisit(node); }
protected void invalidSelection(String message, RefactoringStatusContext context) { fStatus.addFatalError(message, context); reset(); }
protected final void checkSelectedNodes() { super.checkSelectedNodes(); RefactoringStatus status= getStatus(); if (status.hasFatalError()) return; ASTNode node= getFirstSelectedNode(); if (node instanceof ArrayInitializer) { status.addFatalError(RefactoringCoreMessages.CodeAnalyzer_array_initializer, JavaStatusContext.create(fCUnit, node)); } } }