package com.eactive.eai.rms.common.converter;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import com.eactive.eai.rms.onl.common.exception.EMSRuntimeException;
import com.eactive.eai.rms.onl.transaction.online.TransactionTrackingFilterUI;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

@Component
public class StringToListTransactionTrackingFilterUIConverter
		implements Converter<String, List<TransactionTrackingFilterUI>> {

	private ObjectMapper objectMapper;

	@Autowired
	public StringToListTransactionTrackingFilterUIConverter(ObjectMapper objectMapper) {
		this.objectMapper = objectMapper;
	}

	@Override
	public List<TransactionTrackingFilterUI> convert(String source) {
		try {
			return objectMapper.readValue(source, new TypeReference<List<TransactionTrackingFilterUI>>() {
			});
		} catch (JsonProcessingException e) {
			throw new EMSRuntimeException(e);
		}
	}

}
