@Override public String toOperatorString(CalcFunction function) { int precedence = getPrecedence(); char operatorChar = '+'; StringBuffer buffer = new StringBuffer(); CalcObject temp; for (int ii = 0; ii < function.size(); ii++) { temp = function.get(ii); if (temp.getHeader().equals(CALC.MULTIPLY) && ((CalcFunction) temp).get(0).compareTo(CALC.ZERO) < 0) { // special case -> negative number buffer.append(temp); continue; } else { if (ii > 0) { buffer.append(operatorChar); } if (temp.getPrecedence() < precedence) { buffer.append('('); } buffer.append(temp.toString()); if (temp.getPrecedence() < precedence) { buffer.append(')'); } } } return buffer.toString(); }