annotate servlet/src/digilib/io/DigilibInfoReader.java @ 569:1f666c2b4578

Merge with PDF branch 8beefd1142b28ca9b2433205e7eea82a517bb215
author robcast
date Tue, 21 Dec 2010 09:52:16 +0100
parents 0885f5ca5b24
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
557
0885f5ca5b24 more refactoring and rearranging
robcast
parents: 531
diff changeset
1 package digilib.io;
509
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
2
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
3 /** DigilibInfoReader
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
4 * A class for reading the information from info.xml files used in digilib image directories.
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
5 *
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
6 */
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
7
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
8 import java.io.File;
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
9 import java.util.List;
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
10
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
11 import org.apache.log4j.Logger;
529
6f0317ff5824 small clean up
robcast
parents: 511
diff changeset
12 import org.jdom.Document;
6f0317ff5824 small clean up
robcast
parents: 511
diff changeset
13 import org.jdom.Element;
6f0317ff5824 small clean up
robcast
parents: 511
diff changeset
14 import org.jdom.input.SAXBuilder;
509
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
15
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
16
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
17
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
18 public class DigilibInfoReader {
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
19
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
20 /** gengeral logger for this class */
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
21 protected static Logger logger = Logger.getLogger("digilib.servlet");
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
22
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
23 private String filename = null;
531
9cedd170b581 * PDF generation works now even with subdirectories
robcast
parents: 529
diff changeset
24 //private static String base_element = "info";
509
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
25
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
26 public DigilibInfoReader(String fn){
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
27 filename = fn;
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
28 }
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
29
511
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
30 /**
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
31 * Returns the attribute defined by 'attr' as a String.
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
32 *
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
33 * @param attr
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
34 * @return
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
35 */
531
9cedd170b581 * PDF generation works now even with subdirectories
robcast
parents: 529
diff changeset
36 @SuppressWarnings("unchecked") // Element.getChildren() returns naked List
9cedd170b581 * PDF generation works now even with subdirectories
robcast
parents: 529
diff changeset
37 public String getAsString(String attr){
509
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
38 try{
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
39 SAXBuilder builder = new SAXBuilder();
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
40 Document doc = builder.build(new File(filename));
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
41 Element root = doc.getRootElement();
531
9cedd170b581 * PDF generation works now even with subdirectories
robcast
parents: 529
diff changeset
42 List<Element> mainElements = root.getChildren();
511
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
43 // logger.debug("XML mainElements:"+mainElements.toString());
509
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
44
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
45 for(int i=0; i<mainElements.size(); i++){
531
9cedd170b581 * PDF generation works now even with subdirectories
robcast
parents: 529
diff changeset
46 Element elem = mainElements.get(i);
509
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
47 if(elem.getName()==attr){
511
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
48 // logger.debug(attr+" == "+(String)elem.getTextTrim());
509
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
49 return (String)elem.getTextTrim();
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
50 }
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
51 }
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
52
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
53 }
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
54 catch(Exception e){
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
55 logger.error(e.getMessage());
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
56 }
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
57 return null;
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
58 }
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
59
511
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
60
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
61 /**
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
62 * Find out if the info.xml exists
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
63 * @return
e706a777798b documentation and comments added/cleaned up
cmielack
parents: 509
diff changeset
64 */
509
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
65 public boolean hasInfo(){
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
66 try {
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
67 SAXBuilder builder = new SAXBuilder();
531
9cedd170b581 * PDF generation works now even with subdirectories
robcast
parents: 529
diff changeset
68 builder.build(new File(filename));
509
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
69 return true;
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
70 }
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
71 catch(Exception e){
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
72 return false;
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
73 }
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
74 }
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
75
ab94692bff0c *** empty log message ***
cmielack
parents:
diff changeset
76 }