/*
 * Created on Jul 31, 2006
 * 
 * (C) Copyright TANDBERG Television Ltd.
 */

package com.tandbergtv.workflow.webservice.filesubsystem.messagehandler;

import com.tandbergtv.workflow.message.WorkflowMessage;
import com.tandbergtv.workflow.message.WorkflowPayload;
import com.tandbergtv.workflow.webservice.filesubsystem.FileManagementException;
import com.tandbergtv.workflow.webservice.filesubsystem.FileManagementService;
import com.tandbergtv.workflow.webservice.filesubsystem.FileManager;

/**
 * Abstract Implementation of the MessageHandler used for performing File Mangement operations.
 * 
 * @author Vijay Silva
 */
public abstract class FileManagementMessageHandler extends AbstractMessageHandler
{
	private FileManagementService service = null;

	/**
	 * Default Constructor
	 */
	public FileManagementMessageHandler()
	{
		service = FileManager.getInstance();
	}

	/**
	 * Method to get the File Management Service
	 * 
	 * @return The FileManagementService
	 */
	protected FileManagementService getService()
	{
		return this.service;
	}

	/**
	 * @see com.tandbergtv.workflow.webservice.filesubsystem.messagehandler.AbstractMessageHandler#handleOperationException(java.lang.Throwable,
	 *      com.tandbergtv.workflow.message.WorkflowMessage)
	 */
	@Override
	protected void handleOperationException(Throwable ex, WorkflowMessage response)
	{
		super.handleOperationException(ex, response);

		if (!(ex instanceof FileManagementException))
		{
			WorkflowPayload payload = (WorkflowPayload) response.getPayload();
			payload.putValue(MessageParameters.ERROR_MESSAGE,
					"Unexpected error when performing file operation: " + ex.getMessage());
		}
	}
}
