Clover coverage report - XStream - 0.1
Coverage timestamp: Fri Oct 24 2003 13:50:04 BST
file stats: LOC: 79   Methods: 5
NCLOC: 66   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
DefaultClassMapper.java 100% 97.3% 100% 98.3%
coverage coverage
 1   
 package com.thoughtworks.xstream.alias;
 2   
 
 3   
 import java.util.HashMap;
 4   
 import java.util.Map;
 5   
 
 6   
 public class DefaultClassMapper implements ClassMapper {
 7   
 
 8   
     private Map typeToNameMap = new HashMap();
 9   
     private Map nameToTypeMap = new HashMap();
 10   
     private Map baseTypeToDefaultTypeMap = new HashMap();
 11   
 
 12  36
     public DefaultClassMapper() {
 13   
         // register primitive types
 14  36
         baseTypeToDefaultTypeMap.put(boolean.class, Boolean.class);
 15  36
         baseTypeToDefaultTypeMap.put(char.class, Character.class);
 16  36
         baseTypeToDefaultTypeMap.put(int.class, Integer.class);
 17  36
         baseTypeToDefaultTypeMap.put(float.class, Float.class);
 18  36
         baseTypeToDefaultTypeMap.put(double.class, Double.class);
 19  36
         baseTypeToDefaultTypeMap.put(short.class, Short.class);
 20  36
         baseTypeToDefaultTypeMap.put(byte.class, Byte.class);
 21  36
         baseTypeToDefaultTypeMap.put(long.class, Long.class);
 22   
     }
 23   
 
 24  750
     public void alias(String elementName, Class type, Class defaultImplementation) {
 25  750
         nameToTypeMap.put(elementName, type.getName());
 26  750
         typeToNameMap.put(type, elementName);
 27  750
         if (!type.equals(defaultImplementation)) {
 28  105
             typeToNameMap.put(defaultImplementation, elementName);
 29   
         }
 30  750
         baseTypeToDefaultTypeMap.put(type, defaultImplementation);
 31   
     }
 32   
 
 33  83
     public String lookupName(Class type) {
 34  83
         boolean isArray = type.isArray();
 35  83
         if (type.isArray()) {
 36  9
             type = type.getComponentType();
 37   
         }
 38  83
         String result = (String) typeToNameMap.get(type);
 39  83
         if (result == null) {
 40   
             // the $ used in inner class names is illegal as an xml element name
 41  7
             result = type.getName().replaceAll("\\$", "-");
 42   
         }
 43  83
         if (isArray) {
 44  9
             result += "-array";
 45   
         }
 46  83
         return result;
 47   
     }
 48   
 
 49  87
     public Class lookupType(String elementName) {
 50  87
         if (elementName.equals("null")) {
 51  2
             return null;
 52   
         }
 53  85
         boolean isArray = elementName.endsWith("-array");
 54  85
         if (isArray) {
 55  12
             elementName = elementName.substring(0, elementName.length() - 6); // cut off -array
 56   
         }
 57  85
         String mappedName = (String) nameToTypeMap.get(elementName);
 58  85
         if (mappedName != null) {
 59  80
             elementName = mappedName;
 60   
         }
 61   
         // the $ used in inner class names is illegal as an xml element name
 62  85
         elementName = elementName.replaceAll("\\-", "\\$");
 63  85
         try {
 64  85
             if (isArray) {
 65  12
                 return Class.forName("[L" + elementName + ";");
 66   
             } else {
 67  73
                 return Class.forName(elementName);
 68   
             }
 69   
         } catch (ClassNotFoundException e) {
 70  0
             throw new CannotResolveClassException(elementName);
 71   
         }
 72   
     }
 73   
 
 74  74
     public Class lookupDefaultType(Class baseType) {
 75  74
         return (Class) baseTypeToDefaultTypeMap.get(baseType);
 76   
     }
 77   
 
 78   
 }
 79