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

com.jpattern.gwt.client.serializer.AutoBeanObjectSerializer Maven / Gradle / Ivy

package com.jpattern.gwt.client.serializer;

import com.google.web.bindery.autobean.shared.AutoBean;
import com.google.web.bindery.autobean.shared.AutoBeanCodex;
import com.jpattern.gwt.client.IApplicationProvider;
import com.jpattern.gwt.client.logger.ILogger;

/**
 * 
 * @author Francesco Cina'
 *
 */
public class AutoBeanObjectSerializer implements IObjectSerializer {

	private final Class aClass;
	private final ILogger logger;
	private final IBeanFactory beanFactory;
	
	
	public AutoBeanObjectSerializer(IBeanFactory beanFactory, Class aClass, IApplicationProvider provider) {
		this.beanFactory = beanFactory;
		this.aClass = aClass;
		this.logger = provider.getLoggerService().getLogger(this.getClass());
	}

	@Override
	public T deserialize(String json) {
		logger.trace("deserialize" , "Deserializing using beanFactory: " + beanFactory.getClass());
		logger.trace("deserialize" , "Expected object class: " + aClass);
		logger.trace("deserialize" , "json object to deserialize: " + json);
		return AutoBeanCodex.decode(beanFactory, aClass, json).as();
	}

	@Override
	public String serialize(T bean) {
		AutoBean autoBean = beanFactory.create(aClass, bean);
		return AutoBeanCodex.encode(autoBean).getPayload();
	}

	@Override
	public Class getSerializerClass() {
		return aClass;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy