Clover Coverage Report
Coverage timestamp: Fri Feb 14 2014 07:28:57 UTC
../../../../../../img/srcFileCovDistChart10.png 0% of files have more coverage
64   168   29   12.8
48   101   0.45   5
5     5.8  
1    
 
  FormalProofLineListHandler       Line # 31 64 29 96.6% 0.96581197
 
  (116)
 
1    /* This file is part of the project "Hilbert II" - http://www.qedeq.org
2    *
3    * Copyright 2000-2014, Michael Meyling <mime@qedeq.org>.
4    *
5    * "Hilbert II" is free software; you can redistribute
6    * it and/or modify it under the terms of the GNU General Public
7    * License as published by the Free Software Foundation; either
8    * version 2 of the License, or (at your option) any later version.
9    *
10    * This program is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13    * GNU General Public License for more details.
14    */
15   
16    package org.qedeq.kernel.xml.handler.module;
17   
18    import org.qedeq.kernel.se.base.module.Reason;
19    import org.qedeq.kernel.se.dto.module.FormalProofLineListVo;
20    import org.qedeq.kernel.se.dto.module.FormalProofLineVo;
21    import org.qedeq.kernel.xml.common.XmlSyntaxException;
22    import org.qedeq.kernel.xml.handler.common.AbstractSimpleHandler;
23    import org.qedeq.kernel.xml.handler.common.SimpleAttributes;
24   
25   
26    /**
27    * Parse formal proof lines.
28    *
29    * @author Michael Meyling
30    */
 
