/**
 * DriveFreeSpaceMessageHandler.java
 * Created Dec 5, 2006
 * Copyright (C) Tandberg Television 2006
 */
package com.tandbergtv.workflow.webservice.filesubsystem.messagehandler;

import com.tandbergtv.workflow.message.WorkflowMessage;
import com.tandbergtv.workflow.message.WorkflowPayload;

/**
 * Returns the free space on the drive specified
 * 
 * @author Sahil Verma
 */
public class DriveFreeSpaceMessageHandler extends FileManagementMessageHandler {

	/**
	 * Creates a DriveFreeSpaceMessageHandler
	 */
	public DriveFreeSpaceMessageHandler() {
		super();
	}

	/* (non-Javadoc)
	 * @see com.tandbergtv.workflow.webservice.filesubsystem.messagehandler.AbstractMessageHandler#performOperation(com.tandbergtv.workflow.message.WorkflowMessage, com.tandbergtv.workflow.message.WorkflowMessage)
	 */
	@Override
	protected void performOperation(WorkflowMessage message, WorkflowMessage response) throws Exception {
		WorkflowPayload payload = (WorkflowPayload) message.getPayload();
		String drive = payload.getValue(MessageParameters.PATH);

		long free = this.getService().getDriveFreeSpace(drive);

		WorkflowPayload outPayload = (WorkflowPayload) response.getPayload();
		outPayload.putValue(MessageParameters.DRIVE_FREE_SPACE, Long.toString(free));
	}
}
