Java 类org.eclipse.jdt.core.dom.IfStatement 实例源码
项目:eclipse.jdt.ls
文件:NecessaryParenthesesChecker.java
private static boolean locationNeedsParentheses(StructuralPropertyDescriptor locationInParent) {
if (locationInParent instanceof ChildListPropertyDescriptor && locationInParent != InfixExpression.EXTENDED_OPERANDS_PROPERTY) {
// e.g. argument lists of MethodInvocation, ClassInstanceCreation, dimensions of ArrayCreation ...
return false;
}
if (locationInParent == VariableDeclarationFragment.INITIALIZER_PROPERTY
|| locationInParent == SingleVariableDeclaration.INITIALIZER_PROPERTY
|| locationInParent == ReturnStatement.EXPRESSION_PROPERTY
|| locationInParent == EnhancedForStatement.EXPRESSION_PROPERTY
|| locationInParent == ForStatement.EXPRESSION_PROPERTY
|| locationInParent == WhileStatement.EXPRESSION_PROPERTY
|| locationInParent == DoStatement.EXPRESSION_PROPERTY
|| locationInParent == AssertStatement.EXPRESSION_PROPERTY
|| locationInParent == AssertStatement.MESSAGE_PROPERTY
|| locationInParent == IfStatement.EXPRESSION_PROPERTY
|| locationInParent == SwitchStatement.EXPRESSION_PROPERTY
|| locationInParent == SwitchCase.EXPRESSION_PROPERTY
|| locationInParent == ArrayAccess.INDEX_PROPERTY
|| locationInParent == ThrowStatement.EXPRESSION_PROPERTY
|| locationInParent == SynchronizedStatement.EXPRESSION_PROPERTY
|| locationInParent == ParenthesizedExpression.EXPRESSION_PROPERTY) {
return false;
}
return true;
}
项目:pandionj
文件:VarParser.java
private BlockInfo.Type getBlockType(ASTNode node) {
if(node instanceof TypeDeclaration)
return BlockInfo.Type.TYPE;
else if(node instanceof MethodDeclaration)
return BlockInfo.Type.METHOD;
else if(node instanceof WhileStatement)
return BlockInfo.Type.WHILE;
else if(node instanceof ForStatement)
return BlockInfo.Type.FOR;
else if(node instanceof IfStatement)
return BlockInfo.Type.IF;
else
return BlockInfo.Type.OTHER;
}
项目:o3smeasures-tool
文件:WeightMethodsPerClassVisitor.java
/**
* Method that check statement type.
* @author Mariana Azevedo
* @since 13/07/2014
* @param itStatement
*/
private void getStatementType(Object itStatement) {
if (itStatement instanceof CatchClause){
this.visitor.visit((CatchClause)itStatement);
}else if (itStatement instanceof ForStatement){
this.visitor.visit((ForStatement)itStatement);
}else if (itStatement instanceof IfStatement){
this.visitor.visit((IfStatement)itStatement);
}else if (itStatement instanceof WhileStatement){
this.visitor.visit((WhileStatement)itStatement);
}else if (itStatement instanceof TryStatement){
this.visitor.visit((TryStatement)itStatement);
}else if (itStatement instanceof ConditionalExpression){
this.visitor.visit((ConditionalExpression)itStatement);
}else if (itStatement instanceof SwitchCase){
this.visitor.visit((SwitchCase)itStatement);
}else if (itStatement instanceof DoStatement){
this.visitor.visit((DoStatement)itStatement);
}else if (itStatement instanceof ExpressionStatement){
this.visitor.visit((ExpressionStatement)itStatement);
}
}
项目:junit-tools
文件:MethodAnalyzer.java
private List<IfStatement> collectIfStatements(MethodDeclaration md) {
List<IfStatement> ifStatements = new ArrayList<IfStatement>();
Block body = md.getBody();
if (body == null) {
return ifStatements;
}
for (Object statement : body.statements()) {
if (statement instanceof Statement) {
Statement st = (Statement) statement;
ifStatements.addAll(collectIfStatements(st));
}
}
return ifStatements;
}
项目:che
文件:NecessaryParenthesesChecker.java
private static boolean locationNeedsParentheses(StructuralPropertyDescriptor locationInParent) {
if (locationInParent instanceof ChildListPropertyDescriptor
&& locationInParent != InfixExpression.EXTENDED_OPERANDS_PROPERTY) {
// e.g. argument lists of MethodInvocation, ClassInstanceCreation, dimensions of ArrayCreation
// ...
return false;
}
if (locationInParent == VariableDeclarationFragment.INITIALIZER_PROPERTY
|| locationInParent == SingleVariableDeclaration.INITIALIZER_PROPERTY
|| locationInParent == ReturnStatement.EXPRESSION_PROPERTY
|| locationInParent == EnhancedForStatement.EXPRESSION_PROPERTY
|| locationInParent == ForStatement.EXPRESSION_PROPERTY
|| locationInParent == WhileStatement.EXPRESSION_PROPERTY
|| locationInParent == DoStatement.EXPRESSION_PROPERTY
|| locationInParent == AssertStatement.EXPRESSION_PROPERTY
|| locationInParent == AssertStatement.MESSAGE_PROPERTY
|| locationInParent == IfStatement.EXPRESSION_PROPERTY
|| locationInParent == SwitchStatement.EXPRESSION_PROPERTY
|| locationInParent == SwitchCase.EXPRESSION_PROPERTY
|| locationInParent == ArrayAccess.INDEX_PROPERTY
|| locationInParent == ThrowStatement.EXPRESSION_PROPERTY
|| locationInParent == SynchronizedStatement.EXPRESSION_PROPERTY
|| locationInParent == ParenthesizedExpression.EXPRESSION_PROPERTY) {
return false;
}
return true;
}
项目:che
文件:ControlStatementsFix.java
/** {@inheritDoc} */
@Override
public void rewriteAST(CompilationUnitRewrite cuRewrite, LinkedProposalModel model)
throws CoreException {
ASTRewrite rewrite = cuRewrite.getASTRewrite();
String label;
if (fBodyProperty == IfStatement.THEN_STATEMENT_PROPERTY) {
label = FixMessages.CodeStyleFix_ChangeIfToBlock_desription;
} else if (fBodyProperty == IfStatement.ELSE_STATEMENT_PROPERTY) {
label = FixMessages.CodeStyleFix_ChangeElseToBlock_description;
} else {
label = FixMessages.CodeStyleFix_ChangeControlToBlock_description;
}
TextEditGroup group = createTextEditGroup(label, cuRewrite);
ASTNode moveTarget = rewrite.createMoveTarget(fBody);
Block replacingBody = cuRewrite.getRoot().getAST().newBlock();
replacingBody.statements().add(moveTarget);
rewrite.set(fControlStatement, fBodyProperty, replacingBody, group);
}
项目:che
文件:SourceProvider.java
private boolean isSingleControlStatementWithoutBlock() {
List<Statement> statements = fDeclaration.getBody().statements();
int size = statements.size();
if (size != 1) return false;
Statement statement = statements.get(size - 1);
int nodeType = statement.getNodeType();
if (nodeType == ASTNode.IF_STATEMENT) {
IfStatement ifStatement = (IfStatement) statement;
return !(ifStatement.getThenStatement() instanceof Block)
&& !(ifStatement.getElseStatement() instanceof Block);
} else if (nodeType == ASTNode.FOR_STATEMENT) {
return !(((ForStatement) statement).getBody() instanceof Block);
} else if (nodeType == ASTNode.WHILE_STATEMENT) {
return !(((WhileStatement) statement).getBody() instanceof Block);
}
return false;
}
项目:che
文件:CallInliner.java
private boolean needsBlockAroundDanglingIf() {
/* see https://bugs.eclipse.org/bugs/show_bug.cgi?id=169331
*
* Situation:
* boolean a, b;
* void toInline() {
* if (a)
* hashCode();
* }
* void m() {
* if (b)
* toInline();
* else
* toString();
* }
* => needs block around inlined "if (a)..." to avoid attaching else to wrong if.
*/
return fTargetNode.getLocationInParent() == IfStatement.THEN_STATEMENT_PROPERTY
&& fTargetNode.getParent().getStructuralProperty(IfStatement.ELSE_STATEMENT_PROPERTY)
!= null
&& fSourceProvider.isDangligIf();
}
项目:che
文件:ExtractToNullCheckedLocalProposal.java
@Override
public void insertIfStatement(IfStatement ifStmt, Block thenBlock) {
// when stmt declares a local variable (see RearrangeStrategy.create(..)) we need to move
// all
// subsequent statements into the then-block to ensure that the existing declared local is
// visible:
List<ASTNode> blockStmts = this.block.statements();
int stmtIdx = blockStmts.indexOf(this.origStmt);
int lastIdx = blockStmts.size() - 1;
if (stmtIdx != -1 && stmtIdx < lastIdx) {
thenBlock
.statements()
.add(
this.blockRewrite.createMoveTarget(
blockStmts.get(stmtIdx + 1), blockStmts.get(lastIdx), null, this.group));
}
super.insertIfStatement(ifStmt, thenBlock);
}
项目:txtUML
文件:OptAltFragment.java
@Override
public boolean preNext(IfStatement curElement) {
Statement thenStatement = curElement.getThenStatement();
Statement elseStatement = curElement.getElseStatement();
Expression condition = curElement.getExpression();
if (elseStatement == null) {
compiler.println("opt " + condition.toString());
return true;
} else {
compiler.println("alt " + condition.toString());
thenStatement.accept(compiler);
if (elseStatement instanceof IfStatement) {
processAltStatement((IfStatement) elseStatement);
} else {
compiler.println("else");
elseStatement.accept(compiler);
}
return false;
}
}
项目:txtUML
文件:OptAltFragment.java
private void processAltStatement(IfStatement statement) {
Statement thenStatement = statement.getThenStatement();
Statement elseStatement = statement.getElseStatement();
Expression condition = statement.getExpression();
compiler.println("else " + condition.toString());
thenStatement.accept(compiler);
if (elseStatement != null) {
if (elseStatement instanceof IfStatement) {
processAltStatement((IfStatement) elseStatement);
} else {
compiler.println("else");
elseStatement.accept(compiler);
}
}
}
项目:Eclipse-Postfix-Code-Completion
文件:SourceProvider.java
private boolean isSingleControlStatementWithoutBlock() {
List<Statement> statements= fDeclaration.getBody().statements();
int size= statements.size();
if (size != 1)
return false;
Statement statement= statements.get(size - 1);
int nodeType= statement.getNodeType();
if (nodeType == ASTNode.IF_STATEMENT) {
IfStatement ifStatement= (IfStatement) statement;
return !(ifStatement.getThenStatement() instanceof Block)
&& !(ifStatement.getElseStatement() instanceof Block);
} else if (nodeType == ASTNode.FOR_STATEMENT) {
return !(((ForStatement)statement).getBody() instanceof Block);
} else if (nodeType == ASTNode.WHILE_STATEMENT) {
return !(((WhileStatement)statement).getBody() instanceof Block);
}
return false;
}
项目:Eclipse-Postfix-Code-Completion
文件:CallInliner.java
private boolean needsBlockAroundDanglingIf() {
/* see https://bugs.eclipse.org/bugs/show_bug.cgi?id=169331
*
* Situation:
* boolean a, b;
* void toInline() {
* if (a)
* hashCode();
* }
* void m() {
* if (b)
* toInline();
* else
* toString();
* }
* => needs block around inlined "if (a)..." to avoid attaching else to wrong if.
*/
return fTargetNode.getLocationInParent() == IfStatement.THEN_STATEMENT_PROPERTY
&& fTargetNode.getParent().getStructuralProperty(IfStatement.ELSE_STATEMENT_PROPERTY) != null
&& fSourceProvider.isDangligIf();
}
项目:Eclipse-Postfix-Code-Completion
文件:NecessaryParenthesesChecker.java
private static boolean locationNeedsParentheses(StructuralPropertyDescriptor locationInParent) {
if (locationInParent instanceof ChildListPropertyDescriptor && locationInParent != InfixExpression.EXTENDED_OPERANDS_PROPERTY) {
// e.g. argument lists of MethodInvocation, ClassInstanceCreation, dimensions of ArrayCreation ...
return false;
}
if (locationInParent == VariableDeclarationFragment.INITIALIZER_PROPERTY
|| locationInParent == SingleVariableDeclaration.INITIALIZER_PROPERTY
|| locationInParent == ReturnStatement.EXPRESSION_PROPERTY
|| locationInParent == EnhancedForStatement.EXPRESSION_PROPERTY
|| locationInParent == ForStatement.EXPRESSION_PROPERTY
|| locationInParent == WhileStatement.EXPRESSION_PROPERTY
|| locationInParent == DoStatement.EXPRESSION_PROPERTY
|| locationInParent == AssertStatement.EXPRESSION_PROPERTY
|| locationInParent == AssertStatement.MESSAGE_PROPERTY
|| locationInParent == IfStatement.EXPRESSION_PROPERTY
|| locationInParent == SwitchStatement.EXPRESSION_PROPERTY
|| locationInParent == SwitchCase.EXPRESSION_PROPERTY
|| locationInParent == ArrayAccess.INDEX_PROPERTY
|| locationInParent == ThrowStatement.EXPRESSION_PROPERTY
|| locationInParent == SynchronizedStatement.EXPRESSION_PROPERTY
|| locationInParent == ParenthesizedExpression.EXPRESSION_PROPERTY) {
return false;
}
return true;
}
项目:Eclipse-Postfix-Code-Completion
文件:StringBuilderGenerator.java
@Override
protected void addMemberCheckNull(Object member, boolean addSeparator) {
IfStatement ifStatement= fAst.newIfStatement();
ifStatement.setExpression(createInfixExpression(createMemberAccessExpression(member, true, true), Operator.NOT_EQUALS, fAst.newNullLiteral()));
Block thenBlock= fAst.newBlock();
flushBuffer(null);
String[] arrayString= getContext().getTemplateParser().getBody();
for (int i= 0; i < arrayString.length; i++) {
addElement(processElement(arrayString[i], member), thenBlock);
}
if (addSeparator)
addElement(getContext().getTemplateParser().getSeparator(), thenBlock);
flushBuffer(thenBlock);
if (thenBlock.statements().size() == 1 && !getContext().isForceBlocks()) {
ifStatement.setThenStatement((Statement)ASTNode.copySubtree(fAst, (ASTNode)thenBlock.statements().get(0)));
} else {
ifStatement.setThenStatement(thenBlock);
}
toStringMethod.getBody().statements().add(ifStatement);
}
项目:Eclipse-Postfix-Code-Completion
文件:StringBuilderChainGenerator.java
@Override
protected void addMemberCheckNull(Object member, boolean addSeparator) {
IfStatement ifStatement= fAst.newIfStatement();
ifStatement.setExpression(createInfixExpression(createMemberAccessExpression(member, true, true), Operator.NOT_EQUALS, fAst.newNullLiteral()));
Block thenBlock= fAst.newBlock();
flushTemporaryExpression();
String[] arrayString= getContext().getTemplateParser().getBody();
for (int i= 0; i < arrayString.length; i++) {
addElement(processElement(arrayString[i], member), thenBlock);
}
if (addSeparator)
addElement(getContext().getTemplateParser().getSeparator(), thenBlock);
flushTemporaryExpression();
if (thenBlock.statements().size() == 1 && !getContext().isForceBlocks()) {
ifStatement.setThenStatement((Statement)ASTNode.copySubtree(fAst, (ASTNode)thenBlock.statements().get(0)));
} else {
ifStatement.setThenStatement(thenBlock);
}
toStringMethod.getBody().statements().add(ifStatement);
}
项目:Eclipse-Postfix-Code-Completion
文件:GenerateHashCodeEqualsOperation.java
private Statement createOuterComparison() {
MethodInvocation outer1= fAst.newMethodInvocation();
outer1.setName(fAst.newSimpleName(METHODNAME_OUTER_TYPE));
MethodInvocation outer2= fAst.newMethodInvocation();
outer2.setName(fAst.newSimpleName(METHODNAME_OUTER_TYPE));
outer2.setExpression(fAst.newSimpleName(VARIABLE_NAME_EQUALS_CASTED));
MethodInvocation outerEql= fAst.newMethodInvocation();
outerEql.setName(fAst.newSimpleName(METHODNAME_EQUALS));
outerEql.setExpression(outer1);
outerEql.arguments().add(outer2);
PrefixExpression not= fAst.newPrefixExpression();
not.setOperand(outerEql);
not.setOperator(PrefixExpression.Operator.NOT);
IfStatement notEqNull= fAst.newIfStatement();
notEqNull.setExpression(not);
notEqNull.setThenStatement(getThenStatement(getReturnFalse()));
return notEqNull;
}
项目:Eclipse-Postfix-Code-Completion
文件:GenerateHashCodeEqualsOperation.java
private Statement createArrayComparison(String name) {
MethodInvocation invoc= fAst.newMethodInvocation();
invoc.setName(fAst.newSimpleName(METHODNAME_EQUALS));
invoc.setExpression(getQualifiedName(JAVA_UTIL_ARRAYS));
invoc.arguments().add(getThisAccessForEquals(name));
invoc.arguments().add(getOtherAccess(name));
PrefixExpression pe= fAst.newPrefixExpression();
pe.setOperator(PrefixExpression.Operator.NOT);
pe.setOperand(invoc);
IfStatement ifSt= fAst.newIfStatement();
ifSt.setExpression(pe);
ifSt.setThenStatement(getThenStatement(getReturnFalse()));
return ifSt;
}
项目:Eclipse-Postfix-Code-Completion
文件:GenerateHashCodeEqualsOperation.java
private Statement createMultiArrayComparison(String name) {
MethodInvocation invoc= fAst.newMethodInvocation();
invoc.setName(fAst.newSimpleName(METHODNAME_DEEP_EQUALS));
invoc.setExpression(getQualifiedName(JAVA_UTIL_ARRAYS));
invoc.arguments().add(getThisAccessForEquals(name));
invoc.arguments().add(getOtherAccess(name));
PrefixExpression pe= fAst.newPrefixExpression();
pe.setOperator(PrefixExpression.Operator.NOT);
pe.setOperand(invoc);
IfStatement ifSt= fAst.newIfStatement();
ifSt.setExpression(pe);
ifSt.setThenStatement(getThenStatement(getReturnFalse()));
return ifSt;
}
项目:Eclipse-Postfix-Code-Completion
文件:ControlStatementsFix.java
/**
* {@inheritDoc}
*/
@Override
public void rewriteAST(CompilationUnitRewrite cuRewrite, LinkedProposalModel model) throws CoreException {
ASTRewrite rewrite= cuRewrite.getASTRewrite();
String label;
if (fBodyProperty == IfStatement.THEN_STATEMENT_PROPERTY) {
label = FixMessages.CodeStyleFix_ChangeIfToBlock_desription;
} else if (fBodyProperty == IfStatement.ELSE_STATEMENT_PROPERTY) {
label = FixMessages.CodeStyleFix_ChangeElseToBlock_description;
} else {
label = FixMessages.CodeStyleFix_ChangeControlToBlock_description;
}
TextEditGroup group= createTextEditGroup(label, cuRewrite);
ASTNode moveTarget= rewrite.createMoveTarget(fBody);
Block replacingBody= cuRewrite.getRoot().getAST().newBlock();
replacingBody.statements().add(moveTarget);
rewrite.set(fControlStatement, fBodyProperty, replacingBody, group);
}
项目:Eclipse-Postfix-Code-Completion
文件:QuickAssistProcessor.java
private static boolean getAddElseProposals(IInvocationContext context, ASTNode node, Collection<ICommandAccess> resultingCollections) {
if (!(node instanceof IfStatement)) {
return false;
}
IfStatement ifStatement= (IfStatement) node;
if (ifStatement.getElseStatement() != null) {
return false;
}
if (resultingCollections == null) {
return true;
}
AST ast= node.getAST();
ASTRewrite rewrite= ASTRewrite.create(ast);
Block body= ast.newBlock();
rewrite.set(ifStatement, IfStatement.ELSE_STATEMENT_PROPERTY, body, null);
String label= CorrectionMessages.QuickAssistProcessor_addelseblock_description;
Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_ADD);
ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, IProposalRelevance.ADD_ELSE_BLOCK, image);
resultingCollections.add(proposal);
return true;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:SourceProvider.java
private boolean isSingleControlStatementWithoutBlock() {
List<Statement> statements= fDeclaration.getBody().statements();
int size= statements.size();
if (size != 1)
return false;
Statement statement= statements.get(size - 1);
int nodeType= statement.getNodeType();
if (nodeType == ASTNode.IF_STATEMENT) {
IfStatement ifStatement= (IfStatement) statement;
return !(ifStatement.getThenStatement() instanceof Block)
&& !(ifStatement.getElseStatement() instanceof Block);
} else if (nodeType == ASTNode.FOR_STATEMENT) {
return !(((ForStatement)statement).getBody() instanceof Block);
} else if (nodeType == ASTNode.WHILE_STATEMENT) {
return !(((WhileStatement)statement).getBody() instanceof Block);
}
return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:CallInliner.java
private boolean needsBlockAroundDanglingIf() {
/* see https://bugs.eclipse.org/bugs/show_bug.cgi?id=169331
*
* Situation:
* boolean a, b;
* void toInline() {
* if (a)
* hashCode();
* }
* void m() {
* if (b)
* toInline();
* else
* toString();
* }
* => needs block around inlined "if (a)..." to avoid attaching else to wrong if.
*/
return fTargetNode.getLocationInParent() == IfStatement.THEN_STATEMENT_PROPERTY
&& fTargetNode.getParent().getStructuralProperty(IfStatement.ELSE_STATEMENT_PROPERTY) != null
&& fSourceProvider.isDangligIf();
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:NecessaryParenthesesChecker.java
private static boolean locationNeedsParentheses(StructuralPropertyDescriptor locationInParent) {
if (locationInParent instanceof ChildListPropertyDescriptor && locationInParent != InfixExpression.EXTENDED_OPERANDS_PROPERTY) {
// e.g. argument lists of MethodInvocation, ClassInstanceCreation, dimensions of ArrayCreation ...
return false;
}
if (locationInParent == VariableDeclarationFragment.INITIALIZER_PROPERTY
|| locationInParent == SingleVariableDeclaration.INITIALIZER_PROPERTY
|| locationInParent == ReturnStatement.EXPRESSION_PROPERTY
|| locationInParent == EnhancedForStatement.EXPRESSION_PROPERTY
|| locationInParent == ForStatement.EXPRESSION_PROPERTY
|| locationInParent == WhileStatement.EXPRESSION_PROPERTY
|| locationInParent == DoStatement.EXPRESSION_PROPERTY
|| locationInParent == AssertStatement.EXPRESSION_PROPERTY
|| locationInParent == AssertStatement.MESSAGE_PROPERTY
|| locationInParent == IfStatement.EXPRESSION_PROPERTY
|| locationInParent == SwitchStatement.EXPRESSION_PROPERTY
|| locationInParent == SwitchCase.EXPRESSION_PROPERTY
|| locationInParent == ArrayAccess.INDEX_PROPERTY
|| locationInParent == ThrowStatement.EXPRESSION_PROPERTY
|| locationInParent == SynchronizedStatement.EXPRESSION_PROPERTY
|| locationInParent == ParenthesizedExpression.EXPRESSION_PROPERTY) {
return false;
}
return true;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:StringBuilderGenerator.java
@Override
protected void addMemberCheckNull(Object member, boolean addSeparator) {
IfStatement ifStatement= fAst.newIfStatement();
ifStatement.setExpression(createInfixExpression(createMemberAccessExpression(member, true, true), Operator.NOT_EQUALS, fAst.newNullLiteral()));
Block thenBlock= fAst.newBlock();
flushBuffer(null);
String[] arrayString= getContext().getTemplateParser().getBody();
for (int i= 0; i < arrayString.length; i++) {
addElement(processElement(arrayString[i], member), thenBlock);
}
if (addSeparator)
addElement(getContext().getTemplateParser().getSeparator(), thenBlock);
flushBuffer(thenBlock);
if (thenBlock.statements().size() == 1 && !getContext().isForceBlocks()) {
ifStatement.setThenStatement((Statement)ASTNode.copySubtree(fAst, (ASTNode)thenBlock.statements().get(0)));
} else {
ifStatement.setThenStatement(thenBlock);
}
toStringMethod.getBody().statements().add(ifStatement);
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:StringBuilderChainGenerator.java
@Override
protected void addMemberCheckNull(Object member, boolean addSeparator) {
IfStatement ifStatement= fAst.newIfStatement();
ifStatement.setExpression(createInfixExpression(createMemberAccessExpression(member, true, true), Operator.NOT_EQUALS, fAst.newNullLiteral()));
Block thenBlock= fAst.newBlock();
flushTemporaryExpression();
String[] arrayString= getContext().getTemplateParser().getBody();
for (int i= 0; i < arrayString.length; i++) {
addElement(processElement(arrayString[i], member), thenBlock);
}
if (addSeparator)
addElement(getContext().getTemplateParser().getSeparator(), thenBlock);
flushTemporaryExpression();
if (thenBlock.statements().size() == 1 && !getContext().isForceBlocks()) {
ifStatement.setThenStatement((Statement)ASTNode.copySubtree(fAst, (ASTNode)thenBlock.statements().get(0)));
} else {
ifStatement.setThenStatement(thenBlock);
}
toStringMethod.getBody().statements().add(ifStatement);
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:GenerateHashCodeEqualsOperation.java
private Statement createOuterComparison() {
MethodInvocation outer1= fAst.newMethodInvocation();
outer1.setName(fAst.newSimpleName(METHODNAME_OUTER_TYPE));
MethodInvocation outer2= fAst.newMethodInvocation();
outer2.setName(fAst.newSimpleName(METHODNAME_OUTER_TYPE));
outer2.setExpression(fAst.newSimpleName(VARIABLE_NAME_EQUALS_CASTED));
MethodInvocation outerEql= fAst.newMethodInvocation();
outerEql.setName(fAst.newSimpleName(METHODNAME_EQUALS));
outerEql.setExpression(outer1);
outerEql.arguments().add(outer2);
PrefixExpression not= fAst.newPrefixExpression();
not.setOperand(outerEql);
not.setOperator(PrefixExpression.Operator.NOT);
IfStatement notEqNull= fAst.newIfStatement();
notEqNull.setExpression(not);
notEqNull.setThenStatement(getThenStatement(getReturnFalse()));
return notEqNull;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:GenerateHashCodeEqualsOperation.java
private Statement createArrayComparison(String name) {
MethodInvocation invoc= fAst.newMethodInvocation();
invoc.setName(fAst.newSimpleName(METHODNAME_EQUALS));
invoc.setExpression(getQualifiedName(JAVA_UTIL_ARRAYS));
invoc.arguments().add(getThisAccessForEquals(name));
invoc.arguments().add(getOtherAccess(name));
PrefixExpression pe= fAst.newPrefixExpression();
pe.setOperator(PrefixExpression.Operator.NOT);
pe.setOperand(invoc);
IfStatement ifSt= fAst.newIfStatement();
ifSt.setExpression(pe);
ifSt.setThenStatement(getThenStatement(getReturnFalse()));
return ifSt;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:GenerateHashCodeEqualsOperation.java
private Statement createMultiArrayComparison(String name) {
MethodInvocation invoc= fAst.newMethodInvocation();
invoc.setName(fAst.newSimpleName(METHODNAME_DEEP_EQUALS));
invoc.setExpression(getQualifiedName(JAVA_UTIL_ARRAYS));
invoc.arguments().add(getThisAccessForEquals(name));
invoc.arguments().add(getOtherAccess(name));
PrefixExpression pe= fAst.newPrefixExpression();
pe.setOperator(PrefixExpression.Operator.NOT);
pe.setOperand(invoc);
IfStatement ifSt= fAst.newIfStatement();
ifSt.setExpression(pe);
ifSt.setThenStatement(getThenStatement(getReturnFalse()));
return ifSt;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:ControlStatementsFix.java
/**
* {@inheritDoc}
*/
@Override
public void rewriteAST(CompilationUnitRewrite cuRewrite, LinkedProposalModel model) throws CoreException {
ASTRewrite rewrite= cuRewrite.getASTRewrite();
String label;
if (fBodyProperty == IfStatement.THEN_STATEMENT_PROPERTY) {
label = FixMessages.CodeStyleFix_ChangeIfToBlock_desription;
} else if (fBodyProperty == IfStatement.ELSE_STATEMENT_PROPERTY) {
label = FixMessages.CodeStyleFix_ChangeElseToBlock_description;
} else {
label = FixMessages.CodeStyleFix_ChangeControlToBlock_description;
}
TextEditGroup group= createTextEditGroup(label, cuRewrite);
ASTNode moveTarget= rewrite.createMoveTarget(fBody);
Block replacingBody= cuRewrite.getRoot().getAST().newBlock();
replacingBody.statements().add(moveTarget);
rewrite.set(fControlStatement, fBodyProperty, replacingBody, group);
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:QuickAssistProcessor.java
private static boolean getAddElseProposals(IInvocationContext context, ASTNode node, Collection<ICommandAccess> resultingCollections) {
if (!(node instanceof IfStatement)) {
return false;
}
IfStatement ifStatement= (IfStatement) node;
if (ifStatement.getElseStatement() != null) {
return false;
}
if (resultingCollections == null) {
return true;
}
AST ast= node.getAST();
ASTRewrite rewrite= ASTRewrite.create(ast);
Block body= ast.newBlock();
rewrite.set(ifStatement, IfStatement.ELSE_STATEMENT_PROPERTY, body, null);
String label= CorrectionMessages.QuickAssistProcessor_addelseblock_description;
Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_ADD);
ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, 1, image);
resultingCollections.add(proposal);
return true;
}
项目:jive
文件:StatementVisitor.java
/**
* 'if(' expression ') {' thenStatement '}' ['else {' elseStatement '}']
*/
@Override
public boolean visit(final IfStatement node)
{
final int lineNo = lineStart(node);
// dependence id
final LineKind kind = node.getElseStatement() == null ? LK_IF_THEN : LK_IF_THEN_ELSE;
// new dependence
final IResolvedLine rd = createDependence(kind, lineNo, mdg.parent());
// append control dependences
appendDependences(rd, node.getExpression(), null, false);
// recursively append "then" dependences
appendRecursive(lineNo, rd, node.getThenStatement());
// recursively append "else" dependences
if (node.getElseStatement() != null)
{
appendRecursive(lineNo, rd, node.getElseStatement());
}
// do not visit children
return false;
}
项目:fb-contrib-eclipse-quick-fixes
文件:ReturnValueIgnoreResolution.java
@SuppressWarnings("unchecked")
private Statement makeIfStatement(ASTRewrite rewrite, ReturnValueResolutionVisitor rvrFinder, boolean b) {
AST rootNode = rewrite.getAST();
IfStatement ifStatement = rootNode.newIfStatement();
Expression expression = makeIfExpression(rewrite, rvrFinder, b);
ifStatement.setExpression(expression);
// the block surrounds the inner statement with {}
Block thenBlock = rootNode.newBlock();
Statement thenStatement = makeExceptionalStatement(rootNode);
thenBlock.statements().add(thenStatement);
ifStatement.setThenStatement(thenBlock);
return ifStatement;
}
项目:asup
文件:JDTStatementWriter.java
@SuppressWarnings("unchecked")
@Override
public boolean visit(QJump statement) {
Block block = blocks.peek();
// dummy break
if (isParentFor(statement)) {
IfStatement ifSt = ast.newIfStatement();
ifSt.setExpression(ast.newBooleanLiteral(false));
ifSt.setThenStatement(ast.newBreakStatement());
block.statements().add(ifSt);
}
MethodInvocation methodInvocation = ast.newMethodInvocation();
methodInvocation.setExpression(ast.newSimpleName("qRPJ"));
methodInvocation.setName(ast.newSimpleName("qJump"));
Name labelName = ast.newName(new String[] { "TAG", statement.getLabel() });
methodInvocation.arguments().add(0, labelName);
ExpressionStatement expressionStatement = ast.newExpressionStatement(methodInvocation);
block.statements().add(expressionStatement);
return super.visit(statement);
}
项目:asup
文件:JDTStatementWriter.java
@SuppressWarnings("unchecked")
@Override
public boolean visit(QReturn statement) {
Block block = blocks.peek();
ReturnStatement returnSt = ast.newReturnStatement();
if (isParentProcedure(statement)) {
block.statements().add(returnSt);
} else {
// dummy condition
IfStatement ifSt = ast.newIfStatement();
ifSt.setExpression(ast.newBooleanLiteral(true));
ifSt.setThenStatement(returnSt);
block.statements().add(ifSt);
}
return false;
}
项目:j2d
文件:J2dVisitor.java
@Override
public boolean visit(IfStatement node) {
//System.out.println("Found: " + node.getClass());
print("if (");
node.getExpression().accept(this);
println(") {");
indent++;
node.getThenStatement().accept(this);
indent--;
if (node.getElseStatement() == null) {
println("}");
} else {
if (node.getElseStatement() instanceof IfStatement) {
print("} else ");
node.getElseStatement().accept(this);
} else {
println("} else {");
indent++;
node.getElseStatement().accept(this);
indent--;
println("}");
}
}
return false;
}
项目:junit2spock
文件:IfStatementWrapper.java
public IfStatementWrapper(IfStatement statement, int indentationLevel, Applicable applicable) {
super(indentationLevel, applicable);
this.expression = statement.getExpression();
this.thenBlock = new LinkedList<>();
this.elseBlock = new LinkedList<>();
statementsFrom(statement.getThenStatement(), thenBlock);
statementsFrom(statement.getElseStatement(), elseBlock);
applicable.applyFeaturesToStatements(thenBlock);
applicable.applyFeaturesToStatements(elseBlock);
}
项目:junit2spock
文件:WrapperDecorator.java
public static Object wrap(Object statement, int indentation, Applicable applicable) {
if (statement instanceof IfStatement) {
return new IfStatementWrapper((IfStatement) statement, indentation, applicable);
} else if (statement instanceof TryStatement) {
return new TryStatementWrapper((TryStatement) statement, indentation, applicable);
}
return statement;
}
项目:RefDiff
文件:ASTVisitorAtomicChange.java
public boolean visit(IfStatement node) {
Statement thenStmt = node.getThenStatement();
Statement elseStmt = node.getElseStatement();
Expression condExpr = node.getExpression();
String thenStr = (thenStmt.toString()).replace('\n', ' ');
String elseStr = "";
if (elseStmt != null) {
elseStr = (elseStmt.toString()).replace('\n', ' ');
}
if (mtbStack.isEmpty()) // not part of a method
return true;
IMethodBinding mtb = mtbStack.peek();
String methodStr = getQualifiedName(mtb);
String condStr = condExpr.toString();
condStr = edit_str(condStr);
thenStr = edit_str(thenStr);
elseStr = edit_str(elseStr);
// make conditional fact
try {
facts.add(Fact.makeConditionalFact(condStr, thenStr, elseStr,
methodStr));
} catch (Exception e) {
System.err.println("Cannot resolve conditional \""
+ condExpr.toString() + "\"");
System.out.println("ifStmt: " + thenStr);
System.out.println("elseStmt: " + elseStr);
System.err.println(e.getMessage());
}
return true;
}
项目:pandionj
文件:VarParser.java
private boolean isLoopStatement(Block block) {
ASTNode parent = block.getParent();
return
parent instanceof WhileStatement ||
parent instanceof ForStatement ||
parent instanceof DoStatement ||
parent instanceof EnhancedForStatement ||
parent instanceof IfStatement;
}