Clover Coverage Report
Coverage timestamp: Fri May 24 2013 13:47:27 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
 
  (101)
 
1    /* This file is part of the project "Hilbert II" - http://www.qedeq.org
2    *
3    * Copyright 2000-2013, 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  1064 toggle public FormalProofLineListHandler(final AbstractSimpleHandler handler) {
79  1064 super(handler, "LINES");
80  1064 formulaHandler = new FormulaHandler(this);
81  1064 modusPonensHandler = new ModusPonensHandler(this);
82  1064 addHandler = new AddHandler(this);
83  1064 substPredvarHandler = new SubstPredvarHandler(this);
84  1064 renameHandler = new RenameHandler(this);
85  1064 substFreevarHandler = new SubstFreevarHandler(this);
86  1064 substFuncvarHandler = new SubstFuncvarHandler(this);
87  1064 existentialHandler = new ExistentialHandler(this);
88  1064 universalHandler = new UniversalHandler(this);
89  1064 conditionalProofHandler = new ConditionalProofHandler(this);
90    }
91   
 
92  991 toggle public final void init() {
93  991 list = null;
94  991 reason = null;
95  991 label = null;
96    }
97   
98    /**
99    * Get parsed result.
100    *
101    * @return Location list.
102    */
 
103  991 toggle public final FormalProofLineListVo getFormalProofLineList() {
104  991 return list;
105    }
106   
 
107  18007 toggle public final void startElement(final String name, final SimpleAttributes attributes)
108    throws XmlSyntaxException {
109  18007 if (getStartTag().equals(name)) {
110  991 list = new FormalProofLineListVo();
111  17016 } else if ("L".equals(name)) {
112  5522 label = attributes.getString("label");
113  5522 reason = null;
114  11494 } else if (formulaHandler.getStartTag().equals(name)) {
115  5522 changeHandler(formulaHandler, name, attributes);
116  5972 } else if (modusPonensHandler.getStartTag().equals(name)) {
117  1468 changeHandler(modusPonensHandler, name, attributes);
118  4504 } else if (addHandler.getStartTag().equals(name)) {
119  1243 changeHandler(addHandler, name, attributes);
120  3261 } else if (substPredvarHandler.getStartTag().equals(name)) {
121  2072 changeHandler(substPredvarHandler, name, attributes);
122  1189 } else if (renameHandler.getStartTag().equals(name)) {
123  314 changeHandler(renameHandler, name, attributes);
124  875 } else if (substFreevarHandler.getStartTag().equals(name)) {
125  185 changeHandler(substFreevarHandler, name, attributes);
126  690 } else if (substFuncvarHandler.getStartTag().equals(name)) {
127  55 changeHandler(substFuncvarHandler, name, attributes);
128  635 } else if (existentialHandler.getStartTag().equals(name)) {
129  37 changeHandler(existentialHandler, name, attributes);
130  598 } else if (universalHandler.getStartTag().equals(name)) {
131  148 changeHandler(universalHandler, name, attributes);
132  450 } else if (conditionalProofHandler.getStartTag().equals(name)) {
133  450 changeHandler(conditionalProofHandler, name, attributes);
134    } else {
135  0 throw XmlSyntaxException.createUnexpectedTagException(name);
136    }
137    }
138   
 
139  18007 toggle public final void endElement(final String name) throws XmlSyntaxException {
140  18007 if (getStartTag().equals(name)) {
141    // nothing to do
142  17016 } else if (formulaHandler.getStartTag().equals(name)) {
143    // nothing to do
144  11494 } else if ("L".equals(name)) {
145  5522 list.add(new FormalProofLineVo(label, formulaHandler.getFormula(), reason));
146  5972 } else if (modusPonensHandler.getStartTag().equals(name)) {
147  1468 reason = modusPonensHandler.getModusPonensVo();
148  4504 } else if (addHandler.getStartTag().equals(name)) {
149  1243 reason = addHandler.getAddVo();
150  3261 } else if (substPredvarHandler.getStartTag().equals(name)) {
151  2072 reason = substPredvarHandler.getSubstPredVo();
152  1189 } else if (renameHandler.getStartTag().equals(name)) {
153  314 reason = renameHandler.getRenameVo();
154  875 } else if (substFreevarHandler.getStartTag().equals(name)) {
155  185 reason = substFreevarHandler.getSubstFreeVo();
156  690 } else if (substFuncvarHandler.getStartTag().equals(name)) {
157  55 reason = substFuncvarHandler.getSubstFuncVo();
158  635 } else if (existentialHandler.getStartTag().equals(name)) {
159  37 reason = existentialHandler.getExistentialVo();
160  598 } else if (universalHandler.getStartTag().equals(name)) {
161  148 reason = universalHandler.getUniversalVo();
162  450 } else if (conditionalProofHandler.getStartTag().equals(name)) {
163  450 list.add(conditionalProofHandler.getConditionalProofVo());
164    } else {
165  0 throw XmlSyntaxException.createUnexpectedTagException(name);
166    }
167    }
168    }