Clover coverage report - XStream - 0.1
Coverage timestamp: Fri Oct 24 2003 13:50:04 BST
file stats: LOC: 121   Methods: 8
NCLOC: 99   Classes: 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
XStream.java - 100% 100% 100%
coverage
 1   
 package com.thoughtworks.xstream;
 2   
 
 3   
 import com.thoughtworks.xstream.alias.DefaultClassMapper;
 4   
 import com.thoughtworks.xstream.converters.Converter;
 5   
 import com.thoughtworks.xstream.converters.ConverterLookup;
 6   
 import com.thoughtworks.xstream.converters.basic.*;
 7   
 import com.thoughtworks.xstream.converters.collections.ArrayConverter;
 8   
 import com.thoughtworks.xstream.converters.collections.CollectionConverter;
 9   
 import com.thoughtworks.xstream.converters.collections.MapConverter;
 10   
 import com.thoughtworks.xstream.converters.composite.ObjectWithFieldsConverter;
 11   
 import com.thoughtworks.xstream.converters.lookup.DefaultConverterLookup;
 12   
 import com.thoughtworks.xstream.objecttree.ObjectTree;
 13   
 import com.thoughtworks.xstream.objecttree.reflection.ObjectFactory;
 14   
 import com.thoughtworks.xstream.objecttree.reflection.ReflectionObjectGraph;
 15   
 import com.thoughtworks.xstream.objecttree.reflection.SunReflectionObjectFactory;
 16   
 import com.thoughtworks.xstream.xml.XMLReader;
 17   
 import com.thoughtworks.xstream.xml.XMLReaderDriver;
 18   
 import com.thoughtworks.xstream.xml.XMLWriter;
 19   
 import com.thoughtworks.xstream.xml.dom.DomXMLReaderDriver;
 20   
 import com.thoughtworks.xstream.xml.text.PrettyPrintXMLWriter;
 21   
 
 22   
 import java.io.StringWriter;
 23   
 import java.io.Writer;
 24   
 import java.util.*;
 25   
 
 26   
 public class XStream {
 27   
 
 28   
     private DefaultClassMapper classMapper = new DefaultClassMapper();
 29   
     private ConverterLookup converterLookup = new DefaultConverterLookup();
 30   
     private XMLReaderDriver xmlReaderDriver = new DomXMLReaderDriver();
 31   
 
 32  35
     public XStream() {
 33  35
         alias("int", Integer.class);
 34  35
         alias("float", Float.class);
 35  35
         alias("double", Double.class);
 36  35
         alias("long", Long.class);
 37  35
         alias("short", Short.class);
 38  35
         alias("char", Character.class);
 39  35
         alias("byte", Byte.class);
 40  35
         alias("boolean", Boolean.class);
 41  35
         alias("number", Number.class);
 42  35
         alias("object", Object.class);
 43   
 
 44  35
         alias("string-buffer", StringBuffer.class);
 45  35
         alias("string", String.class);
 46  35
         alias("java-class", Class.class);
 47  35
         alias("date", Date.class);
 48   
 
 49  35
         alias("map", Map.class, HashMap.class);
 50  35
         alias("list", List.class, ArrayList.class);
 51  35
         alias("set", Set.class, HashSet.class);
 52   
 
 53  35
         alias("linked-list", LinkedList.class);
 54  35
         alias("tree-map", TreeMap.class);
 55  35
         alias("tree-set", TreeSet.class);
 56   
 
 57  35
         registerConverter(new ObjectWithFieldsConverter(classMapper));
 58   
 
 59  35
         registerConverter(new IntConverter());
 60  35
         registerConverter(new FloatConverter());
 61  35
         registerConverter(new DoubleConverter());
 62  35
         registerConverter(new LongConverter());
 63  35
         registerConverter(new ShortConverter());
 64  35
         registerConverter(new CharConverter());
 65  35
         registerConverter(new BooleanConverter());
 66  35
         registerConverter(new ByteConverter());
 67   
 
 68  35
         registerConverter(new StringConverter());
 69  35
         registerConverter(new StringBufferConverter());
 70  35
         registerConverter(new DateConverter());
 71  35
         registerConverter(new JavaClassConverter());
 72   
 
 73  35
         registerConverter(new ArrayConverter(classMapper));
 74  35
         registerConverter(new CollectionConverter(classMapper));
 75  35
         registerConverter(new MapConverter(classMapper));
 76   
 
 77   
     }
 78   
 
 79  748
     public void alias(String elementName, Class type, Class defaultImplementation) {
 80  748
         classMapper.alias(elementName, type, defaultImplementation);
 81   
     }
 82   
 
 83  643
     public void alias(String elementName, Class type) {
 84  643
         alias(elementName, type, type);
 85   
     }
 86   
 
 87  42
     public String toXML(Object obj) {
 88  42
         Writer stringWriter = new StringWriter();
 89  42
         XMLWriter xmlWriter = new PrettyPrintXMLWriter(stringWriter);
 90  42
         toXML(obj, xmlWriter);
 91  42
         return stringWriter.toString();
 92   
     }
 93   
 
 94  42
     public void toXML(Object obj, XMLWriter xmlWriter) {
 95  42
         ObjectFactory objectFactory = new SunReflectionObjectFactory();
 96  42
         ObjectTree objectGraph = new ReflectionObjectGraph(obj, objectFactory);
 97  42
         Converter rootConverter = converterLookup.lookupConverterForType(obj.getClass());
 98  42
         xmlWriter.startElement(classMapper.lookupName(obj.getClass()));
 99  42
         rootConverter.toXML(objectGraph, xmlWriter, converterLookup);
 100  42
         xmlWriter.endElement();
 101   
     }
 102   
 
 103  41
     public Object fromXML(String xml) {
 104  41
         return fromXML(xmlReaderDriver.createReader(xml));
 105   
     }
 106   
 
 107  41
     public Object fromXML(XMLReader xmlReader) {
 108  41
         Class type = classMapper.lookupType(xmlReader.name());
 109  41
         ObjectFactory objectFactory = new SunReflectionObjectFactory();
 110  41
         ObjectTree objectGraph = new ReflectionObjectGraph(type, objectFactory);
 111  41
         Converter rootConverter = converterLookup.lookupConverterForType(type);
 112  41
         rootConverter.fromXML(objectGraph, xmlReader, converterLookup, type);
 113  41
         return objectGraph.get();
 114   
     }
 115   
 
 116  562
     public void registerConverter(Converter converter) {
 117  562
         converterLookup.registerConverter(converter);
 118   
     }
 119   
 
 120   
 }
 121