List of usage examples for org.eclipse.jdt.core.dom BreakStatement setLabel
public void setLabel(SimpleName label)
From source file:java5totext.input.JDTVisitor.java
License:Open Source License
@Override public void endVisit(org.eclipse.jdt.core.dom.BreakStatement node) { BreakStatement element = (BreakStatement) this.binding.get(node); this.initializeNode(element, node); if (this.binding.get(node.getLabel()) != null) element.setLabel((NamedElementRef) this.binding.get(node.getLabel())); }
From source file:org.decojer.cavaj.transformers.TrControlFlowAnalysis.java
License:Open Source License
/** * Check for given exit if it's a branching statement, that means explicitely struct leaving * with break/continue etc. (either labeled or none-labeled), or if it's a normal exit to a * potential follow./*from w ww. ja va 2 s . c om*/ * * @param struct * current struct * @param exit * exit, that means leaving the current struct * @return {@code true} - explicit struct leaving with break/continue etc. is necessary */ private boolean checkBranching(@Nonnull final Struct struct, @Nonnull final E exit) { boolean defaultBreakableConsumed = false; final BB bb = exit.getEnd(); for (Struct followStruct = struct.getParent(); followStruct != null; followStruct = followStruct .getParent()) { if (!followStruct.hasBreakTarget(bb) && !followStruct.hasContinueTarget(bb)) { if (followStruct.isDefaultBreakable()) { // none-labeled break/continue not possible anymore defaultBreakableConsumed = true; } continue; } if (followStruct == struct.getParent()) { // check directly enclosing struct for potential fall-through scenarios if (followStruct instanceof Loop && ((Loop) followStruct).hasLast(bb)) { return false; // direct fall-through to direct enclosing loop-last allowed } if (!followStruct.isDefaultBreakable()) { // fall-through to directly enclosing struct allowed (for cond, not for loop) return false; } } // create label (if not already existing or not none-labeled break/continue possible) if (followStruct.getLabel() == null && (!followStruct.isDefaultBreakable() || defaultBreakableConsumed)) { final String label = followStruct.getDefaultLabelName() + (this.labelCounter++ == 0 ? "" : this.labelCounter); followStruct.setLabel(label); if (followStruct.hasBreakTarget(bb)) { final BreakStatement breakStatement = getAst().newBreakStatement(); breakStatement.setLabel(newSimpleName(label, getAst())); exit.setBranchingStmt(breakStatement); } else { final ContinueStatement continueStatement = getAst().newContinueStatement(); continueStatement.setLabel(newSimpleName(label, getAst())); exit.setBranchingStmt(continueStatement); } } else { // cannot add breaks/continues to exit.start, e.g. direct IfStmt-breaks/backs happen if (followStruct.hasBreakTarget(bb)) { exit.setBranchingStmt(getAst().newBreakStatement()); } else { exit.setBranchingStmt(getAst().newContinueStatement()); } } return true; } return false; }
From source file:org.eclipse.jdt.core.dom.ASTConverter.java
License:Open Source License
public BreakStatement convert(org.eclipse.jdt.internal.compiler.ast.BreakStatement statement) { BreakStatement breakStatement = new BreakStatement(this.ast); breakStatement.setSourceRange(statement.sourceStart, statement.sourceEnd - statement.sourceStart + 1); if (statement.label != null) { final SimpleName name = new SimpleName(this.ast); name.internalSetIdentifier(new String(statement.label)); retrieveIdentifierAndSetPositions(statement.sourceStart, statement.sourceEnd, name); breakStatement.setLabel(name); }/*from ww w. j a va2s .c om*/ return breakStatement; }
From source file:org.eclipse.modisco.java.discoverer.internal.io.java.JDTVisitor.java
License:Open Source License
@Override public void endVisit(final org.eclipse.jdt.core.dom.BreakStatement node) { BreakStatement element = (BreakStatement) this.binding.get(node); initializeNode(element, node);/* w w w .j ava 2 s . c o m*/ if (node.getLabel() != null) { PendingElement label = new PendingElement(this.factory); label.setClientNode(element); label.setLinkName("label"); //$NON-NLS-1$ NamedElement target = JDTVisitorUtils.manageBindingRef(label, node.getLabel(), this); if (target != null) { element.setLabel((LabeledStatement) target); } } }
From source file:org.whole.lang.java.util.JDTTransformerVisitor.java
License:Open Source License
public boolean visit(BreakStatement node) { org.whole.lang.java.model.BreakStatement brkStm = lf.create(JavaEntityDescriptorEnum.BreakStatement); if (node.getLabel() != null) brkStm.setLabel(lf.createSimpleName(node.getLabel().toString())); stm = brkStm;/* ww w .jav a2 s . co m*/ return false; }