Clover Coverage Report
Coverage timestamp: Sa Aug 2 2008 13:56:27 CEST
../../../../../../img/srcFileCovDistChart10.png 0% of files have more coverage
39   126   19   7,8
28   68   0,49   5
5     3,8  
1    
 
  HeaderHandler       Line # 32 39 19 94,4% 0.9444444
 
  (41)
 
1    /* $Id: HeaderHandler.java,v 1.1 2008/07/26 08:00:51 m31 Exp $
2    *
3    * This file is part of the project "Hilbert II" - http://www.qedeq.org
4    *
5    * Copyright 2000-2008, Michael Meyling <mime@qedeq.org>.
6    *
7    * "Hilbert II" is free software; you can redistribute
8    * it and/or modify it under the terms of the GNU General Public
9    * License as published by the Free Software Foundation; either
10    * version 2 of the License, or (at your option) any later version.
11    *
12    * This program is distributed in the hope that it will be useful,
13    * but WITHOUT ANY WARRANTY; without even the implied warranty of
14    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15    * GNU General Public License for more details.
16    */
17   
18    package org.qedeq.kernel.xml.handler.module;
19   
20    import org.qedeq.kernel.dto.module.HeaderVo;
21    import org.qedeq.kernel.xml.common.XmlSyntaxException;
22    import org.qedeq.kernel.xml.parser.AbstractSimpleHandler;
23    import org.qedeq.kernel.xml.parser.SimpleAttributes;
24   
25   
26    /**
27    * Parse header informations.
28    *
29    * @version $Revision: 1.1 $
30    * @author Michael Meyling
31    */
 
32    public class HeaderHandler extends AbstractSimpleHandler {
33   
34    /** Value object for module header. */
35    private HeaderVo header;
36   
37    /** Handler for module specification. */
38    private final SpecificationHandler specificationHandler;
39   
40    /** Handler for module title. */
41    private final LatexListHandler titleHandler;
42   
43    /** Handler for module abstract. */
44    private final LatexListHandler abstractHandler;
45   
46    /** Handler for list of module authors. */
47    private final AuthorListHandler authorListHandler;
48   
49    /** Handler for list of module imports. */
50    private final ImportListHandler importListHandler;
51   
52    /** Handler for list of modules that need this one. */
53    private final UsedByListHandler usedbyListHandler;
54   
55   
56    /**
57    * Deals with header of qedeq file.
58    *
59    * @param handler Parent handler.
60    */
 
61  140 toggle public HeaderHandler(final AbstractSimpleHandler handler) {
62  140 super(handler, "HEADER");
63  140 titleHandler = new LatexListHandler(this, "TITLE");
64  140 abstractHandler = new LatexListHandler(this, "ABSTRACT");
65  140 specificationHandler = new SpecificationHandler(this);
66  140 authorListHandler = new AuthorListHandler(this);
67  140 importListHandler = new ImportListHandler(this);
68  140 usedbyListHandler = new UsedByListHandler(this);
69    }
70   
 
71  133 toggle public final void init() {
72  133 header = null;
73    }
74   
75    /**
76    * Get header of qedeq module.
77    *
78    * @return Header of qedeq module.
79    */
 
80  133 toggle public final HeaderVo getHeader() {
81  133 return header;
82    }
83   
 
84  798 toggle public final void startElement(final String name, final SimpleAttributes attributes)
85    throws XmlSyntaxException {
86  798 if (getStartTag().equals(name)) {
87  133 header = new HeaderVo();
88  133 header.setEmail(attributes.getString("email"));
89  665 } else if (specificationHandler.getStartTag().equals(name)) {
90  133 changeHandler(specificationHandler, name, attributes);
91  532 } else if (titleHandler.getStartTag().equals(name)) {
92  133 changeHandler(titleHandler, name, attributes);
93  399 } else if (abstractHandler.getStartTag().equals(name)) {
94  133 changeHandler(abstractHandler, name, attributes);
95  266 } else if (authorListHandler.getStartTag().equals(name)) {
96  133 changeHandler(authorListHandler, name, attributes);
97  133 } else if (importListHandler.getStartTag().equals(name)) {
98  92 changeHandler(importListHandler, name, attributes);
99  41 } else if (usedbyListHandler.getStartTag().equals(name)) {
100  41 changeHandler(usedbyListHandler, name, attributes);
101    } else {
102  0 throw XmlSyntaxException.createUnexpectedTagException(name);
103    }
104    }
105   
 
106  798 toggle public final void endElement(final String name) throws XmlSyntaxException {
107  798 if (getStartTag().equals(name)) {
108    // nothing to do
109  665 } else if (specificationHandler.getStartTag().equals(name)) {
110  133 header.setSpecification(specificationHandler.getSpecification());
111  532 } else if (titleHandler.getStartTag().equals(name)) {
112  133 header.setTitle(titleHandler.getLatexList());
113  399 } else if (abstractHandler.getStartTag().equals(name)) {
114  133 header.setSummary(abstractHandler.getLatexList());
115  266 } else if (authorListHandler.getStartTag().equals(name)) {
116  133 header.setAuthorList(authorListHandler.getAuthorList());
117  133 } else if (importListHandler.getStartTag().equals(name)) {
118  92 header.setImportList(importListHandler.getImportList());
119  41 } else if (usedbyListHandler.getStartTag().equals(name)) {
120  41 header.setUsedByList(usedbyListHandler.getUsedByList());
121    } else {
122  0 throw XmlSyntaxException.createUnexpectedTagException(name);
123    }
124    }
125   
126    }