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

com.jd.blockchain.web.serializes.DataContractAdaptableSerializeConfig Maven / Gradle / Ivy

package com.jd.blockchain.web.serializes;

import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.jd.binaryproto.impl.DataContractProxy;

public class DataContractAdaptableSerializeConfig extends SerializeConfig {

	@Override
	public ObjectSerializer getObjectWriter(Class clazz) {

		ObjectSerializer writer = get(clazz);
		if (writer != null) {
			return writer;
		}

		Class dataContractType = null;
		if (DataContractProxy.class.isAssignableFrom(clazz)) {
			Class[] itfs =  clazz.getInterfaces();
			for (Class itf : itfs) {
				if (itf != DataContractProxy.class) {
					dataContractType = itf;
					break;
				}
			}
		}
		if (dataContractType != null) {
			writer = get(dataContractType);
			if (writer == null) {
				writer = createJavaBeanSerializer(dataContractType);
				put(dataContractType, writer);
			}
			
			put(clazz, writer);
			return writer;
		}
		
		return super.getObjectWriter(clazz);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy