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
;
12 public class CommandLineQuery
extends Base
{
13 public CommandLineQuery() {
16 public static void main(String
[] args
) throws IOException
, RepositoryException
{
17 CommandLineQuery clq
=new CommandLineQuery();
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
));
28 System
.out
.print("JCRQL> ");
29 String queryString
=reader
.readLine();
30 if(queryString
.equals("quit")) {
33 if(queryString
.length()==0 || queryString
.startsWith("#")) {
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();
47 } catch(Exception e
) {
51 System
.out
.println("result count: "+resultCounter
);
56 private void dump(Node node
) throws RepositoryException
{
57 StringBuilder sb
=new StringBuilder();
59 sb
.append(node
.getName());
60 sb
.append("["+node
.getPath());
61 PropertyIterator propIterator
=node
.getProperties();
62 while(propIterator
.hasNext()) {
63 Property prop
=propIterator
.nextProperty();
65 sb
.append("@"+prop
.getName()+"=\""+prop
.getString()+"\"");
68 System
.out
.println(sb
.toString());