<?php
/**
 * Item Interface
 * 
 * Base class for FileSystem item (like Folder and Files)
 * 
 * @author Visual Media 
 */

namespace VisualM\MediaManagerBundle\FileSystem;

/**
 * Item Interface
 * 
 * @author Visual Media 
 */
interface ItemInterface
{    
    /**
     * Get Type Identification
     * 
     * @return string Type
     */
    public function getType();
    
    /**
     * Get Display Name
     * 
     * @return string Name
     */
    public function getName();
    
    /**
     * Get Relative Path
     * 
     * @return string Relative Path
     */
    public function getRelativePath();
    
    /**
     * Get Absolute Path
     * 
     * @return string Absolute Path
     */
    public function getAbsolutePath();
    
    /**
     * Is viewable
     * 
     * @return boolean Viewable
     */
    public function isViewable();
    
    /**
     * Is editable
     * 
     * @return boolean Editable
     */
    public function isEditable();
    
    /**
     * Is deletable 
     * 
     * @return boolean Deleteable
     */
    public function isDeleteable();
    
    /**
     * Get Icon 
     * 
     * @return string Relative icon path
     */
    public function getIcon();        
    
}