comparison servlet/src/digilib/io/DigilibInfoReader.java @ 557:0885f5ca5b24 digilibPDF

more refactoring and rearranging pdf and image generation works now
author robcast
date Thu, 16 Dec 2010 21:19:11 +0100
parents servlet/src/digilib/servlet/DigilibInfoReader.java@9cedd170b581
children
comparison
equal deleted inserted replaced
556:5cc180bb0a5c 557:0885f5ca5b24
1 package digilib.io;
2
3 /** DigilibInfoReader
4 * A class for reading the information from info.xml files used in digilib image directories.
5 *
6 */
7
8 import java.io.File;
9 import java.util.List;
10
11 import org.apache.log4j.Logger;
12 import org.jdom.Document;
13 import org.jdom.Element;
14 import org.jdom.input.SAXBuilder;
15
16
17
18 public class DigilibInfoReader {
19
20 /** gengeral logger for this class */
21 protected static Logger logger = Logger.getLogger("digilib.servlet");
22
23 private String filename = null;
24 //private static String base_element = "info";
25
26 public DigilibInfoReader(String fn){
27 filename = fn;
28 }
29
30 /**
31 * Returns the attribute defined by 'attr' as a String.
32 *
33 * @param attr
34 * @return
35 */
36 @SuppressWarnings("unchecked") // Element.getChildren() returns naked List
37 public String getAsString(String attr){
38 try{
39 SAXBuilder builder = new SAXBuilder();
40 Document doc = builder.build(new File(filename));
41 Element root = doc.getRootElement();
42 List<Element> mainElements = root.getChildren();
43 // logger.debug("XML mainElements:"+mainElements.toString());
44
45 for(int i=0; i<mainElements.size(); i++){
46 Element elem = mainElements.get(i);
47 if(elem.getName()==attr){
48 // logger.debug(attr+" == "+(String)elem.getTextTrim());
49 return (String)elem.getTextTrim();
50 }
51 }
52
53 }
54 catch(Exception e){
55 logger.error(e.getMessage());
56 }
57 return null;
58 }
59
60
61 /**
62 * Find out if the info.xml exists
63 * @return
64 */
65 public boolean hasInfo(){
66 try {
67 SAXBuilder builder = new SAXBuilder();
68 builder.build(new File(filename));
69 return true;
70 }
71 catch(Exception e){
72 return false;
73 }
74 }
75
76 }