⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fieldaliasingmapper.java

📁 xstream是一个把java object序列化成xml文件的开源库,轻便好用
💻 JAVA
字号:
package com.thoughtworks.xstream.mapper;import com.thoughtworks.xstream.alias.ClassMapper;import java.util.*;/** * Mapper that allows a field of a specific class to be replaced with a shorter alias, or omitted * entirely. * * @author Joe Walnes */public class FieldAliasingMapper extends MapperWrapper {    protected final Map fieldToAliasMap = Collections.synchronizedMap(new HashMap());    protected final Map aliasToFieldMap = Collections.synchronizedMap(new HashMap());    protected final Set fieldsToOmit = Collections.synchronizedSet(new HashSet());    public FieldAliasingMapper(ClassMapper wrapped) {        super(wrapped);    }    public void addFieldAlias(String alias, Class type, String fieldName) {        fieldToAliasMap.put(key(type, fieldName), alias);        aliasToFieldMap.put(key(type, alias), fieldName);    }    private Object key(Class type, String value) {        return type.getName() + '.' + value;    }    public String serializedMember(Class type, String memberName) {        String alias = (String) fieldToAliasMap.get(key(type, memberName));        if (alias == null) {            return super.serializedMember(type, memberName);        } else {            return alias;        }    }    public String realMember(Class type, String serialized) {        String real = (String) aliasToFieldMap.get(key(type, serialized));        if (real == null) {            return super.realMember(type, serialized);        } else {            return real;        }    }    public boolean shouldSerializeMember(Class definedIn, String fieldName) {        return !fieldsToOmit.contains(key(definedIn, fieldName));    }    public void omitField(Class type, String fieldName) {        fieldsToOmit.add(key(type, fieldName));    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -