All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.feilong.lib.xstream.mapper.DefaultMapper Maven / Gradle / Ivy

Go to download

feilong is a suite of core and expanded libraries that include utility classes, http, excel,cvs, io classes, and much much more.

There is a newer version: 4.0.8
Show newest version
/*
 * Copyright (C) 2005, 2006 Joe Walnes.
 * Copyright (C) 2006, 2007, 2008, 2009, 2011, 2013, 2015, 2016 XStream Committers.
 * All rights reserved.
 *
 * The software in this package is published under the terms of the BSD
 * style license a copy of which has been included with this distribution in
 * the LICENSE.txt file.
 *
 * Created on 22. January 2005 by Joe Walnes
 */
package com.feilong.lib.xstream.mapper;

import com.feilong.lib.xstream.converters.Converter;
import com.feilong.lib.xstream.converters.SingleValueConverter;
import com.feilong.lib.xstream.core.ClassLoaderReference;
import com.feilong.lib.xstream.core.util.Primitives;

/**
 * Default mapper implementation with 'vanilla' functionality.
 * 

* To build up the functionality required, wrap this mapper with other mapper implementations. *

* * @author Joe Walnes * @author Jörg Schaible */ public class DefaultMapper implements Mapper{ private static String XSTREAM_PACKAGE_ROOT; static{ String packageName = DefaultMapper.class.getName(); int idx = packageName.indexOf(".xstream."); XSTREAM_PACKAGE_ROOT = idx > 0 ? packageName.substring(0, idx + 9) : ".N/A"; } private final ClassLoaderReference classLoaderReference; /** * Construct a DefaultMapper. * * @param classLoaderReference * the reference to the classloader used by the XStream instance. * @since 1.4.5 */ public DefaultMapper(ClassLoaderReference classLoaderReference){ this.classLoaderReference = classLoaderReference; } /** * Construct a DefaultMapper. * * @param classLoader * the ClassLoader used by the XStream instance. * @deprecated As of 1.4.5 use {@link #DefaultMapper(ClassLoaderReference)} */ @Deprecated public DefaultMapper(ClassLoader classLoader){ this(new ClassLoaderReference(classLoader)); } @Override public String serializedClass(Class type){ return type.getName(); } @Override public Class realClass(String elementName){ Class resultingClass = Primitives.primitiveType(elementName); if (resultingClass != null){ return resultingClass; } try{ boolean initialize = true; final ClassLoader classLoader; if (elementName.startsWith(XSTREAM_PACKAGE_ROOT)){ classLoader = DefaultMapper.class.getClassLoader(); }else{ classLoader = classLoaderReference.getReference(); initialize = elementName.charAt(0) == '['; } return Class.forName(elementName, initialize, classLoader); }catch (ClassNotFoundException e){ throw new CannotResolveClassException(elementName); } } @Override public Class defaultImplementationOf(Class type){ return type; } @Override public String aliasForAttribute(String attribute){ return attribute; } @Override public String attributeForAlias(String alias){ return alias; } @Override public String aliasForSystemAttribute(String attribute){ return attribute; } @Override public boolean isImmutableValueType(Class type){ return false; } @Override public boolean isReferenceable(final Class type){ return true; } @Override public String getFieldNameForItemTypeAndName(Class definedIn,Class itemType,String itemFieldName){ return null; } @Override public Class getItemTypeForItemFieldName(Class definedIn,String itemFieldName){ return null; } @Override public ImplicitCollectionMapping getImplicitCollectionDefForFieldName(Class itemType,String fieldName){ return null; } @Override public boolean shouldSerializeMember(Class definedIn,String fieldName){ return true; } @Override public boolean isIgnoredElement(String name){ return false; } public String lookupName(Class type){ return serializedClass(type); } public Class lookupType(String elementName){ return realClass(elementName); } @Override public String serializedMember(Class type,String memberName){ return memberName; } @Override public String realMember(Class type,String serialized){ return serialized; } /** * @deprecated As of 1.3, use {@link #getConverterFromAttribute(Class, String, Class)} */ @Deprecated @Override public SingleValueConverter getConverterFromAttribute(String name){ return null; } /** * @deprecated As of 1.3, use {@link #getConverterFromItemType(String, Class, Class)} */ @Deprecated @Override public SingleValueConverter getConverterFromItemType(String fieldName,Class type){ return null; } /** * @deprecated As of 1.3, use {@link #getConverterFromItemType(String, Class, Class)} */ @Deprecated @Override public SingleValueConverter getConverterFromItemType(Class type){ return null; } @Override public SingleValueConverter getConverterFromItemType(String fieldName,Class type,Class definedIn){ return null; } @Override public Converter getLocalConverter(Class definedIn,String fieldName){ return null; } @Override public Mapper lookupMapperOfType(Class type){ return null; } /** * @deprecated As of 1.3, use combination of {@link #serializedMember(Class, String)} and * {@link #getConverterFromItemType(String, Class, Class)} */ @Deprecated @Override public String aliasForAttribute(Class definedIn,String fieldName){ return fieldName; } /** * @deprecated As of 1.3, use combination of {@link #realMember(Class, String)} and * {@link #getConverterFromItemType(String, Class, Class)} */ @Deprecated @Override public String attributeForAlias(Class definedIn,String alias){ return alias; } /** * @deprecated As of 1.3.1, use {@link #getConverterFromAttribute(Class, String, Class)} */ @Deprecated @Override public SingleValueConverter getConverterFromAttribute(Class definedIn,String attribute){ return null; } @Override public SingleValueConverter getConverterFromAttribute(Class definedIn,String attribute,Class type){ return null; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy