package com.thoughtworks.xstream.mapper; import com.thoughtworks.xstream.alias.ClassMapper; import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.AttributeConverter; import java.util.*; /** * Mapper that allows a attributes instead of fields. * * @author Paul Hammant & Ian Cartwright */ public class AttributeAliasingMapper extends MapperWrapper { protected final Map classToConverterMap = Collections.synchronizedMap(new HashMap()); protected final Map attrToConverterMap = Collections.synchronizedMap(new HashMap()); public AttributeAliasingMapper(ClassMapper wrapped) { super(wrapped); } public void addAttributeAlias(String attr, Class clazz, AttributeConverter converter) { classToConverterMap.put(clazz, converter); attrToConverterMap.put(attr, converter); } public AttributeConverter getAttributeConverterForItemType(Class clazz) { return (AttributeConverter) classToConverterMap.get(clazz); } public AttributeConverter getAttributeConverterForAttributeName(String attrName) { return (AttributeConverter) attrToConverterMap.get(attrName); } }