annotate src/de/mpiwg/itgroup/eSciDoc/foxridge/IndexMetaIterator.java @ 1:6b0267cb40ed

minor
author dwinter
date Fri, 26 Nov 2010 09:09:25 +0100
parents c6929e63b0b8
children a844f6948dd8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
1 package de.mpiwg.itgroup.eSciDoc.foxridge;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
2
c6929e63b0b8 first import
dwinter
parents:
diff changeset
3
c6929e63b0b8 first import
dwinter
parents:
diff changeset
4 /*
c6929e63b0b8 first import
dwinter
parents:
diff changeset
5 * Copyright 2000-2004 The Apache Software Foundation
c6929e63b0b8 first import
dwinter
parents:
diff changeset
6 *
c6929e63b0b8 first import
dwinter
parents:
diff changeset
7 * Licensed under the Apache License, Version 2.0 (the "License");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
8 * you may not use this file except in compliance with the License.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
9 * You may obtain a copy of the License at
c6929e63b0b8 first import
dwinter
parents:
diff changeset
10 *
c6929e63b0b8 first import
dwinter
parents:
diff changeset
11 * http://www.apache.org/licenses/LICENSE-2.0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
12 *
c6929e63b0b8 first import
dwinter
parents:
diff changeset
13 * Unless required by applicable law or agreed to in writing, software
c6929e63b0b8 first import
dwinter
parents:
diff changeset
14 * distributed under the License is distributed on an "AS IS" BASIS,
c6929e63b0b8 first import
dwinter
parents:
diff changeset
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
16 * See the License for the specific language governing permissions and
c6929e63b0b8 first import
dwinter
parents:
diff changeset
17 * limitations under the License.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
18 *
c6929e63b0b8 first import
dwinter
parents:
diff changeset
19 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
20
c6929e63b0b8 first import
dwinter
parents:
diff changeset
21 import java.io.File;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
22 import java.io.FileInputStream;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
23 import java.io.IOException;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
24 import java.util.Enumeration;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
25 import java.util.Iterator;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
26 import java.util.Stack;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
27 import java.util.Vector;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
28
c6929e63b0b8 first import
dwinter
parents:
diff changeset
29
c6929e63b0b8 first import
dwinter
parents:
diff changeset
30
c6929e63b0b8 first import
dwinter
parents:
diff changeset
31 import org.jdom.Document;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
32 import org.jdom.JDOMException;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
33 import org.jdom.input.SAXBuilder;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
34
c6929e63b0b8 first import
dwinter
parents:
diff changeset
35 import de.mpiwg.itgroup.eSciDoc.echoObjects.ECHOObject;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
36 import de.mpiwg.itgroup.eSciDoc.echoObjects.ECHORessource;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
37
c6929e63b0b8 first import
dwinter
parents:
diff changeset
38 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
39 * An iterator which iterates through the contents of a java directory. The
c6929e63b0b8 first import
dwinter
parents:
diff changeset
40 * iterator should be created with the directory at the root of the Java
c6929e63b0b8 first import
dwinter
parents:
diff changeset
41 * namespace.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
42 *
c6929e63b0b8 first import
dwinter
parents:
diff changeset
43 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
44 public class IndexMetaIterator implements Iterator<ECHOObject> {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
45
c6929e63b0b8 first import
dwinter
parents:
diff changeset
46 private File rootFolder;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
47 private File currentFolder;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
48 private Stack<File> stack;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
49
c6929e63b0b8 first import
dwinter
parents:
diff changeset
50
c6929e63b0b8 first import
dwinter
parents:
diff changeset
51 public IndexMetaIterator(File rootFolder){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
52 this.rootFolder=rootFolder;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
53 this.currentFolder=rootFolder;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
54 this.stack = new Stack<File>();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
55 for (File f:rootFolder.listFiles()){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
56 stack.push(f);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
57 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
58 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
59 @Override
c6929e63b0b8 first import
dwinter
parents:
diff changeset
60 public boolean hasNext() {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
61 // TODO Auto-generated method stub
c6929e63b0b8 first import
dwinter
parents:
diff changeset
62 return !stack.isEmpty();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
63 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
64
c6929e63b0b8 first import
dwinter
parents:
diff changeset
65 @Override
c6929e63b0b8 first import
dwinter
parents:
diff changeset
66 public ECHOObject next() {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
67 // TODO Auto-generated method stub
c6929e63b0b8 first import
dwinter
parents:
diff changeset
68 File nextFile = stack.pop();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
69 while(!nextFile.getName().endsWith(".meta") && !stack.isEmpty()){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
70 System.out.println("CHECK_________"+nextFile.getName());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
71 if(!nextFile.getName().equals("pageimg")){ //skip pageimg
c6929e63b0b8 first import
dwinter
parents:
diff changeset
72 if(nextFile.isDirectory()){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
73 for (File f:nextFile.listFiles()){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
74 stack.push(f);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
75 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
76 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
77 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
78 nextFile = stack.pop();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
79 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
80 if (!nextFile.getName().endsWith(".meta")) //der letzte Eintrag muss noch gretrennt getestet werden.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
81 nextFile = null;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
82 System.out.println("FOUND:"+nextFile);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
83 try {
1
dwinter
parents: 0
diff changeset
84 if (nextFile!=null)
dwinter
parents: 0
diff changeset
85 return createECHOObject(nextFile);
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
86 } catch (JDOMException e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
87 // TODO Auto-generated catch block
c6929e63b0b8 first import
dwinter
parents:
diff changeset
88 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
89 } catch (IOException e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
90 // TODO Auto-generated catch block
c6929e63b0b8 first import
dwinter
parents:
diff changeset
91 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
92 } catch (Exception e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
93 // TODO Auto-generated catch block
c6929e63b0b8 first import
dwinter
parents:
diff changeset
94 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
95 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
96 return null;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
97 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
98
c6929e63b0b8 first import
dwinter
parents:
diff changeset
99 private ECHOObject createECHOObject(File nextFile) throws Exception {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
100
c6929e63b0b8 first import
dwinter
parents:
diff changeset
101 //Document doc = new SAXBuilder().build(nextFile);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
102 try{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
103 FoxridgeRessource er = new FoxridgeRessource(nextFile.getParentFile().getName(),nextFile.getParentFile().getAbsolutePath(),null);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
104
c6929e63b0b8 first import
dwinter
parents:
diff changeset
105 er.metaData = er.correctML(nextFile.getAbsolutePath());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
106 er.pid=er.getPid();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
107 er.echoUrl=er.metaData; //TODO find a better solution, what to present here, z.b. texttool-tag auswerten.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
108 return er;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
109 } catch (Exception e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
110 // TODO Auto-generated catch block
c6929e63b0b8 first import
dwinter
parents:
diff changeset
111 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
112 throw new Exception();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
113 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
114 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
115 @Override
c6929e63b0b8 first import
dwinter
parents:
diff changeset
116 public void remove() {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
117 // TODO Auto-generated method stub
c6929e63b0b8 first import
dwinter
parents:
diff changeset
118
c6929e63b0b8 first import
dwinter
parents:
diff changeset
119 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
120
c6929e63b0b8 first import
dwinter
parents:
diff changeset
121
c6929e63b0b8 first import
dwinter
parents:
diff changeset
122
c6929e63b0b8 first import
dwinter
parents:
diff changeset
123 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
124
c6929e63b0b8 first import
dwinter
parents:
diff changeset
125
c6929e63b0b8 first import
dwinter
parents:
diff changeset
126