Clover coverage report - Maven Clover report
Coverage timestamp: Tue Sep 16 2008 01:16:37 EEST
file stats: LOC: 174   Methods: 7
NCLOC: 125   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
NodeValue.java 0% 0% 0% 0%
coverage
 1    /*
 2    wsmo4j - a WSMO API and Reference Implementation
 3   
 4    Copyright (c) 2006, University of Innsbruck, Austria
 5   
 6    This library is free software; you can redistribute it and/or modify it under
 7    the terms of the GNU Lesser General Public License as published by the Free
 8    Software Foundation; either version 2.1 of the License, or (at your option)
 9    any later version.
 10    This library is distributed in the hope that it will be useful, but WITHOUT
 11    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 12    FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 13    details.
 14    You should have received a copy of the GNU Lesser General Public License along
 15    with this library; if not, write to the Free Software Foundation, Inc.,
 16    59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 17    */
 18    package org.deri.wsmo4j.io.serializer.rdf;
 19   
 20    import java.math.*;
 21   
 22    import org.omwg.ontology.*;
 23    import org.openrdf.model.*;
 24    import org.openrdf.model.Value;
 25    import org.openrdf.vocabulary.*;
 26    import org.wsmo.common.*;
 27   
 28    /**
 29    * Helper type to serialize/deserialize xml element of data values
 30    *
 31    * @author not attributable
 32    */
 33    class NodeValue {
 34   
 35  0 static Value serialize(Object value, WsmlRdfSerializer serializer) {
 36  0 if (value == null || serializer == null) {
 37  0 throw new IllegalArgumentException();
 38    }
 39  0 Value valueElement = null;
 40   
 41  0 if (value instanceof SimpleDataValue) {
 42  0 URI type = serializer.getFactory().createURI(
 43    XmlSchema.NAMESPACE +
 44    ((SimpleDataValue) value).getType().getIRI().getLocalName().toString());
 45  0 String val = ((SimpleDataValue) value).getValue().toString();
 46  0 valueElement = serializer.getFactory().createLiteral(val,type);
 47    }
 48  0 else if (value instanceof ComplexDataValue) {
 49  0 ComplexDataValue t = (ComplexDataValue) value;
 50  0 URI type = serializer.getFactory().createURI(
 51    XmlSchema.NAMESPACE +
 52    t.getType().getIRI().getLocalName().toString());
 53   
 54  0 valueElement = serializer.getFactory().createLiteral(
 55    serializeComplexDataValue(t),type);
 56    }
 57  0 else if (value instanceof IRI) {
 58  0 valueElement = serializer.getFactory().createURI(((IRI)value).toString());
 59    }
 60  0 else if (value instanceof Instance) {
 61  0 valueElement = serializer.getFactory().createURI(
 62    ((Instance)value).getIdentifier().toString());
 63    }
 64    else {
 65  0 throw new RuntimeException("Invalid value to serialize!");
 66    }
 67   
 68  0 return valueElement;
 69    }
 70   
 71  0 private static String serializeComplexDataValue(ComplexDataValue val) {
 72  0 if(val.getType().getIRI().toString().equals(WsmlDataType.WSML_DATE)){
 73  0 return serializeDate(val);
 74  0 } else if(val.getType().getIRI().toString().equals(WsmlDataType.WSML_FLOAT)) {
 75  0 return val.getArgumentValue((byte)0).getValue().toString();
 76  0 } else if(val.getType().getIRI().toString().equals(WsmlDataType.WSML_DOUBLE)) {
 77  0 return val.getArgumentValue((byte)0).getValue().toString();
 78  0 } else if(val.getType().getIRI().toString().equals(WsmlDataType.WSML_BOOLEAN)) {
 79  0 return val.getArgumentValue((byte)0).getValue().toString();
 80  0 } else if(val.getType().getIRI().toString().equals(WsmlDataType.WSML_DATETIME)) {
 81  0 return serializeDateTime(val);
 82  0 } else if(val.getType().getIRI().toString().equals(WsmlDataType.WSML_TIME )) {
 83  0 return serializeTime(val);
 84    } else {
 85  0 int nbParams = val.getArity();
 86  0 StringBuffer buf = new StringBuffer();
 87  0 for (byte i = 0; i < nbParams; i++) {
 88  0 buf.append(val.getArgumentValue(i).toString()+" ");
 89    }
 90  0 return buf.toString();
 91    }
 92    }
 93   
 94  0 private static String serializeDate(ComplexDataValue val) {
 95  0 String ret = val.getArgumentValue((byte)0).getValue() + "-" +
 96    ensure00(val.getArgumentValue((byte)1).getValue().toString()) + "-" +
 97    ensure00(val.getArgumentValue((byte)2).getValue().toString());
 98  0 switch(val.getArity()) {
 99  0 case 4:
 100  0 return ret + ensure00(serializeTimezone(
 101    val.getArgumentValue((byte)3).getValue(),null));
 102  0 case 5:
 103  0 return ret + ensure00(serializeTimezone(
 104    val.getArgumentValue((byte)3).getValue(),
 105    val.getArgumentValue((byte)4).getValue()));
 106    }
 107  0 return ret;
 108    }
 109   
 110  0 private static String serializeTime(ComplexDataValue val) {
 111  0 String ret = ensure00(val.getArgumentValue((byte)0).getValue().toString()) + ":" +
 112    ensure00(val.getArgumentValue((byte)1).getValue().toString()) + ":" +
 113    ensure00(val.getArgumentValue((byte)2).getValue().toString());
 114  0 switch(val.getArity()) {
 115  0 case 4:
 116  0 return ret + ensure00(serializeTimezone(
 117    val.getArgumentValue((byte)3).getValue(),null));
 118  0 case 5:
 119  0 return ret + ensure00(serializeTimezone(
 120    val.getArgumentValue((byte)3).getValue(),
 121    val.getArgumentValue((byte)4).getValue()));
 122    }
 123  0 return ret;
 124    }
 125   
 126  0 private static String serializeDateTime(ComplexDataValue val) {
 127  0 String ret = val.getArgumentValue((byte)0).getValue() + "-" +
 128    ensure00(val.getArgumentValue((byte)1).getValue().toString()) + "-" +
 129    ensure00(val.getArgumentValue((byte)2).getValue().toString()) + "T" +
 130    ensure00(val.getArgumentValue((byte)3).getValue().toString()) + ":" +
 131    ensure00(val.getArgumentValue((byte)4).getValue().toString()) + ":" +
 132    ensure00(val.getArgumentValue((byte)5).getValue().toString());
 133  0 switch(val.getArity()) {
 134  0 case 7:
 135  0 return ret + ensure00(
 136    serializeTimezone(
 137    val.getArgumentValue((byte)6).getValue(),null));
 138  0 case 8:
 139  0 return ret + ensure00(
 140    serializeTimezone(
 141    val.getArgumentValue((byte)6).getValue(),
 142    val.getArgumentValue((byte)7).getValue()));
 143    }
 144  0 return ret;
 145    }
 146   
 147  0 private static String serializeTimezone(Object h, Object m) {
 148  0 String ret = h.toString();
 149  0 if(((BigInteger)h).signum()>0) { ret = "+" + ret; }
 150  0 if(m!=null) return ret + ":" + ensure00(m.toString()); else return ret;
 151    }
 152   
 153  0 private static String ensure00(String s) {
 154  0 if(s.length()==1) {
 155  0 return "0" + s;
 156    } else {
 157  0 return s;
 158    }
 159    }
 160    }
 161   
 162    /*
 163    * $Log$
 164    * Revision 1.2 2006/11/10 15:38:49 ohamano
 165    * *** empty log message ***
 166    *
 167    * Revision 1.1 2006/11/10 15:02:59 ohamano
 168    * *** empty log message ***
 169    *
 170    * Revision 1.1 2006/11/10 10:08:42 ohamano
 171    * *** empty log message ***
 172    *
 173    *
 174    */