View Javadoc

1   /**************************************************************************
2   Copyright 2005 Webstersmalley
3   
4   Licensed under the Apache License, Version 2.0 (the "License");
5   you may not use this file except in compliance with the License.
6   You may obtain a copy of the License at
7   
8       http://www.apache.org/licenses/LICENSE-2.0
9   
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15  *************************************************************************/
16  
17  
18  package com.webstersmalley.picweb.offline;
19  
20  import java.io.BufferedInputStream;
21  import java.io.FileInputStream;
22  import java.io.IOException;
23  
24  import javax.xml.parsers.DocumentBuilder;
25  import javax.xml.parsers.DocumentBuilderFactory;
26  import javax.xml.parsers.ParserConfigurationException;
27  
28  import org.apache.commons.logging.Log;
29  import org.apache.commons.logging.LogFactory;
30  import org.w3c.dom.Document;
31  import org.w3c.dom.Element;
32  import org.w3c.dom.NodeList;
33  import org.xml.sax.SAXException;
34  
35  /***
36   * @author Matthew Smalley
37   */
38  public class TemplateModel
39  {
40  	/*** Logger for the class. */
41  	private static Log log = LogFactory.getLog(TemplateModel.class);
42  	
43  	private String framesetPage;
44  	private String headerPage;
45  	private String contentsPageHeader;
46  	private String contentsPageFolder;
47  	private String contentsPageImageChildren;
48  	private String contentsPageImageNoChildren;
49  	private String contentsPageFooter;
50  	private String mainPage;
51  	private String footerPage;
52  	private String thumbPageHeader;
53  	private String thumbPageFooter;
54  	private String thumbPageRowHeader;
55  	private String thumbPageRowFooter;
56  	private String thumbPageCell;
57  	
58  	public TemplateModel(String templateFilename) throws ParserConfigurationException, SAXException, IOException
59  	{
60  		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
61  		DocumentBuilder builder = factory.newDocumentBuilder();
62  		Document document = builder.parse(new BufferedInputStream(new FileInputStream(templateFilename)));
63  		configureFromXML(document);
64  	}
65  	
66  	private void configureFromXML(Document root)
67  	{
68  		framesetPage = getTextContentFromElementByTagName(root, "framesetpage");
69  		headerPage = getTextContentFromElementByTagName(root, "headerpage");
70  		contentsPageHeader = getTextContentFromElementByTagName(root, "contentspageheader");
71  		contentsPageFolder = getTextContentFromElementByTagName(root, "contentspagefolder");
72  		contentsPageImageChildren = getTextContentFromElementByTagName(root, "contentspageimage-children");
73  		contentsPageImageNoChildren = getTextContentFromElementByTagName(root, "contentspageimage-no-children");
74  		contentsPageFooter = getTextContentFromElementByTagName(root, "contentspagefooter");
75  		mainPage = getTextContentFromElementByTagName(root, "mainpage");
76  		footerPage = getTextContentFromElementByTagName(root, "footerpage");
77  		thumbPageHeader = getTextContentFromElementByTagName(root, "thumbpageheader");
78  		thumbPageFooter = getTextContentFromElementByTagName(root, "thumbpagefooter");
79  		thumbPageRowHeader = getTextContentFromElementByTagName(root, "thumbpagerowheader");
80  		thumbPageRowFooter = getTextContentFromElementByTagName(root, "thumbpagerowfooter");
81  		thumbPageCell = getTextContentFromElementByTagName(root, "thumbpagecell");
82  	}
83  	
84  	private String getTextContentFromElementByTagName(Document doc, String tagname)
85  	{
86  		NodeList tags = doc.getElementsByTagName(tagname);
87  		Element element = (Element)tags.item(0);
88  		return element.getTextContent();
89  	}
90  	
91  
92  	/***
93  	 * @return Returns the contentsPageFolder.
94  	 */
95  	public String getContentsPageFolder()
96  	{
97  		return contentsPageFolder;
98  	}
99  	/***
100 	 * @param contentsPageFolder The contentsPageFolder to set.
101 	 */
102 	public void setContentsPageFolder(String contentsPageFolder)
103 	{
104 		this.contentsPageFolder = contentsPageFolder;
105 	}
106 	/***
107 	 * @return Returns the contentsPageFooter.
108 	 */
109 	public String getContentsPageFooter()
110 	{
111 		return contentsPageFooter;
112 	}
113 	/***
114 	 * @param contentsPageFooter The contentsPageFooter to set.
115 	 */
116 	public void setContentsPageFooter(String contentsPageFooter)
117 	{
118 		this.contentsPageFooter = contentsPageFooter;
119 	}
120 	/***
121 	 * @return Returns the contentsPageHeader.
122 	 */
123 	public String getContentsPageHeader()
124 	{
125 		return contentsPageHeader;
126 	}
127 	/***
128 	 * @param contentsPageHeader The contentsPageHeader to set.
129 	 */
130 	public void setContentsPageHeader(String contentsPageHeader)
131 	{
132 		this.contentsPageHeader = contentsPageHeader;
133 	}
134 	/***
135 	 * @return Returns the contentsPageImageChildren.
136 	 */
137 	public String getContentsPageImageChildren()
138 	{
139 		return contentsPageImageChildren;
140 	}
141 	/***
142 	 * @param contentsPageImageChildren The contentsPageImageChildren to set.
143 	 */
144 	public void setContentsPageImageChildren(String contentsPageImageChildren)
145 	{
146 		this.contentsPageImageChildren = contentsPageImageChildren;
147 	}
148 	/***
149 	 * @return Returns the contentsPageImageNoChildren.
150 	 */
151 	public String getContentsPageImageNoChildren()
152 	{
153 		return contentsPageImageNoChildren;
154 	}
155 	/***
156 	 * @param contentsPageImageNoChildren The contentsPageImageNoChildren to set.
157 	 */
158 	public void setContentsPageImageNoChildren(
159 			String contentsPageImageNoChildren)
160 	{
161 		this.contentsPageImageNoChildren = contentsPageImageNoChildren;
162 	}
163 	/***
164 	 * @return Returns the footerPage.
165 	 */
166 	public String getFooterPage()
167 	{
168 		return footerPage;
169 	}
170 	/***
171 	 * @param footerPage The footerPage to set.
172 	 */
173 	public void setFooterPage(String footerPage)
174 	{
175 		this.footerPage = footerPage;
176 	}
177 	/***
178 	 * @return Returns the framesetPage.
179 	 */
180 	public String getFramesetPage()
181 	{
182 		return framesetPage;
183 	}
184 	/***
185 	 * @param framesetPage The framesetPage to set.
186 	 */
187 	public void setFramesetPage(String framesetPage)
188 	{
189 		this.framesetPage = framesetPage;
190 	}
191 	/***
192 	 * @return Returns the headerPage.
193 	 */
194 	public String getHeaderPage()
195 	{
196 		return headerPage;
197 	}
198 	/***
199 	 * @param headerPage The headerPage to set.
200 	 */
201 	public void setHeaderPage(String headerPage)
202 	{
203 		this.headerPage = headerPage;
204 	}
205 	/***
206 	 * @return Returns the mainPage.
207 	 */
208 	public String getMainPage()
209 	{
210 		return mainPage;
211 	}
212 	/***
213 	 * @param mainPage The mainPage to set.
214 	 */
215 	public void setMainPage(String mainPage)
216 	{
217 		this.mainPage = mainPage;
218 	}
219 	/***
220 	 * @return Returns the thumbPageCell.
221 	 */
222 	public String getThumbPageCell()
223 	{
224 		return thumbPageCell;
225 	}
226 	/***
227 	 * @param thumbPageCell The thumbPageCell to set.
228 	 */
229 	public void setThumbPageCell(String thumbPageCell)
230 	{
231 		this.thumbPageCell = thumbPageCell;
232 	}
233 	/***
234 	 * @return Returns the thumbPageFooter.
235 	 */
236 	public String getThumbPageFooter()
237 	{
238 		return thumbPageFooter;
239 	}
240 	/***
241 	 * @param thumbPageFooter The thumbPageFooter to set.
242 	 */
243 	public void setThumbPageFooter(String thumbPageFooter)
244 	{
245 		this.thumbPageFooter = thumbPageFooter;
246 	}
247 	/***
248 	 * @return Returns the thumbPageHeader.
249 	 */
250 	public String getThumbPageHeader()
251 	{
252 		return thumbPageHeader;
253 	}
254 	/***
255 	 * @param thumbPageHeader The thumbPageHeader to set.
256 	 */
257 	public void setThumbPageHeader(String thumbPageHeader)
258 	{
259 		this.thumbPageHeader = thumbPageHeader;
260 	}
261 	/***
262 	 * @return Returns the thumbPageRowFooter.
263 	 */
264 	public String getThumbPageRowFooter()
265 	{
266 		return thumbPageRowFooter;
267 	}
268 	/***
269 	 * @param thumbPageRowFooter The thumbPageRowFooter to set.
270 	 */
271 	public void setThumbPageRowFooter(String thumbPageRowFooter)
272 	{
273 		this.thumbPageRowFooter = thumbPageRowFooter;
274 	}
275 	/***
276 	 * @return Returns the thumbPageRowHeader.
277 	 */
278 	public String getThumbPageRowHeader()
279 	{
280 		return thumbPageRowHeader;
281 	}
282 	/***
283 	 * @param thumbPageRowHeader The thumbPageRowHeader to set.
284 	 */
285 	public void setThumbPageRowHeader(String thumbPageRowHeader)
286 	{
287 		this.thumbPageRowHeader = thumbPageRowHeader;
288 	}
289 }