Clover Coverage Report
Coverage timestamp: Sa Aug 2 2008 13:56:27 CEST
../../../../../../img/srcFileCovDistChart10.png 0% of files have more coverage
55   153   25   11
40   88   0,45   5
5     5  
1    
 
  NodeHandler       Line # 33 55 25 96% 0.96
 
  (41)
 
1    /* $Id: NodeHandler.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.base.module.Node;
21    import org.qedeq.kernel.dto.module.NodeVo;
22    import org.qedeq.kernel.xml.common.XmlSyntaxException;
23    import org.qedeq.kernel.xml.parser.AbstractSimpleHandler;
24    import org.qedeq.kernel.xml.parser.SimpleAttributes;
25   
26   
27    /**
28    * Handles node data.
29    *
30    * @version $Revision: 1.1 $
31    * @author Michael Meyling
32    */
 
33    public class NodeHandler extends AbstractSimpleHandler {
34   
35    /** Handler for node name. The node name is a visible, language specific node reference,
36    * e.g. "Axiom of Choice" or "is set". */
37    private final LatexListHandler nameHandler;
38   
39    /** Handler for title. This is simply the title of this subsection. */
40    private final LatexListHandler titleHandler;
41   
42    /** Handler for the formula preceding text. */
43    private final LatexListHandler precedingHandler;
44   
45    /** Handler for the formula succeeding text. */
46    private final LatexListHandler succeedingHandler;
47   
48    /** Handler for an axiom. */
49    private final AxiomHandler axiomHandler;
50   
51    /** Handler for a predicate definition. */
52    private final PredicateDefinitionHandler predicateDefinitionHandler;
53   
54    /** Handler for a function definition. */
55    private final FunctionDefinitionHandler functionDefinitionHandler;
56   
57    /** Handler for a proposition. */
58    private final PropositionHandler propositionHandler;
59   
60    /** Handler for a rule. */
61    private final RuleHandler ruleHandler;
62   
63    /** Node value object. */
64    private NodeVo node;
65   
66   
67    /**
68    * Constructor.
69    *
70    * @param handler Parent handler.
71    */
 
72  140 toggle public NodeHandler(final AbstractSimpleHandler handler) {
73  140 super(handler, "NODE");
74  140 nameHandler = new LatexListHandler(this, "NAME");
75  140 titleHandler = new LatexListHandler(this, "TITLE");
76  140 precedingHandler = new LatexListHandler(this, "PRECEDING");
77  140 succeedingHandler = new LatexListHandler(this, "SUCCEEDING");
78  140 axiomHandler = new AxiomHandler(this);
79  140 predicateDefinitionHandler = new PredicateDefinitionHandler(this);
80  140 functionDefinitionHandler = new FunctionDefinitionHandler(this);
81  140 propositionHandler = new PropositionHandler(this);
82  140 ruleHandler = new RuleHandler(this);
83    }
84   
 
85  1184 toggle public final void init() {
86  1184 node = null;
87    }
88   
89    /**
90    * Get node.
91    *
92    * @return Node.
93    */
 
94  1184 toggle public final Node getNode() {
95  1184 return node;
96    }
97   
 
98  5009 toggle public final void startElement(final String name, final SimpleAttributes attributes)
99    throws XmlSyntaxException {
100  5009 if (getStartTag().equals(name)) {
101  1184 node = new NodeVo();
102  1184 node.setId(attributes.getString("id"));
103  1184 node.setLevel(attributes.getString("level"));
104  3825 } else if (nameHandler.getStartTag().equals(name)) {
105  690 changeHandler(nameHandler, name, attributes);
106  3135 } else if (titleHandler.getStartTag().equals(name)) {
107  686 changeHandler(titleHandler, name, attributes);
108  2449 } else if (precedingHandler.getStartTag().equals(name)) {
109  1021 changeHandler(precedingHandler, name, attributes);
110  1428 } else if (succeedingHandler.getStartTag().equals(name)) {
111  244 changeHandler(succeedingHandler, name, attributes);
112  1184 } else if (axiomHandler.getStartTag().equals(name)) {
113  213 changeHandler(axiomHandler, name, attributes);
114  971 } else if (predicateDefinitionHandler.getStartTag().equals(name)) {
115  214 changeHandler(predicateDefinitionHandler, name, attributes);
116  757 } else if (functionDefinitionHandler.getStartTag().equals(name)) {
117  128 changeHandler(functionDefinitionHandler, name, attributes);
118  629 } else if (propositionHandler.getStartTag().equals(name)) {
119  513 changeHandler(propositionHandler, name, attributes);
120  116 } else if (ruleHandler.getStartTag().equals(name)) {
121  116 changeHandler(ruleHandler, name, attributes);
122    } else {
123  0 throw XmlSyntaxException.createUnexpectedTagException(name);
124    }
125    }
126   
 
127  5009 toggle public void endElement(final String name) throws XmlSyntaxException {
128  5009 if (getStartTag().equals(name)) {
129    // thats why we handle it
130  3825 } else if (nameHandler.getStartTag().equals(name)) {
131  690 node.setName(nameHandler.getLatexList());
132  3135 } else if (titleHandler.getStartTag().equals(name)) {
133  686 node.setTitle(titleHandler.getLatexList());
134  2449 } else if (precedingHandler.getStartTag().equals(name)) {
135  1021 node.setPrecedingText(precedingHandler.getLatexList());
136  1428 } else if (succeedingHandler.getStartTag().equals(name)) {
137  244 node.setSucceedingText(succeedingHandler.getLatexList());
138  1184 } else if (axiomHandler.getStartTag().equals(name)) {
139  213 node.setNodeType(axiomHandler.getAxiom());
140  971 } else if (predicateDefinitionHandler.getStartTag().equals(name)) {
141  214 node.setNodeType(predicateDefinitionHandler.getDefinition());
142  757 } else if (functionDefinitionHandler.getStartTag().equals(name)) {
143  128 node.setNodeType(functionDefinitionHandler.getDefinition());
144  629 } else if (propositionHandler.getStartTag().equals(name)) {
145  513 node.setNodeType(propositionHandler.getProposition());
146  116 } else if (ruleHandler.getStartTag().equals(name)) {
147  116 node.setNodeType(ruleHandler.getRule());
148    } else {
149  0 throw XmlSyntaxException.createUnexpectedTagException(name);
150    }
151    }
152   
153    }