package com.tandbergtv.watchpoint.contentmgmt.communication.handlers;

import com.tandbergtv.watchpoint.communication.Util;
import com.tandbergtv.watchpoint.pmm.communication.MessageHandler;
import com.tandbergtv.watchpoint.pmm.core.PMMException;
import com.tandbergtv.watchpoint.pmm.title.ITitleService;
import com.tandbergtv.workflow.core.service.ServiceRegistry;
import com.tandbergtv.workflow.message.WorkflowMessage;
import com.tandbergtv.workflow.message.WorkflowMessage.MessageType;

public class NationalizeTitleMessageHandler implements MessageHandler {

	private static final String TITLE_ID = "titleId";
	private static final String SOURCE_COMPONENT_NAME = "sourceComponentName";
	private static final String SOURCE_ENTITY_NAME = "sourceEntityName";
	private static final String SOURCEID = "sourceId";

	@Override
	public WorkflowMessage handleMessage(WorkflowMessage message) throws PMMException {
		Util.validateRequired(message, TITLE_ID);
		
		ITitleService titleService = ServiceRegistry.getDefault().lookup(ITitleService.class);
		titleService.nationalizeAndSave(
				Util.getLongValue(message, TITLE_ID),
				Util.getStringValueTrimmed(message, SOURCE_COMPONENT_NAME),
				Util.getStringValueTrimmed(message, SOURCE_ENTITY_NAME),
				Util.getStringValueTrimmed(message, SOURCEID));

		return new WorkflowMessage(message.getMessageUID(), message.getKey(), MessageType.ack);
	}

}
