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