Пример #1
0
  @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();
  }