public Argument evaluate(ContextStack context, Argument arg1, Argument arg2, Argument arg3)
public Argument evaluate(ContextStack context, ArrayList args)
	public Argument evaluate(ContextStack context, Argument arg1, Argument arg2, Argument arg3)		throws MapyrusException	{		Argument retval;		String wkt = arg1.toString();		double distance = arg2.getNumericValue();		String cap = arg3.toString();		int capType = BufferOp.CAP_ROUND;		if (cap.equalsIgnoreCase("butt"))			capType = BufferOp.CAP_BUTT;		else if (cap.equalsIgnoreCase("square"))			capType = BufferOp.CAP_SQUARE;		try		{			/*			 * Use JTS function to calculate buffer, then convert it back to a			 * geometry argument.			 */			Geometry g = new WKTReader().read(wkt);			BufferOp bufOp = new BufferOp(g);			bufOp.setEndCapStyle(capType);			Geometry buffer = bufOp.getResultGeometry(distance);			retval = new Argument(buffer.toText());		}		catch (ParseException e)		{			throw new MapyrusException(e.getMessage());		}		catch (IllegalArgumentException e)		{			throw new MapyrusException(e.getMessage());		}		return(retval);	}