@Override public Void visitArrayInitializerExpression(final ArrayInitializerExpression node, final Void data) { super.visitArrayInitializerExpression(node, data); final ArrayCreationExpression creation = firstOrDefault(ofType(node.getAncestors(), ArrayCreationExpression.class)); if (creation == null || !creation.getAdditionalArraySpecifiers().hasSingleElement()) { return null; } for (final Expression element : node.getElements()) { addCastForAssignment(creation.getType(), element); } return null; }
@Override public final boolean matches(final INode other, final Match match) { if (other instanceof AstNode) { final INode lastInGroup = lastOrDefault(match.get(_referencedGroupName)); if (lastInGroup instanceof VariableDeclarationStatement) { final VariableDeclarationStatement referenced = (VariableDeclarationStatement) lastInGroup; final AstNodeCollection<VariableInitializer> variables = referenced.getVariables(); return variables.hasSingleElement() && matchString( variables.firstOrNullObject().getName(), ((AstNode) other).getChildByRole(Roles.IDENTIFIER).getName() ); } } return false; } }
@Override public Void visitObjectCreationExpression(final ObjectCreationExpression node, final Void data) { final AstNodeCollection<Expression> arguments = node.getArguments(); if (arguments.isEmpty() || arguments.hasSingleElement()) { final Expression firstArgument; if (arguments.hasSingleElement()) { final Match m = _stringBuilderArgumentPattern.match(arguments.firstOrNullObject()); if (!m.success()) { return super.visitObjectCreationExpression(node, data); } firstArgument = firstOrDefault(m.<Expression>get("firstArgument")); } else { firstArgument = null; } final TypeReference typeReference = node.getType().toTypeReference(); if (typeReference != null && isStringBuilder(typeReference)) { convertStringBuilderToConcatenation(node, firstArgument); } } return super.visitObjectCreationExpression(node, data); }
@Override public Void visitObjectCreationExpression(final ObjectCreationExpression node, final Void data) { final AstNodeCollection<Expression> arguments = node.getArguments(); if (arguments.isEmpty() || arguments.hasSingleElement()) { final Expression firstArgument; if (arguments.hasSingleElement()) { final Match m = _stringBuilderArgumentPattern.match(arguments.firstOrNullObject()); if (!m.success()) { return super.visitObjectCreationExpression(node, data); } firstArgument = firstOrDefault(m.<Expression>get("firstArgument")); } else { firstArgument = null; } final TypeReference typeReference = node.getType().toTypeReference(); if (typeReference != null && isStringBuilder(typeReference)) { convertStringBuilderToConcatenation(node, firstArgument); } } return super.visitObjectCreationExpression(node, data); }
@Override public Void visitObjectCreationExpression(final ObjectCreationExpression node, final Void data) { final AstNodeCollection<Expression> arguments = node.getArguments(); if (arguments.isEmpty() || arguments.hasSingleElement()) { final Expression firstArgument; if (arguments.hasSingleElement()) { final Match m = _stringBuilderArgumentPattern.match(arguments.firstOrNullObject()); if (!m.success()) { return super.visitObjectCreationExpression(node, data); } firstArgument = firstOrDefault(m.<Expression>get("firstArgument")); } else { firstArgument = null; } final TypeReference typeReference = node.getType().toTypeReference(); if (typeReference != null && isStringBuilder(typeReference)) { convertStringBuilderToConcatenation(node, firstArgument); } } return super.visitObjectCreationExpression(node, data); }
@Override public final boolean matches(final INode other, final Match match) { if (other instanceof AstNode) { final INode lastInGroup = lastOrDefault(match.get(_referencedGroupName)); if (lastInGroup instanceof VariableDeclarationStatement) { final VariableDeclarationStatement referenced = (VariableDeclarationStatement) lastInGroup; final AstNodeCollection<VariableInitializer> variables = referenced.getVariables(); return variables.hasSingleElement() && matchString( variables.firstOrNullObject().getName(), ((AstNode) other).getChildByRole(Roles.IDENTIFIER).getName() ); } } return false; } }
@Override public final boolean matches(final INode other, final Match match) { if (other instanceof AstNode) { final INode lastInGroup = lastOrDefault(match.get(_referencedGroupName)); if (lastInGroup instanceof VariableDeclarationStatement) { final VariableDeclarationStatement referenced = (VariableDeclarationStatement) lastInGroup; final AstNodeCollection<VariableInitializer> variables = referenced.getVariables(); return variables.hasSingleElement() && matchString( variables.firstOrNullObject().getName(), ((AstNode) other).getChildByRole(Roles.IDENTIFIER).getName() ); } } return false; } }
if (parentTry.getTryBlock().getStatements().hasSingleElement()) { if (!current.getResources().isEmpty()) { resources.addAll(0, current.getResources());
if (parentTry.getTryBlock().getStatements().hasSingleElement()) { if (!current.getResources().isEmpty()) { resources.addAll(0, current.getResources());
@Override public Void visitLabeledStatement(final LabeledStatement node, final Void data) { super.visitLabeledStatement(node, data); if (node.getStatement() instanceof BlockStatement) { final BlockStatement block = (BlockStatement) node.getStatement(); if (block.getStatements().hasSingleElement() && block.getStatements().firstOrNullObject() instanceof LabeledStatement) { final LabeledStatement nestedLabeledStatement = (LabeledStatement) block.getStatements().firstOrNullObject(); // // We have back-to-back labels; dump the first and redirect its references to the second. // final String nextLabel = nestedLabeledStatement.getChildByRole(Roles.LABEL).getName(); redirectLabels(node, node.getLabel(), nextLabel); nestedLabeledStatement.remove(); node.replaceWith(nestedLabeledStatement); } } return null; }
if (parentTry.getTryBlock().getStatements().hasSingleElement()) { if (!current.getResources().isEmpty()) { resources.addAll(0, current.getResources());
@Override public Void visitLabeledStatement(final LabeledStatement node, final Void data) { super.visitLabeledStatement(node, data); if (node.getStatement() instanceof BlockStatement) { final BlockStatement block = (BlockStatement) node.getStatement(); if (block.getStatements().hasSingleElement() && block.getStatements().firstOrNullObject() instanceof LabeledStatement) { final LabeledStatement nestedLabeledStatement = (LabeledStatement) block.getStatements().firstOrNullObject(); // // We have back-to-back labels; dump the first and redirect its references to the second. // final String nextLabel = nestedLabeledStatement.getChildByRole(Roles.LABEL).getName(); redirectLabels(node, node.getLabel(), nextLabel); nestedLabeledStatement.remove(); node.replaceWith(nestedLabeledStatement); } } return null; }
@Override public Void visitLabeledStatement(final LabeledStatement node, final Void data) { super.visitLabeledStatement(node, data); if (node.getStatement() instanceof BlockStatement) { final BlockStatement block = (BlockStatement) node.getStatement(); if (block.getStatements().hasSingleElement() && block.getStatements().firstOrNullObject() instanceof LabeledStatement) { final LabeledStatement nestedLabeledStatement = (LabeledStatement) block.getStatements().firstOrNullObject(); // // We have back-to-back labels; dump the first and redirect its references to the second. // final String nextLabel = nestedLabeledStatement.getChildByRole(Roles.LABEL).getName(); redirectLabels(node, node.getLabel(), nextLabel); nestedLabeledStatement.remove(); node.replaceWith(nestedLabeledStatement); } } return null; }
private void tryInlineValue(final Statement previous, final Expression value) { if (!(previous instanceof VariableDeclarationStatement) || value == null || value.isNull()) { return; } final VariableDeclarationStatement d = (VariableDeclarationStatement) previous; final AstNodeCollection<VariableInitializer> variables = d.getVariables(); final VariableInitializer initializer = variables.firstOrNullObject(); final Variable variable = initializer.getUserData(Keys.VARIABLE); if (variable != null && variable.getOriginalVariable() != null && variable.getOriginalVariable().isFromMetadata()) { return; } if (variables.hasSingleElement() && value instanceof IdentifierExpression && matchString(initializer.getName(), ((IdentifierExpression) value).getIdentifier())) { final Expression assignedValue = initializer.getInitializer(); previous.remove(); assignedValue.remove(); value.replaceWith(assignedValue); } } }
private void tryInlineValue(final Statement previous, final Expression value) { if (!(previous instanceof VariableDeclarationStatement) || value == null || value.isNull()) { return; } final VariableDeclarationStatement d = (VariableDeclarationStatement) previous; final AstNodeCollection<VariableInitializer> variables = d.getVariables(); final VariableInitializer initializer = variables.firstOrNullObject(); final Variable variable = initializer.getUserData(Keys.VARIABLE); if (variable != null && variable.getOriginalVariable() != null && variable.getOriginalVariable().isFromMetadata()) { return; } if (variables.hasSingleElement() && value instanceof IdentifierExpression && matchString(initializer.getName(), ((IdentifierExpression) value).getIdentifier())) { final Expression assignedValue = initializer.getInitializer(); previous.remove(); assignedValue.remove(); value.replaceWith(assignedValue); } } }
private void tryInlineValue(final Statement previous, final Expression value) { if (!(previous instanceof VariableDeclarationStatement) || value == null || value.isNull()) { return; } final VariableDeclarationStatement d = (VariableDeclarationStatement) previous; final AstNodeCollection<VariableInitializer> variables = d.getVariables(); final VariableInitializer initializer = variables.firstOrNullObject(); final Variable variable = initializer.getUserData(Keys.VARIABLE); if (variable != null && variable.getOriginalVariable() != null && variable.getOriginalVariable().isFromMetadata()) { return; } if (variables.hasSingleElement() && value instanceof IdentifierExpression && matchString(initializer.getName(), ((IdentifierExpression) value).getIdentifier())) { final Expression assignedValue = initializer.getInitializer(); previous.remove(); assignedValue.remove(); value.replaceWith(assignedValue); } } }
caseLabels.hasSingleElement() && caseLabels.firstOrNullObject().isNull()) {
final AstNodeCollection<Statement> falseStatements = falseBlock.getStatements(); if (falseStatements.hasSingleElement() && falseStatements.firstOrNullObject() instanceof IfElseStatement) {
final AstNodeCollection<Statement> falseStatements = falseBlock.getStatements(); if (falseStatements.hasSingleElement() && falseStatements.firstOrNullObject() instanceof IfElseStatement) {
final AstNodeCollection<Statement> falseStatements = falseBlock.getStatements(); if (falseStatements.hasSingleElement() && falseStatements.firstOrNullObject() instanceof IfElseStatement) {