qnamemap.java

来自「xstream是一个把java object序列化成xml文件的开源库,轻便好用」· Java 代码 · 共 90 行

JAVA
90
字号
package com.thoughtworks.xstream.io.xml;import javax.xml.namespace.QName;import java.util.Collections;import java.util.HashMap;import java.util.Map;/** * Represents a mapping of {@link QName} intsnaces to Java class names * allowing class aliases and namespace aware mappings of QNames to class names. * * @author James Strachan * @version $Revision: 370 $ */public class QNameMap {    // lets make the mapping a no-op unless we specify some mapping    private Map qnameToJava;    private Map javaToQName;    private String defaultPrefix = "";    private String defaultNamespace = "";    /**     * Returns the Java class name that should be used for the given QName.     * If no explicit mapping has been made then the localPart of the QName is used     * which is the normal default in XStream.     */    public String getJavaClassName(QName qname) {        if (qnameToJava != null) {            String answer = (String) qnameToJava.get(qname);            if (answer != null) {                return answer;            }        }        return qname.getLocalPart();    }    /**     * Returns the Java class name that should be used for the given QName.     * If no explicit mapping has been made then the localPart of the QName is used     * which is the normal default in XStream.     */    public QName getQName(String javaClassName) {        if (javaToQName != null) {            QName answer = (QName) javaToQName.get(javaClassName);            if (answer != null) {                return answer;            }        }        return new QName(defaultNamespace, javaClassName, defaultPrefix);    }    /**     * Registers the mapping of the Java class name to the QName     */    public synchronized void registerMapping(QName qname, String javaClassName) {        if (javaToQName == null) {            javaToQName = Collections.synchronizedMap(new HashMap());        }        if (qnameToJava == null) {            qnameToJava = Collections.synchronizedMap(new HashMap());        }        javaToQName.put(javaClassName, qname);        qnameToJava.put(qname, javaClassName);    }    /**     * Registers the mapping of the type to the QName     */    public synchronized void registerMapping(QName qname, Class type) {        registerMapping(qname, type.getName());    }    public String getDefaultNamespace() {        return defaultNamespace;    }    public void setDefaultNamespace(String defaultNamespace) {        this.defaultNamespace = defaultNamespace;    }    public String getDefaultPrefix() {        return defaultPrefix;    }    public void setDefaultPrefix(String defaultPrefix) {        this.defaultPrefix = defaultPrefix;    }}

⌨️ 快捷键说明

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