]> git.argeo.org Git - lgpl/argeo-commons.git/blob - sandbox/runtime/org.argeo.sandbox.jackrabbit/src/main/java/jcr/CommandLineQuery.java
Adapt to version upgrade
[lgpl/argeo-commons.git] / sandbox / runtime / org.argeo.sandbox.jackrabbit / src / main / java / jcr / CommandLineQuery.java
1 package jcr;
2
3 import javax.jcr.*;
4 import javax.jcr.nodetype.PropertyDefinition;
5 import javax.jcr.query.QueryManager;
6 import javax.jcr.query.Query;
7 import javax.jcr.query.QueryResult;
8 import java.io.IOException;
9 import java.io.BufferedReader;
10 import java.io.InputStreamReader;
11
12 public class CommandLineQuery extends Base {
13 public CommandLineQuery() {
14 }
15
16 public static void main(String[] args) throws IOException, RepositoryException {
17 CommandLineQuery clq=new CommandLineQuery();
18 clq.run();
19 }
20
21 private void run() throws IOException, RepositoryException {
22 Repository repository=getRepository();
23 Session session=getReadonlySession(repository);
24 Workspace workspace=session.getWorkspace();
25 QueryManager qm=workspace.getQueryManager();
26 BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
27 for(;;) {
28 System.out.print("JCRQL> ");
29 String queryString=reader.readLine();
30 if(queryString.equals("quit")) {
31 break;
32 }
33 if(queryString.length()==0 || queryString.startsWith("#")) {
34 continue;
35 }
36
37 int resultCounter=0;
38 try {
39 Query query=qm.createQuery(queryString, Query.XPATH);
40 QueryResult queryResult=query.execute();
41 NodeIterator nodeIterator=queryResult.getNodes();
42 while(nodeIterator.hasNext()) {
43 Node node=nodeIterator.nextNode();
44 dump(node);
45 resultCounter++;
46 }
47 } catch(Exception e) {
48 e.printStackTrace();
49 }
50
51 System.out.println("result count: "+resultCounter);
52 }
53 logout(session);
54 }
55
56 private void dump(Node node) throws RepositoryException {
57 StringBuilder sb=new StringBuilder();
58 String sep=",";
59 sb.append(node.getName());
60 sb.append("["+node.getPath());
61 PropertyIterator propIterator=node.getProperties();
62 while(propIterator.hasNext()) {
63 Property prop=propIterator.nextProperty();
64 sb.append(sep);
65 sb.append("@"+prop.getName()+"=\""+prop.getString()+"\"");
66 }
67 sb.append("]");
68 System.out.println(sb.toString());
69 }
70 }