1 package org.sapia.util.xml.idefix; 2 3 import org.sapia.util.xml.idefix.serializer.ArraySerializer; 4 import org.sapia.util.xml.idefix.serializer.CollectionSerializer; 5 import org.sapia.util.xml.idefix.serializer.DynamicSerializer; 6 import org.sapia.util.xml.idefix.serializer.IteratorSerializer; 7 import org.sapia.util.xml.idefix.serializer.PrimitiveSerializer; 8 9 import java.util.Collection ; 10 import java.util.Date ; 11 import java.util.HashMap ; 12 import java.util.Iterator ; 13 import java.util.Map ; 14 15 16 26 public class DefaultSerializerFactory implements SerializerFactoryIF { 27 28 private Map _theSerializersByClass; 29 30 33 public DefaultSerializerFactory() { 34 _theSerializersByClass = new HashMap (); 35 36 _theSerializersByClass.put(boolean.class, new PrimitiveSerializer()); 37 _theSerializersByClass.put(Boolean .class, new PrimitiveSerializer()); 38 _theSerializersByClass.put(byte.class, new PrimitiveSerializer()); 39 _theSerializersByClass.put(Byte .class, new PrimitiveSerializer()); 40 _theSerializersByClass.put(short.class, new PrimitiveSerializer()); 41 _theSerializersByClass.put(Short .class, new PrimitiveSerializer()); 42 _theSerializersByClass.put(int.class, new PrimitiveSerializer()); 43 _theSerializersByClass.put(Integer .class, new PrimitiveSerializer()); 44 _theSerializersByClass.put(long.class, new PrimitiveSerializer()); 45 _theSerializersByClass.put(Long .class, new PrimitiveSerializer()); 46 _theSerializersByClass.put(float.class, new PrimitiveSerializer()); 47 _theSerializersByClass.put(Float .class, new PrimitiveSerializer()); 48 _theSerializersByClass.put(double.class, new PrimitiveSerializer()); 49 _theSerializersByClass.put(Double .class, new PrimitiveSerializer()); 50 _theSerializersByClass.put(char.class, new PrimitiveSerializer()); 51 _theSerializersByClass.put(Character .class, new PrimitiveSerializer()); 52 _theSerializersByClass.put(String .class, new PrimitiveSerializer()); 53 _theSerializersByClass.put(Date .class, new PrimitiveSerializer()); 54 } 55 56 62 public void registerSerializer(Class aClass, SerializerIF aSerializer) { 63 _theSerializersByClass.put(aClass, aSerializer); 64 } 65 66 74 public SerializerIF getSerializer(Class aClass) 75 throws SerializerNotFoundException { 76 SerializerIF aSerializer = (SerializerIF) _theSerializersByClass.get(aClass); 77 78 if (aSerializer == null) { 79 if (aClass.isArray()) { 80 aSerializer = new ArraySerializer(); 81 } else if (Collection .class.isAssignableFrom(aClass)) { 82 aSerializer = new CollectionSerializer(); 83 } else if (Iterator .class.isAssignableFrom(aClass)) { 84 aSerializer = new IteratorSerializer(); 85 } else { 86 aSerializer = new DynamicSerializer(); 87 } 88 89 _theSerializersByClass.put(aClass, aSerializer); 90 } 91 92 return aSerializer; 93 } 94 } 95 | Popular Tags |