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

📄 xstream.java

📁 xstream是一个把java object序列化成xml文件的开源库,轻便好用
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            alias("linked-hash-set", jvm.loadClass("java.util.LinkedHashSet"));            alias("trace", jvm.loadClass("java.lang.StackTraceElement"));            alias("currency", jvm.loadClass("java.util.Currency"));            // since jdk 1.4 included, but previously available as separate package ...            alias("auth-subject", jvm.loadClass("javax.security.auth.Subject"));        }        if (JVM.is15()) {            alias("enum-set", jvm.loadClass("java.util.EnumSet"));            alias("enum-map", jvm.loadClass("java.util.EnumMap"));        }    }    protected void setupDefaultImplementations() {        addDefaultImplementation(HashMap.class, Map.class);        addDefaultImplementation(ArrayList.class, List.class);        addDefaultImplementation(HashSet.class, Set.class);        addDefaultImplementation(GregorianCalendar.class, Calendar.class);    }    protected void setupConverters() {        ReflectionConverter reflectionConverter = new ReflectionConverter(classMapper, reflectionProvider);        registerConverter(reflectionConverter, PRIORITY_VERY_LOW);        registerConverter(new SerializableConverter(classMapper, reflectionProvider), PRIORITY_LOW);        registerConverter(new ExternalizableConverter(classMapper), PRIORITY_LOW);        registerConverter(new IntConverter(), PRIORITY_NORMAL);        registerConverter(new FloatConverter(), PRIORITY_NORMAL);        registerConverter(new DoubleConverter(), PRIORITY_NORMAL);        registerConverter(new LongConverter(), PRIORITY_NORMAL);        registerConverter(new ShortConverter(), PRIORITY_NORMAL);        registerConverter(new CharConverter(), PRIORITY_NORMAL);        registerConverter(new BooleanConverter(), PRIORITY_NORMAL);        registerConverter(new ByteConverter(), PRIORITY_NORMAL);        registerConverter(new StringConverter(), PRIORITY_NORMAL);        registerConverter(new StringBufferConverter(), PRIORITY_NORMAL);        registerConverter(new DateConverter(), PRIORITY_NORMAL);        registerConverter(new BitSetConverter(), PRIORITY_NORMAL);        registerConverter(new URLConverter(), PRIORITY_NORMAL);        registerConverter(new BigIntegerConverter(), PRIORITY_NORMAL);        registerConverter(new BigDecimalConverter(), PRIORITY_NORMAL);        registerConverter(new ArrayConverter(classMapper), PRIORITY_NORMAL);        registerConverter(new CharArrayConverter(), PRIORITY_NORMAL);        registerConverter(new CollectionConverter(classMapper), PRIORITY_NORMAL);        registerConverter(new MapConverter(classMapper), PRIORITY_NORMAL);        registerConverter(new TreeMapConverter(classMapper), PRIORITY_NORMAL);        registerConverter(new TreeSetConverter(classMapper), PRIORITY_NORMAL);        registerConverter(new PropertiesConverter(), PRIORITY_NORMAL);        registerConverter(new EncodedByteArrayConverter(), PRIORITY_NORMAL);        registerConverter(new FileConverter(), PRIORITY_NORMAL);        registerConverter(new SqlTimestampConverter(), PRIORITY_NORMAL);        registerConverter(new SqlTimeConverter(), PRIORITY_NORMAL);        registerConverter(new SqlDateConverter(), PRIORITY_NORMAL);        registerConverter(new DynamicProxyConverter(classMapper, classLoaderReference), PRIORITY_NORMAL);        registerConverter(new JavaClassConverter(classLoaderReference), PRIORITY_NORMAL);        registerConverter(new JavaMethodConverter(), PRIORITY_NORMAL);        registerConverter(new FontConverter(), PRIORITY_NORMAL);        registerConverter(new ColorConverter(), PRIORITY_NORMAL);        registerConverter(new LocaleConverter(), PRIORITY_NORMAL);        registerConverter(new GregorianCalendarConverter(), PRIORITY_NORMAL);        if (JVM.is14()) {            // late bound converters - allows XStream to be compiled on earlier JDKs            dynamicallyRegisterConverter(                    "com.thoughtworks.xstream.converters.extended.ThrowableConverter", PRIORITY_NORMAL,                    new Class[] {Converter.class} , new Object[] { reflectionConverter} );            dynamicallyRegisterConverter(                    "com.thoughtworks.xstream.converters.extended.StackTraceElementConverter", PRIORITY_NORMAL,                    null, null);            dynamicallyRegisterConverter(                    "com.thoughtworks.xstream.converters.extended.CurrencyConverter", PRIORITY_NORMAL,                    null, null);            dynamicallyRegisterConverter(                    "com.thoughtworks.xstream.converters.extended.RegexPatternConverter", PRIORITY_NORMAL,                    new Class[] {Converter.class} , new Object[] { reflectionConverter} );            dynamicallyRegisterConverter(                    "com.thoughtworks.xstream.converters.extended.SubjectConverter", PRIORITY_NORMAL,                    new Class[] {Mapper.class}, new Object[] {classMapper});        }        if (JVM.is15()) {            // late bound converters - allows XStream to be compiled on earlier JDKs            dynamicallyRegisterConverter(                    "com.thoughtworks.xstream.converters.enums.EnumConverter", PRIORITY_NORMAL,                    null, null);            dynamicallyRegisterConverter(                    "com.thoughtworks.xstream.converters.enums.EnumSetConverter", PRIORITY_NORMAL,                    new Class[] {Mapper.class}, new Object[] {classMapper});            dynamicallyRegisterConverter(                    "com.thoughtworks.xstream.converters.enums.EnumMapConverter", PRIORITY_NORMAL,                    new Class[] {Mapper.class}, new Object[] {classMapper});        }    }    private void dynamicallyRegisterConverter(String className, int priority,                                                        Class[] constructorParamTypes, Object[] constructorParamValues) {        try {            Class type = Class.forName(className, false, classLoaderReference.getReference());            Constructor constructor = type.getConstructor(constructorParamTypes);            Converter converter = (Converter) constructor.newInstance(constructorParamValues);            registerConverter(converter, priority);        } catch (Exception e) {            throw new InitializationException("Could not instatiate converter : " + className, e);        }    }    protected void setupImmutableTypes() {        // primitives are always immutable        addImmutableType(boolean.class);        addImmutableType(Boolean.class);        addImmutableType(byte.class);        addImmutableType(Byte.class);        addImmutableType(char.class);        addImmutableType(Character.class);        addImmutableType(double.class);        addImmutableType(Double.class);        addImmutableType(float.class);        addImmutableType(Float.class);        addImmutableType(int.class);        addImmutableType(Integer.class);        addImmutableType(long.class);        addImmutableType(Long.class);        addImmutableType(short.class);        addImmutableType(Short.class);        // additional types        addImmutableType(ClassMapper.Null.class);        addImmutableType(BigDecimal.class);        addImmutableType(BigInteger.class);        addImmutableType(String.class);        addImmutableType(URL.class);        addImmutableType(File.class);        addImmutableType(Class.class);    }    public void setMarshallingStrategy(MarshallingStrategy marshallingStrategy) {        this.marshallingStrategy = marshallingStrategy;    }    /**     * Serialize an object to a pretty-printed XML String.     */    public String toXML(Object obj) {        Writer stringWriter = new StringWriter();        HierarchicalStreamWriter writer = hierarchicalStreamDriver.createWriter(stringWriter);        marshal(obj, writer);        writer.flush();        writer.close();        return stringWriter.toString();    }    /**     * Serialize an object to the given Writer as pretty-printed XML.     */    public void toXML(Object obj, Writer out) {        HierarchicalStreamWriter writer = hierarchicalStreamDriver.createWriter(out);        marshal(obj, writer);        writer.flush();    }    /**     * Serialize an object to the given OutputStream as pretty-printed XML.     */    public void toXML(Object obj, OutputStream out) {        HierarchicalStreamWriter writer = hierarchicalStreamDriver.createWriter(out);        marshal(obj, writer);        writer.flush();    }    /**     * Serialize and object to a hierarchical data structure (such as XML).     */    public void marshal(Object obj, HierarchicalStreamWriter writer) {        marshal(obj, writer, null);    }    /**     * Serialize and object to a hierarchical data structure (such as XML).     *     * @param dataHolder Extra data you can use to pass to your converters. Use this as you want. If not present, XStream     *                   shall create one lazily as needed.     */    public void marshal(Object obj, HierarchicalStreamWriter writer, DataHolder dataHolder) {        marshallingStrategy.marshal(writer, obj, converterLookup, classMapper, dataHolder);    }    /**     * Deserialize an object from an XML String.     */    public Object fromXML(String xml) {        return fromXML(new StringReader(xml));    }    /**     * Deserialize an object from an XML Reader.     */    public Object fromXML(Reader xml) {        return unmarshal(hierarchicalStreamDriver.createReader(xml), null);    }    /**     * Deserialize an object from an XML InputStream.     */    public Object fromXML(InputStream input) {        return unmarshal(hierarchicalStreamDriver.createReader(input), null);    }    /**     * Deserialize an object from an XML String,     * populating the fields of the given root object instead of instantiating     * a new one.     */    public Object fromXML(String xml, Object root) {        return fromXML(new StringReader(xml), root);    }    /**     * Deserialize an object from an XML Reader,     * populating the fields of the given root object instead of instantiating     * a new one.     */    public Object fromXML(Reader xml, Object root) {        return unmarshal(hierarchicalStreamDriver.createReader(xml), root);    }    /**     * Deserialize an object from an XML InputStream,     * populating the fields of the given root object instead of instantiating     * a new one.     */    public Object fromXML(InputStream xml, Object root) {        return unmarshal(hierarchicalStreamDriver.createReader(xml), root);    }    /**     * Deserialize an object from a hierarchical data structure (such as XML).     */    public Object unmarshal(HierarchicalStreamReader reader) {        return unmarshal(reader, null, null);    }    /**     * Deserialize an object from a hierarchical data structure (such as XML),     * populating the fields of the given root object instead of instantiating     * a new one.     */    public Object unmarshal(HierarchicalStreamReader reader, Object root) {        return unmarshal(reader, root, null);    }    /**     * Deserialize an object from a hierarchical data structure (such as XML).     *     * @param root If present, the passed in object will have its fields populated, as opposed to XStream creating a     *             new instance.     * @param dataHolder Extra data you can use to pass to your converters. Use this as you want. If not present, XStream     *                   shall create one lazily as needed.     */    public Object unmarshal(HierarchicalStreamReader reader, Object root, DataHolder dataHolder) {        return marshallingStrategy.unmarshal(root, reader, dataHolder, converterLookup, classMapper);    }    /**     * Alias a Class to a shorter name to be used in XML elements.     *     * @param name Short name     * @param type  Type to be aliased     */    public void alias(String name, Class type) {        classAliasingMapper.addClassAlias(name, type);    }    /**     * Alias a Class to a shorter name to be used in XML elements.     *     * @param name                  Short name     * @param type                  Type to be aliased     * @param defaultImplementation Default implementation of type to use if no other specified.     */    public void alias(String name, Class type, Class defaultImplementation) {        alias(name, type);        addDefaultImplementation(defaultImplementation, type);    }

⌨️ 快捷键说明

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