31    public class FormalProofLineListHandler extends AbstractSimpleHandler {
32   
33    /** Value object with list of all module imports. */
34    private FormalProofLineListVo list;
35   
36    /** Handler for proposition formula. */
37    private final FormulaHandler formulaHandler;
38   
39    /** Handler for Modus Ponens usage. */
40    private final ModusPonensHandler modusPonensHandler;
41   
42    /** Handler for Addition usage. */
43    private final AddHandler addHandler;
44   
45    /** Handler for Rename Subject Variable usage. */
46    private final RenameHandler renameHandler;
47   
48    /** Handler for Substitution Predicate Variable usage. */
49    private final SubstPredvarHandler substPredvarHandler;
50   
51    /** Handler for Substitution Free Variable usage. */
52    private final SubstFreevarHandler substFreevarHandler;
53   
54    /** Handler for Substitution Function Variable usage. */
55    private final SubstFuncvarHandler substFuncvarHandler;
56   
57    /** Handler for Existential Generalization usage. */
58    private final ExistentialHandler existentialHandler;
59   
60    /** Handler for Universal Generalization usage. */
61    private final UniversalHandler universalHandler;
62   
63    /** Handler for Universal Generalization usage. */
64    private final ConditionalProofHandler conditionalProofHandler;
65   
66    /** Label for a single module. */
67    private String label;
68   
69    /** Reason for proof line. */
70    private Reason reason;
71   
72   
73    /**
74    * Handles list of imports.
75    *
76    * @param handler Parent handler.
77    */
 
78  1230 toggle public FormalProofLineListHandler(final AbstractSimpleHandler handler) {
79  1230 super(handler, "LINES");
80  1230 formulaHandler = new FormulaHandler(this);
81  1230 modusPonensHandler = new ModusPonensHandler(this);
82  1230 addHandler = new AddHandler(this);
83  1230 substPredvarHandler = new SubstPredvarHandler(this);
84  1230 renameHandler = new RenameHandler(this);
85  1230 substFreevarHandler = new SubstFreevarHandler(this);
86  1230 substFuncvarHandler = new SubstFuncvarHandler(this);
87  1230 existentialHandler = new ExistentialHandler(this);
88  1230 universalHandler = new UniversalHandler(this);
89  1230 conditionalProofHandler = new ConditionalProofHandler(this);
90    }
91   
 
92  1173 toggle public final void init() {
93  1173 list = null;
94  1173 reason = null;
95  1173 label = null;
96    }
97   
98    /**
99    * Get parsed result.
100    *
101    * @return Location list.
102    */
 
103  1173 toggle public final FormalProofLineListVo getFormalProofLineList() {
104  1173 return list;
105    }
106   
 
107  20797 toggle public final void startElement(final String name, final SimpleAttributes attributes)
108    throws XmlSyntaxException {
109  20797 if (getStartTag().equals(name)) {
110  1173 list = new FormalProofLineListVo();
111  19624 } else if ("L".equals(name)) {
112  6358 label = attributes.getString("label");
113  6358 reason = null;
114  13266 } else if (formulaHandler.getStartTag().equals(name)) {
115  6358 changeHandler(formulaHandler, name, attributes);
116  6908 } else if (modusPonensHandler.getStartTag().equals(name)) {
117  1740 changeHandler(modusPonensHandler, name, attributes);
118  5168 } else if (addHandler.getStartTag().equals(name)) {
119  1433 changeHandler(addHandler, name, attributes);
120  3735 } else if (substPredvarHandler.getStartTag().equals(name)) {
121  2408 changeHandler(substPredvarHandler, name, attributes);
122  1327 } else if (renameHandler.getStartTag().equals(name)) {
123  330 changeHandler(renameHandler, name, attributes);
124  997 } else if (substFreevarHandler.getStartTag().equals(name)) {
125  195 changeHandler(substFreevarHandler, name, attributes);
126  802 } else if (substFuncvarHandler.getStartTag().equals(name)) {
127  57 changeHandler(substFuncvarHandler, name, attributes);
128  745 } else if (existentialHandler.getStartTag().equals(name)) {
129  39 changeHandler(existentialHandler, name, attributes);
130  706 } else if (universalHandler.getStartTag().equals(name)) {
131  156 changeHandler(universalHandler, name, attributes);
132  550 } else if (conditionalProofHandler.getStartTag().equals(name)) {
133  550 changeHandler(conditionalProofHandler, name, attributes);
134    } else {
135  0 throw XmlSyntaxException.createUnexpectedTagException(name);
136    }
137    }
138   
 
139  20797 toggle public final void endElement(final String name) throws XmlSyntaxException {
140  20797 if (getStartTag().equals(name)) {
141    // nothing to do
142  19624 } else if (formulaHandler.getStartTag().equals(name)) {
143    // nothing to do
144  13266 } else if ("L".equals(name)) {
145  6358 list.add(new FormalProofLineVo(label, formulaHandler.getFormula(), reason));
146  6908 } else if (modusPonensHandler.getStartTag().equals(name)) {
147  1740 reason = modusPonensHandler.getModusPonensVo();
148  5168 } else if (addHandler.getStartTag().equals(name)) {
149  1433 reason = addHandler.getAddVo();
150  3735 } else if (substPredvarHandler.getStartTag().equals(name)) {
151  2408 reason = substPredvarHandler.getSubstPredVo();
152  1327 } else if (renameHandler.getStartTag().equals(name)) {
153  330 reason = renameHandler.getRenameVo();
154  997 } else if (substFreevarHandler.getStartTag().equals(name)) {
155  195 reason = substFreevarHandler.getSubstFreeVo();
156  802 } else if (substFuncvarHandler.getStartTag().equals(name)) {
157  57 reason = substFuncvarHandler.getSubstFuncVo();
158  745 } else if (existentialHandler.getStartTag().equals(name)) {
159  39 reason = existentialHandler.getExistentialVo();
160  706 } else if (universalHandler.getStartTag().equals(name)) {
161  156 reason = universalHandler.getUniversalVo();
162  550 } else if (conditionalProofHandler.getStartTag().equals(name)) {
163  550 list.add(conditionalProofHandler.getConditionalProofVo());
164    } else {
165  0 throw XmlSyntaxException.createUnexpectedTagException(name);
166    }
167    }
168    }