Clover coverage report - Maven Clover report
Coverage timestamp: Tue Sep 16 2008 01:16:37 EEST
file stats: LOC: 163   Methods: 10
NCLOC: 74   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
VisitorSerializeXMLTerms.java 0% 0% 0% 0%
coverage
 1    /*
 2    wsmo4j - a WSMO API and Reference Implementation
 3    Copyright (c) 2005, University of Innsbruck, Austria
 4    This library is free software; you can redistribute it and/or modify it under
 5    the terms of the GNU Lesser General Public License as published by the Free
 6    Software Foundation; either version 2.1 of the License, or (at your option)
 7    any later version.
 8    This library is distributed in the hope that it will be useful, but WITHOUT
 9    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 10    FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 11    details.
 12    You should have received a copy of the GNU Lesser General Public License along
 13    with this library; if not, write to the Free Software Foundation, Inc.,
 14    59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 15    */
 16    package org.deri.wsmo4j.io.serializer.xml;
 17   
 18   
 19    import java.util.*;
 20   
 21    import org.w3c.dom.*;
 22   
 23    import org.omwg.logicalexpression.*;
 24    import org.omwg.logicalexpression.terms.*;
 25    import org.omwg.logicalexpression.terms.Visitor;
 26    import org.omwg.ontology.*;
 27    import org.wsmo.common.*;
 28   
 29   
 30    /**
 31    * Concrete Visitor class. For each visited term, a document element is built.
 32    * @see org.deri.wsmo4j.io.serializer.xml.VisitorSerializeXML
 33    * @see org.omwg.logicalexpression.terms.Visitor
 34    */
 35    public class VisitorSerializeXMLTerms
 36    implements Visitor {
 37   
 38    private Vector stack;
 39   
 40    private Document doc;
 41   
 42    private String name;
 43   
 44    /**
 45    * @param doc Document that will be filled with the xml structure
 46    * @see org.deri.wsmo4j.io.serializer.xml.VisitorSerializeXML#VisitorSerializeXML(TopEntity, Document)
 47    */
 48  0 public VisitorSerializeXMLTerms(Document doc) {
 49  0 this.doc = doc;
 50  0 stack = new Vector();
 51  0 name = "term";
 52    }
 53   
 54    /**
 55    * Set the type of element that is to be added to the document
 56    * (term, atom or molecule).
 57    * @param name type of element
 58    */
 59  0 public void setName(String name) {
 60  0 this.name = name;
 61    }
 62   
 63    /**
 64    * Builds an element in the document with the ConstructedTerm's name
 65    * as attribute. The arguments are added as children to the node.
 66    * The element is then added to a vector.
 67    * @param t ConstructedTerm to be serialized
 68    * @see org.omwg.logicalexpression.terms.Visitor#visitConstructedTerm(org.omwg.logicalexpression.terms.ConstructedTerm)
 69    */
 70  0 public void visitConstructedTerm(ConstructedTerm t) {
 71  0 Element term = doc.createElement(name);
 72  0 term.setAttribute("name", t.getFunctionSymbol().toString());
 73   
 74  0 int nbParams = t.getArity();
 75  0 for (int i = 0; i < nbParams; i++) {
 76  0 name = "arg";
 77  0 t.getParameter(i).accept(this);
 78  0 term.appendChild((Node)stack.remove(stack.size() - 1));
 79    }
 80  0 stack.add(term);
 81    }
 82   
 83    /**
 84    * Builds an element in the document with the Variable's String
 85    * representation as attribute. The element is added to a vector.
 86    * @param t Variable to be serialized
 87    * @see org.omwg.logicalexpression.terms.Visitor#visitVariable(org.omwg.logicalexpression.terms.Variable)
 88    */
 89  0 public void visitVariable(Variable t) {
 90  0 Element term = doc.createElement(name);
 91  0 term.setAttribute("name", Constants.VARIABLE_DEL + t.getName());
 92  0 stack.add(term);
 93    }
 94   
 95  0 public void visitComplexDataValue(ComplexDataValue t) {
 96  0 Element term = doc.createElement(name);
 97  0 term.setAttribute("name", t.getType().getIRI().toString());
 98   
 99  0 int nbParams = t.getArity();
 100  0 for (byte i = 0; i < nbParams; i++) {
 101  0 name = "arg";
 102  0 ((Term)t.getArgumentValue(i)).accept(this);
 103  0 term.appendChild((Node)stack.remove(stack.size() - 1));
 104    }
 105  0 stack.add(term);
 106    }
 107   
 108  0 public void visitSimpleDataValue(SimpleDataValue t) {
 109  0 Element value = doc.createElement(name);
 110  0 value.setAttribute("name", t.getType().getIRI().toString());
 111  0 Text numVal = doc.createTextNode("" + t.getValue());
 112  0 value.appendChild(numVal);
 113  0 stack.add(value);
 114    }
 115   
 116    /**
 117    * Builds an element in the document with the Unnumbered
 118    * Anonymous ID's String representation as attribute.
 119    * The element is added to a vector.
 120    * @param t UnNBAnonymousID to be serialized
 121    * @see org.omwg.logicalexpression.terms.Visitor#visitAnonymousID(org.omwg.logicalexpression.terms.UnNbAnonymousID)
 122    */
 123  0 public void visitUnnumberedID(UnnumberedAnonymousID t) {
 124  0 Element term = doc.createElement(name);
 125  0 term.setAttribute("name", Constants.ANONYMOUS_ID);
 126  0 stack.add(term);
 127    }
 128   
 129    /**
 130    * Builds an element in the document with the Numbered
 131    * Anonymous ID's String representation as attribute.
 132    * The element is added to a vector.
 133    * @param t NbAnonymousID to be serialized
 134    * @see org.omwg.logicalexpression.terms.Visitor#visitNbAnonymousID(org.omwg.logicalexpression.terms.NbAnonymousID)
 135    */
 136  0 public void visitNumberedID(NumberedAnonymousID t) {
 137  0 Element term = doc.createElement(name);
 138  0 term.setAttribute("name", Constants.ANONYMOUS_ID + t.getNumber());
 139  0 stack.add(term);
 140    }
 141   
 142    /**
 143    * Builds an element in the document with the IRI's String
 144    * representation as attribute. The element is added to a vector.
 145    * @param t IRI to be serialized
 146    * @see org.omwg.logicalexpression.terms.Visitor#visitIRI(org.omwg.logicalexpression.terms.IRI)
 147    */
 148  0 public void visitIRI(IRI t) {
 149  0 Element term = doc.createElement(name);
 150  0 term.setAttribute("name", t.toString());
 151  0 stack.add(term);
 152    }
 153   
 154    /**
 155    * All serialized elements are added to a vector. This method removes the
 156    * first serialized element from this vector and shifts any subsequent
 157    * elements to the left (subtracts one from their indices).
 158    * @return the serialized document node that is the first element in this vector
 159    */
 160  0 public Object getSerializedObject() {
 161  0 return stack.remove(0);
 162    }
 163    }