package com.csc.library.factory;

import com.csc.library.gson.SerializeAndDeserializeBase;
import com.csc.library.properties.CscDevice;
import com.csc.library.properties.DeviceProperties;
import com.csc.library.request.RequestPropertiesImpl;
import com.csc.library.request.RequestWebsocket;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class PropertiesFactory {
	private static PropertiesFactory instance;
	private Gson gson = null;
	
	private PropertiesFactory(){
		if(gson == null){
			GsonBuilder gb = new GsonBuilder();
			gson = gb.serializeNulls().create();
		}
	}
	
	public static PropertiesFactory getInstance(){
		if( instance == null ){
			instance = new PropertiesFactory();
		}
		return instance;
	}
	
	public CscDevice createDevice(String json){
		return gson.fromJson(json, DeviceProperties.class);
	}
	
	public String toJson(Object obj){
		return gson.toJson(obj);
	}
}