Clover coverage report - QedeqKernelSe Coverage Report
Coverage timestamp: Sa Dez 22 2007 01:35:21 CET
file stats: LOC: 121   Methods: 6
NCLOC: 64   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
PredicateDefinitionHandler.java 68,2% 78,1% 100% 76,7%
coverage coverage
 1    /* $Id: PredicateDefinitionHandler.java,v 1.6 2007/12/21 23:33:46 m31 Exp $
 2    *
 3    * This file is part of the project "Hilbert II" - http://www.qedeq.org
 4    *
 5    * Copyright 2000-2007, 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.PredicateDefinition;
 21    import org.qedeq.kernel.dto.module.PredicateDefinitionVo;
 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    * Parse a predicate definition.
 29    *
 30    * @version $Revision: 1.6 $
 31    * @author Michael Meyling
 32    */
 33    public class PredicateDefinitionHandler extends AbstractSimpleHandler {
 34   
 35    /** Handler for a variable list. */
 36    private final VariableListHandler variableListHandler;
 37   
 38    /** Handler for formulas or terms. */
 39    private final FormulaHandler formulaHandler;
 40   
 41    /** Handler for rule description. */
 42    private final LatexListHandler descriptionHandler;
 43   
 44    /** Definition value object. */
 45    private PredicateDefinitionVo definition;
 46   
 47    /** LaTeX pattern for the definition. */
 48    private String latexPattern;
 49   
 50   
 51    /**
 52    * Deals with definitions.
 53    *
 54    * @param handler Parent handler.
 55    */
 56  490 public PredicateDefinitionHandler(final AbstractSimpleHandler handler) {
 57  490 super(handler, "DEFINITION_PREDICATE");
 58  490 variableListHandler = new VariableListHandler(this);
 59  490 formulaHandler = new FormulaHandler(this);
 60  490 descriptionHandler = new LatexListHandler(this, "DESCRIPTION");
 61    }
 62   
 63  268 public final void init() {
 64  268 definition = null;
 65  268 latexPattern = null;
 66    }
 67   
 68    /**
 69    * Get definition.
 70    *
 71    * @return Definition.
 72    */
 73  268 public final PredicateDefinition getDefinition() {
 74  268 return definition;
 75    }
 76   
 77  975 public final void startElement(final String name, final SimpleAttributes attributes)
 78    throws XmlSyntaxException {
 79  975 if (getStartTag().equals(name)) {
 80  268 definition = new PredicateDefinitionVo();
 81  268 definition.setArgumentNumber(attributes.getString("arguments"));
 82  268 definition.setName(attributes.getString("name"));
 83  707 } else if ("LATEXPATTERN".equals(name)) {
 84    // nothing to do yet
 85  439 } else if (variableListHandler.getStartTag().equals(name)) {
 86  240 changeHandler(variableListHandler, name, attributes);
 87  199 } else if (formulaHandler.getStartTag().equals(name)) {
 88  199 changeHandler(formulaHandler, name, attributes);
 89  0 } else if (descriptionHandler.getStartTag().equals(name)) {
 90  0 changeHandler(descriptionHandler, name, attributes);
 91    } else {
 92  0 throw XmlSyntaxException.createUnexpectedTagException(name);
 93    }
 94    }
 95   
 96  975 public final void endElement(final String name) throws XmlSyntaxException {
 97  975 if (getStartTag().equals(name)) {
 98    // nothing to do
 99  707 } else if ("LATEXPATTERN".equals(name)) {
 100  268 definition.setLatexPattern(latexPattern);
 101  439 } else if (variableListHandler.getStartTag().equals(name)) {
 102  240 definition.setVariableList(variableListHandler.getVariables());
 103  199 } else if (formulaHandler.getStartTag().equals(name)) {
 104  199 definition.setFormula(formulaHandler.getFormula());
 105  0 } else if (descriptionHandler.getStartTag().equals(name)) {
 106  0 definition.setDescription(descriptionHandler.getLatexList());
 107    } else {
 108  0 throw XmlSyntaxException.createUnexpectedTagException(name);
 109    }
 110    }
 111   
 112  268 public final void characters(final String name, final String data) {
 113  268 if ("LATEXPATTERN".equals(name)) {
 114  268 latexPattern = data;
 115    } else {
 116  0 throw new RuntimeException("Unexpected character data in tag: " + name);
 117    }
 118    }
 119   
 120   
 121    }