/*
 * Created on Oct 10, 2006
 * 
 * (C) Copyright TANDBERG Television Ltd.
 */

package com.tandbergtv.workflow.sanmanager.dto;

import java.io.Serializable;

/**
 * Interface that represents a File or Folder that exists on a SAN Drive
 * 
 * @author Vijay Silva
 */
public interface ISANFile extends Serializable
{
	/**
	 * Get the Name of the File or Folder
	 * 
	 * @return The File or Directory Name
	 */
	String getName();

	/**
	 * Set the File/Directory Name
	 * 
	 * @param name
	 *            The Name
	 */
	void setName(String name);

	/**
	 * Get the complete Path to the file / directory
	 * 
	 * @return The complete Path
	 */
	String getAbsolutePath();

	/**
	 * Set the complete Path to the file / directory
	 * 
	 * @param path
	 *            The complete Path
	 */
	void setAbsolutePath(String path);

	/**
	 * Gets the last modified date of the file
	 * 
	 * @return The last modified date of the file
	 */
	long getLastModified();

	/**
	 * Sets the last modified date of the file
	 * 
	 * @param lastModified
	 *            The last modified date of the file
	 */
	void setLastModified(long lastModified);

	/**
	 * The File length. 0 if the file is a directory
	 * 
	 * @return The file length
	 */
	long getLength();

	/**
	 * The length of the File.
	 * 
	 * @param length
	 *            The file length
	 */
	void setLength(long length);

	/**
	 * Checks if the specified file is a directory
	 * 
	 * @return true if directory, false otherwise
	 */
	boolean isDirectory();
}
