1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.tuigwaa.plugin.basic;
17
18 import org.seasar.tuigwaa.cms.core.CmsRequest;
19 import org.seasar.tuigwaa.cms.core.CmsResponse;
20 import org.seasar.tuigwaa.plugin.AbstractPlugin;
21 import org.seasar.tuigwaa.plugin.PluginException;
22 import org.seasar.tuigwaa.plugin.PluginRequest;
23
24
25 /***
26 * @author nishioka
27 */
28 public class CalcPlugin extends AbstractPlugin {
29
30 public String doHTMLView(CmsRequest request, CmsResponse response,
31 PluginRequest prequest) throws PluginException {
32
33 String[] args = prequest.getArgs();
34 if (args == null || args.length < 3) {
35 throw new PluginException("illegal arguments");
36 }
37
38 String op = args[0];
39
40 double left = 0;
41 double right =0;
42 try {
43 left = Double.parseDouble(args[1]);
44 right = Double.parseDouble(args[2]);
45 } catch (NumberFormatException nfe) {
46 throw new PluginException(nfe);
47 }
48 double answer = calculate(op, left, right);
49
50 String ret = "" + answer;
51 if (ret.endsWith(".0")) {
52 ret = ret.substring(0, ret.length() - 2);
53 }
54 return ret;
55 }
56
57 protected double calculate(String op, double left, double right) {
58
59 double answer = 0;
60 if ("+".equals(op)) {
61 answer = left + right;
62 } else if ("-".equals(op)) {
63 answer = left - right;
64 } else if ("*".equals(op)) {
65 answer = left * right;
66 } else if ("/".equals(op)) {
67 if (right != 0) {
68 answer = left / right;
69 }
70 }
71 return answer;
72 }
73
74 }