Clover Coverage Report
Coverage timestamp: Fri May 24 2013 13:47:27 UTC
../../../../../../img/srcFileCovDistChart9.png 45% of files have more coverage
22   105   12   4.4
14   54   0.55   5
5     2.4  
1    
 
  SubstPredvarHandler       Line # 32 22 12 90.2% 0.902439
 
  (3)
 
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.list.Element;
19    import org.qedeq.kernel.se.base.module.Formula;
20    import org.qedeq.kernel.se.dto.module.SubstPredVo;
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    import org.qedeq.kernel.xml.handler.list.ElementHandler;
25   
26   
27    /**
28    * Parse a Substitute Predicate Variable Rule usage.
29    *
30    * @author Michael Meyling
31    */
 
32    public class SubstPredvarHandler extends AbstractSimpleHandler {
33   
34    /** Rule value object. */
35    private SubstPredVo substPredvar;
36   
37    /** Reference to previously proved formula. */
38    private String ref;
39   
40    /** Predicate variable that will be substituted. */
41    private Element predicateVariable;
42   
43    /** Replacement formula. */
44    private Formula substituteFormula;
45   
46    /** Handle formal proofs. */
47    private final FormulaHandler formulaHandler;
48   
49    /** Handle elements. */
50    private final ElementHandler elementHandler;
51   
52    /**
53    * Deals with definitions.
54    *
55    * @param handler Parent handler.
56    */
 
57  1064 toggle public SubstPredvarHandler(final AbstractSimpleHandler handler) {
58  1064 super(handler, "SUBST_PREDVAR");
59  1064 formulaHandler = new FormulaHandler(this);
60  1064 elementHandler = new ElementHandler(this);
61    }
62   
 
63  2072 toggle public final void init() {
64  2072 substPredvar = null;
65  2072 predicateVariable = null;
66  2072 substituteFormula = null;
67  2072 ref = null;
68    }
69   
70    /**
71    * Get Substitute Predicate Variable Rule usage.
72    *
73    * @return Substitute Predicate Variable usage.
74    */
 
75  2072 toggle public final SubstPredVo getSubstPredVo() {
76  2072 return substPredvar;
77    }
78   
 
79  6018 toggle public final void startElement(final String name, final SimpleAttributes attributes)
80    throws XmlSyntaxException {
81  6018 if (getStartTag().equals(name)) {
82  2072 ref = attributes.getString("ref");
83  3946 } else if ("PREDVAR".equals(name)) {
84  1973 changeHandler(elementHandler, name, attributes);
85  1973 } else if (formulaHandler.getStartTag().equals(name)) {
86  1973 changeHandler(formulaHandler, name, attributes);
87    } else {
88  0 throw XmlSyntaxException.createUnexpectedTagException(name);
89    }
90    }
91   
 
92  6018 toggle public final void endElement(final String name) throws XmlSyntaxException {
93  6018 if (getStartTag().equals(name)) {
94  2072 substPredvar = new SubstPredVo(ref, predicateVariable,
95  2072 (substituteFormula != null ? substituteFormula.getElement() : null));
96  3946 } else if ("PREDVAR".equals(name)) {
97  1973 predicateVariable = elementHandler.getElement();
98  1973 } else if (formulaHandler.getStartTag().equals(name)) {
99  1973 substituteFormula = formulaHandler.getFormula();
100    } else {
101  0 throw XmlSyntaxException.createUnexpectedTagException(name);
102    }
103    }
104   
105    }