private static void parenthesizeIfRequired(final Expression expression, final int minimumPrecedence) { if (getPrecedence(expression) < minimumPrecedence) { parenthesize(expression); } }
@Override public Void visitUnaryOperatorExpression(final UnaryOperatorExpression node, final Void data) { final Expression child = node.getExpression(); parenthesizeIfRequired(child, getPrecedence(node)); if (_insertParenthesesForReadability && child instanceof UnaryOperatorExpression) { parenthesize(child); } return super.visitUnaryOperatorExpression(node, data); }
@Override public Void visitUnaryOperatorExpression(final UnaryOperatorExpression node, final Void data) { final Expression child = node.getExpression(); parenthesizeIfRequired(child, getPrecedence(node)); if (_insertParenthesesForReadability && child instanceof UnaryOperatorExpression) { parenthesize(child); } return super.visitUnaryOperatorExpression(node, data); }
private static void parenthesizeIfRequired(final Expression expression, final int minimumPrecedence) { if (getPrecedence(expression) < minimumPrecedence) { parenthesize(expression); } }
@Override public Void visitUnaryOperatorExpression(final UnaryOperatorExpression node, final Void data) { final Expression child = node.getExpression(); parenthesizeIfRequired(child, getPrecedence(node)); if (_insertParenthesesForReadability && child instanceof UnaryOperatorExpression) { parenthesize(child); } return super.visitUnaryOperatorExpression(node, data); }
private static void parenthesizeIfRequired(final Expression expression, final int minimumPrecedence) { if (getPrecedence(expression) < minimumPrecedence) { parenthesize(expression); } }
@Override public Void visitCastExpression(final CastExpression node, final Void data) { final Expression child = node.getExpression(); parenthesizeIfRequired(child, UNARY); if (child instanceof UnaryOperatorExpression) { final UnaryOperatorExpression childUnary = (UnaryOperatorExpression) child; if (childUnary.getOperator() != UnaryOperatorType.BITWISE_NOT && childUnary.getOperator() != UnaryOperatorType.NOT) { if (canTypeBeMisinterpretedAsExpression(node.getType())) { parenthesize(child); } } } if (child instanceof PrimitiveExpression) { final PrimitiveExpression primitive = (PrimitiveExpression) child; final Object primitiveValue = primitive.getValue(); if (primitiveValue instanceof Number) { final Number number = (Number) primitiveValue; if (primitiveValue instanceof Float || primitiveValue instanceof Double) { if (number.doubleValue() < 0d) { parenthesize(child); } } else if (number.longValue() < 0L) { parenthesize(child); } } } return super.visitCastExpression(node, data); }
@Override public Void visitCastExpression(final CastExpression node, final Void data) { final Expression child = node.getExpression(); parenthesizeIfRequired(child, UNARY); if (child instanceof UnaryOperatorExpression) { final UnaryOperatorExpression childUnary = (UnaryOperatorExpression) child; if (childUnary.getOperator() != UnaryOperatorType.BITWISE_NOT && childUnary.getOperator() != UnaryOperatorType.NOT) { if (canTypeBeMisinterpretedAsExpression(node.getType())) { parenthesize(child); } } } if (child instanceof PrimitiveExpression) { final PrimitiveExpression primitive = (PrimitiveExpression) child; final Object primitiveValue = primitive.getValue(); if (primitiveValue instanceof Number) { final Number number = (Number) primitiveValue; if (primitiveValue instanceof Float || primitiveValue instanceof Double) { if (number.doubleValue() < 0d) { parenthesize(child); } } else if (number.longValue() < 0L) { parenthesize(child); } } } return super.visitCastExpression(node, data); }
@Override public Void visitIndexerExpression(final IndexerExpression node, final Void data) { parenthesizeIfRequired(node.getTarget(), PRIMARY); if (node.getTarget() instanceof ArrayCreationExpression) { final ArrayCreationExpression arrayCreation = (ArrayCreationExpression) node.getTarget(); if (_insertParenthesesForReadability || arrayCreation.getInitializer().isNull()) { // require parentheses for "(new int[1])[0]" parenthesize(arrayCreation); } } return super.visitIndexerExpression(node, data); }
@Override public Void visitCastExpression(final CastExpression node, final Void data) { final Expression child = node.getExpression(); parenthesizeIfRequired(child, UNARY); if (child instanceof UnaryOperatorExpression) { final UnaryOperatorExpression childUnary = (UnaryOperatorExpression) child; if (childUnary.getOperator() != UnaryOperatorType.BITWISE_NOT && childUnary.getOperator() != UnaryOperatorType.NOT) { if (canTypeBeMisinterpretedAsExpression(node.getType())) { parenthesize(child); } } } if (child instanceof PrimitiveExpression) { final PrimitiveExpression primitive = (PrimitiveExpression) child; final Object primitiveValue = primitive.getValue(); if (primitiveValue instanceof Number) { final Number number = (Number) primitiveValue; if (primitiveValue instanceof Float || primitiveValue instanceof Double) { if (number.doubleValue() < 0d) { parenthesize(child); } } else if (number.longValue() < 0L) { parenthesize(child); } } } return super.visitCastExpression(node, data); }
@Override public Void visitIndexerExpression(final IndexerExpression node, final Void data) { parenthesizeIfRequired(node.getTarget(), PRIMARY); if (node.getTarget() instanceof ArrayCreationExpression) { final ArrayCreationExpression arrayCreation = (ArrayCreationExpression) node.getTarget(); if (_insertParenthesesForReadability || arrayCreation.getInitializer().isNull()) { // require parentheses for "(new int[1])[0]" parenthesize(arrayCreation); } } return super.visitIndexerExpression(node, data); }
@Override public Void visitIndexerExpression(final IndexerExpression node, final Void data) { parenthesizeIfRequired(node.getTarget(), PRIMARY); if (node.getTarget() instanceof ArrayCreationExpression) { final ArrayCreationExpression arrayCreation = (ArrayCreationExpression) node.getTarget(); if (_insertParenthesesForReadability || arrayCreation.getInitializer().isNull()) { // require parentheses for "(new int[1])[0]" parenthesize(arrayCreation); } } return super.visitIndexerExpression(node, data); }