String (GrBinaryExpression expression) { final IElementType sign = expression.getOperationTokenType(); final GrExpression lhs = expression.getLeftOperand(); final GrExpression rhs = expression.getRightOperand(); if (rhs == null) { return null; } final String rhsText = rhs.getText(); final String lhsText = lhs.getText(); if (sign.equals(T_LAND)) { if (isTrue(lhs)) { return rhsText; } else { return lhsText; } } else if (sign.equals(T_LOR)) { if (isFalse(lhs)) { return rhsText; } else { return lhsText; } } else if (sign.equals(T_XOR) || sign.equals(T_NEQ)) { if (isFalse(lhs)) { return rhsText; } else if (isFalse(rhs)) { return lhsText; } else if (isTrue(lhs)) { return createStringForNegatedExpression(rhs); } else { return createStringForNegatedExpression(lhs); } } else if (sign.equals(T_EQ)) { if (isTrue(lhs)) { return rhsText; } else if (isTrue(rhs)) { return lhsText; } else if (isFalse(lhs)) { return createStringForNegatedExpression(rhs); } else { return createStringForNegatedExpression(lhs); } } else { return ""; } }