text: public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval numberVE, ValueEval formVE) {int number = 0;try {ValueEval ve = OperandResolver.getSingleValue(numberVE, srcRowIndex, srcColumnIndex);number = OperandResolver.coerceValueToInt(ve);} catch (EvaluationException e) {return ErrorEval.VALUE_INVALID;}if (number < 0) {return ErrorEval.VALUE_INVALID;}if (number > 3999) {return ErrorEval.VALUE_INVALID;}if (number == 0) {return new StringEval("");}int form = 0;try {ValueEval ve = OperandResolver.getSingleValue(formVE, srcRowIndex, srcColumnIndex);form = OperandResolver.coerceValueToInt(ve);} catch (EvaluationException e) {return ErrorEval.NUM_ERROR;}if (form > 4 || form < 0) {return ErrorEval.VALUE_INVALID;}String result = this.integerToRoman(number);if (form == 0) {return new StringEval(result);}return new StringEval(makeConcise(result, form));}