]> git.argeo.org Git - lgpl/argeo-commons.git/blob - server/jcr/mvc/JcrBrowserController.java
Prepare next development cycle
[lgpl/argeo-commons.git] / server / jcr / mvc / JcrBrowserController.java
1 package org.argeo.server.jcr.mvc;
2
3 import java.util.ArrayList;
4 import java.util.Arrays;
5 import java.util.List;
6 import java.util.Map;
7
8 import javax.jcr.Item;
9 import javax.jcr.NodeIterator;
10 import javax.jcr.RepositoryException;
11 import javax.jcr.Session;
12 import javax.jcr.Value;
13 import javax.jcr.query.Query;
14 import javax.jcr.query.QueryResult;
15 import javax.jcr.query.Row;
16 import javax.jcr.query.RowIterator;
17
18 import org.springframework.stereotype.Controller;
19 import org.springframework.web.bind.annotation.RequestMapping;
20 import org.springframework.web.bind.annotation.RequestParam;
21 import org.springframework.web.context.request.RequestAttributes;
22 import org.springframework.web.context.request.WebRequest;
23
24 @Controller
25 public class JcrBrowserController implements JcrMvcConstants {
26
27 @RequestMapping("/getJcrItem.*")
28 public Item getJcrItem(WebRequest webRequest,
29 @RequestParam("path") String path) throws RepositoryException {
30 return ((Session) webRequest.getAttribute(REQUEST_ATTR_SESSION,
31 RequestAttributes.SCOPE_REQUEST)).getItem(path);
32 }
33
34 @RequestMapping("/queryJcrNodes.*")
35 public List<String> queryJcrNodes(WebRequest webRequest,
36 @RequestParam("statement") String statement,
37 @RequestParam("language") String language)
38 throws RepositoryException {
39 Session session = ((Session) webRequest.getAttribute(
40 REQUEST_ATTR_SESSION, RequestAttributes.SCOPE_REQUEST));
41 Query query = session.getWorkspace().getQueryManager().createQuery(
42 statement, language);
43 NodeIterator nit = query.execute().getNodes();
44 List<String> paths = new ArrayList<String>();
45 while (nit.hasNext()) {
46 paths.add(nit.nextNode().getPath());
47 }
48 return paths;
49 }
50
51 @RequestMapping("/queryJcrTable.*")
52 public List<List<String>> queryJcrTable(WebRequest webRequest,
53 @RequestParam("statement") String statement,
54 @RequestParam("language") String language)
55 throws RepositoryException {
56 Session session = ((Session) webRequest.getAttribute(
57 REQUEST_ATTR_SESSION, RequestAttributes.SCOPE_REQUEST));
58 Query query = session.getWorkspace().getQueryManager().createQuery(
59 statement, language);
60 QueryResult queryResult = query.execute();
61 List<List<String>> results = new ArrayList<List<String>>();
62 results.add(Arrays.asList(queryResult.getColumnNames()));
63 RowIterator rit = queryResult.getRows();
64
65 while (rit.hasNext()) {
66 Row row = rit.nextRow();
67 List<String> lst = new ArrayList<String>();
68 for (Value value : row.getValues()) {
69 lst.add(value.getString());
70 }
71 }
72 return results;
73 }
74 }