1 package at.meikel.dmrl.webapp.rest;
2
3 import java.util.List;
4 import java.util.Vector;
5
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.stereotype.Controller;
8 import org.springframework.web.bind.annotation.RequestMapping;
9 import org.springframework.web.bind.annotation.RequestMethod;
10 import org.springframework.web.bind.annotation.ResponseBody;
11
12 import at.meikel.dmrl.server.persistence.ExcelSheet;
13 import at.meikel.dmrl.server.server.Server;
14
15 @Controller
16 public class AdminService {
17
18 private final static String ADMIN_PREFIX = "/admin";
19
20 @Autowired
21 Server server = null;
22
23 @RequestMapping(value = ADMIN_PREFIX + "/getCurrentData", method = RequestMethod.GET)
24 @ResponseBody
25 public String getCurrentDataFileName() {
26 String result = null;
27
28 if (server != null) {
29 ExcelSheet sheet = server.getCurrentData();
30 if (sheet != null) {
31 result = "Id='" + sheet.getId() + "', URL='" + sheet.getUrl()
32 + "', State='" + sheet.getState() + "'";
33 }
34 }
35
36 return result;
37 }
38
39 @RequestMapping(value = ADMIN_PREFIX + "/listAllData", method = RequestMethod.GET)
40 @ResponseBody
41 public List<String> listAllDataFileNames() {
42 Vector<String> result = new Vector<String>();
43 if (server != null) {
44 List<ExcelSheet> allData = server.listAllData();
45 for (ExcelSheet sheet : allData) {
46 result.add("Id='" + sheet.getId() + "', URL='" + sheet.getUrl()
47 + "', State='" + sheet.getState() + "'");
48 }
49 }
50 return result;
51 }
52
53 @RequestMapping(value = ADMIN_PREFIX + "/retrieveData", method = RequestMethod.GET)
54 @ResponseBody
55 public String retrieveData() {
56 StringBuilder result = new StringBuilder();
57 if (server == null) {
58 result.append("ERROR: server == null.");
59 } else {
60 long start = System.currentTimeMillis();
61 server.retrieveData();
62 long end = System.currentTimeMillis();
63 long diff = end - start;
64 result.append("OK: execution time = " + diff + "ms.");
65 }
66 result.append(server == null ? "null" : server.toString());
67 return result.toString();
68 }
69
70 @RequestMapping(value = ADMIN_PREFIX + "/reloadData", method = RequestMethod.GET)
71 @ResponseBody
72 public String reloadData() {
73 StringBuilder result = new StringBuilder();
74 if (server == null) {
75 result.append("ERROR: server == null.");
76 } else {
77 long start = System.currentTimeMillis();
78 server.reloadData();
79 long end = System.currentTimeMillis();
80 long diff = end - start;
81 result.append("OK: execution time = " + diff + "ms.");
82 }
83 return result.toString();
84 }
85
86 }