annotate src/main/java/de/mpiwg/indexmeta/IndexMetaParser.java @ 8:9ce7979fd037

Implementation Data Provider
author Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
date Wed, 24 Apr 2013 10:34:23 +0200
parents 7d231e4e86e5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 package de.mpiwg.indexmeta;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
2
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 import java.io.File;
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
4 import java.io.FilenameFilter;
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 import java.util.ArrayList;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
6 import java.util.List;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
7
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
8 import javax.xml.parsers.DocumentBuilder;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
9 import javax.xml.parsers.DocumentBuilderFactory;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
10 import javax.xml.xpath.XPath;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
11 import javax.xml.xpath.XPathConstants;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 import javax.xml.xpath.XPathExpression;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
13 import javax.xml.xpath.XPathFactory;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
14
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
15 import org.apache.commons.lang.StringUtils;
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 import org.w3c.dom.Document;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
17 import org.w3c.dom.Element;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
18 import org.w3c.dom.Node;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
19 import org.w3c.dom.NodeList;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
20
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
21 import de.mpiwg.indexmeta.bo.Contextualization;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
22
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
23 public class IndexMetaParser {
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
24
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
25 public static String indexMetaFile = "index.meta";
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
26 public static String annotatedIndexMetaFile = "index.meta.annot";
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
27
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
28 /*
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
29 public static List<Contextualization> getCtxItems(String filePath){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
30 List<Contextualization> rs = new ArrayList<Contextualization>();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
31
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
32 try {
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
33 File file = new File("/Users/jurzua/Projects/workspace/contextualization/data/index.meta/01index.meta.anno.xml");
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
34
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
35 if(file.isFile()){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
36 rs = getCtxItemsFromFile(file, rs);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
37 }else if(file.isDirectory()){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
38 rs = getCtxItemsFromDirectory(file, rs);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
39 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
40
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
41 } catch (Exception e) {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
42 e.printStackTrace();
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
43 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
44
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
45 return rs;
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
46 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
47 */
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
48
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
49 public static List<Contextualization> getCtxFromDirectory(String directory){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
50 List<Contextualization> rs = new ArrayList<Contextualization>();
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
51
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
52 try {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
53 File file = new File(directory);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
54 rs = getCtxItemsFromDirectory(file, rs);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
55 } catch (Exception e) {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
56 e.printStackTrace();
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
57 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
58
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
59 return rs;
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
60 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
61
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
62 public static List<Contextualization> getCtxFromResource(String indexMetaResource){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
63 List<Contextualization> rs = new ArrayList<Contextualization>();
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
64
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
65 try {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
66 File file = new File(indexMetaResource);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
67 rs = getCtxItemsFromIndexMetaResource(file, rs);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
68 } catch (Exception e) {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
69 e.printStackTrace();
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
70 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
71
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
72 return rs;
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
73 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
74
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
75
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
76
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
77 private static List<Contextualization> getCtxItemsFromDirectory(File directory, List<Contextualization> rs) throws Exception{
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
78 String canonicalPath = directory.getCanonicalPath();
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
79 System.out.println(canonicalPath);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
80
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
81 File[] files = directory.listFiles();
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
82
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
83 for(File indexMetaResource : files){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
84
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
85 if(indexMetaResource.isDirectory()){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
86 rs = getCtxItemsFromIndexMetaResource(indexMetaResource, rs);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
87 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
88 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
89 return rs;
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
90 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
91
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
92 private static List<Contextualization> getCtxItemsFromIndexMetaResource(File indexMetaResource, List<Contextualization> rs){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
93
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
94 System.out.print("Working on: " + indexMetaResource.getName());
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
95
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
96 File[] list0 = indexMetaResource.listFiles(indexMetaFilter);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
97 File annotatedFile = null;
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
98
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
99 if(list0.length != 0){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
100 System.out.print("\tFound: " + indexMetaFile);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
101 File[] list1 = indexMetaResource.listFiles(annotatedIndexMetaFilter);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
102 if(list1.length == 0){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
103 //create annotated file
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
104 System.out.print("\tAnnotated no found");
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
105 try{
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
106 annotatedFile = AnnotateIndexMeta.xmlParse(list0[0].getAbsolutePath(), null);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
107 }catch (Exception e) {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
108 e.printStackTrace();
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
109 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
110
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
111 }else{
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
112 annotatedFile = list1[0];
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
113 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
114 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
115 rs = getCtxItemsFromFile(annotatedFile, rs, indexMetaResource.getName());
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
116
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
117 System.out.println();
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
118
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
119 return rs;
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
120 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
121
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
122 private static List<Contextualization> getCtxItemsFromFile(File file, List<Contextualization> rs, String indexMetaId){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
123
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
124 try {
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
125 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
126 DocumentBuilder builder = factory.newDocumentBuilder();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
127 Document doc = builder.parse(file);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
128
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
129
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
130 for(String ctxElement : Contextualization.contextualizableList){}
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
131
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
132 List<Node> nodes = getNodeList(doc, Contextualization.AUTHOR);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
133 for(Node node : nodes){
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
134 Contextualization ctx = getCtx(node, indexMetaId);
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
135 if(ctx != null){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
136 rs.add(ctx);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
137 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
138 }
5
7d231e4e86e5 environment setting
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 0
diff changeset
139
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
140 nodes = getNodeList(doc, Contextualization.CITY);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
141 for(Node node : nodes){
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
142 Contextualization ctx = getCtx(node, indexMetaId);
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
143 if(ctx != null){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
144 rs.add(ctx);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
145 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
146 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
147 } catch (Exception e) {
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
148 e.printStackTrace();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
149 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
150
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
151
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
152 return rs;
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
153 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
154
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
155
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
156 public static List<Node> getNodeList(Document doc, String tagName){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
157 List<Node> rs = new ArrayList<Node>();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
158
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
159 try {
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
160 XPathFactory xPathfactory = XPathFactory.newInstance();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
161 XPath xpath = xPathfactory.newXPath();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
162 XPathExpression expr = xpath.compile("//" + tagName);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
163
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
164 Object result = expr.evaluate(doc, XPathConstants.NODESET);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
165
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
166 NodeList nodes = (NodeList) result;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
167 for (int i = 0; i < nodes.getLength(); i++) {
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
168 Node node = nodes.item(i);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
169 rs.add(node);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
170 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
171 } catch (Exception e) {
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
172 e.printStackTrace();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
173 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
174
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
175 return rs;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
176
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
177 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
178
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
179 public static Contextualization getCtx(Node node, String indexMetaId){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
180 if(node instanceof Element){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
181 try{
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
182 Element elem = (Element)node;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
183 Contextualization ctx = new Contextualization();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
184 ctx.setIndexMetaId(indexMetaId);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
185 ctx.setType(elem.getNodeName());
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
186 ctx.setElementId(elem.getAttribute("context-id"));
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
187
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
188 Node child = elem.getFirstChild();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
189 if(child != null){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
190 ctx.setContent(child.getNodeValue());
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
191 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
192 return ctx;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
193 }catch (Exception e) {
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
194 e.printStackTrace();
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
195 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
196 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
197
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
198
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
199 return null;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
200 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
201
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
202 public static void main(String[] args){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
203
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
204 //--/Volumes/online_permanent/library
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
205 //getCtxItems("/Users/jurzua/Projects/workspace/contextualization/data/index.meta/01index.meta");
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
206 List<Contextualization> rs = getCtxFromDirectory("/Users/jurzua/Projects/max-planck/index_meta/library");
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
207 //List<Contextualization> rs = getCtxFromResource("/Users/jurzua/Projects/max-planck/index_meta/library/BB1RH90M");
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
208
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
209 for(Contextualization ctx : rs){
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
210 System.out.println(ctx.toString());
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
211 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
212
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
213 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
214
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
215 public static void printXpathResult(Object result){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
216 NodeList nodes = (NodeList) result;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
217 for (int i = 0; i < nodes.getLength(); i++) {
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
218 Node node = nodes.item(i);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
219 if(node instanceof Element){
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
220 Element e = (Element)node;
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
221
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
222 System.out.println("Local Name= " + node.getLocalName());
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
223 System.out.println("Value= " + node.getNodeValue());
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
224 System.out.println("Name= " + node.getNodeName());
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
225 System.out.println("getFirstChild value= " + node.getFirstChild().getNodeValue());
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
226 System.out.println(node);
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
227 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
228 }
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
229 }
8
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
230
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
231 private static FilenameFilter indexMetaFilter = new FilenameFilter() {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
232 public boolean accept(File directory, String fileName) {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
233 return StringUtils.equals(fileName, indexMetaFile);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
234 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
235 };
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
236
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
237 private static FilenameFilter annotatedIndexMetaFilter = new FilenameFilter() {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
238 public boolean accept(File directory, String fileName) {
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
239 return StringUtils.equals(fileName, annotatedIndexMetaFile);
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
240 }
9ce7979fd037 Implementation Data Provider
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents: 5
diff changeset
241 };
0
dfce13a5f5f9 nit project!
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff changeset
242 }