Mercurial > hg > digilib-old
annotate servlet/src/digilib/io/DigilibInfoReader.java @ 812:b484631f37c1 jquery
better intersect function
author | hertzhaft |
---|---|
date | Mon, 21 Feb 2011 01:00:26 +0100 |
parents | 0885f5ca5b24 |
children |
rev | line source |
---|---|
557 | 1 package digilib.io; |
509 | 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; | |
529 | 12 import org.jdom.Document; |
13 import org.jdom.Element; | |
14 import org.jdom.input.SAXBuilder; | |
509 | 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; | |
531
9cedd170b581
* PDF generation works now even with subdirectories
robcast
parents:
529
diff
changeset
|
24 //private static String base_element = "info"; |
509 | 25 |
26 public DigilibInfoReader(String fn){ | |
27 filename = fn; | |
28 } | |
29 | |
511 | 30 /** |
31 * Returns the attribute defined by 'attr' as a String. | |
32 * | |
33 * @param attr | |
34 * @return | |
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 | 38 try{ |
39 SAXBuilder builder = new SAXBuilder(); | |
40 Document doc = builder.build(new File(filename)); | |
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 | 43 // logger.debug("XML mainElements:"+mainElements.toString()); |
509 | 44 |
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 | 47 if(elem.getName()==attr){ |
511 | 48 // logger.debug(attr+" == "+(String)elem.getTextTrim()); |
509 | 49 return (String)elem.getTextTrim(); |
50 } | |
51 } | |
52 | |
53 } | |
54 catch(Exception e){ | |
55 logger.error(e.getMessage()); | |
56 } | |
57 return null; | |
58 } | |
59 | |
511 | 60 |
61 /** | |
62 * Find out if the info.xml exists | |
63 * @return | |
64 */ | |
509 | 65 public boolean hasInfo(){ |
66 try { | |
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 | 69 return true; |
70 } | |
71 catch(Exception e){ | |
72 return false; | |
73 } | |
74 } | |
75 | |
76 } |