/*******************************************************************************
 * Třída Výtah simuluje výtah vozící pasažéry
 *
 * @author    Rudolf Pecinovský
 * @version   0.00.000,  0.0.2003
 */
public class Výtah 
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================

    /** Počet dosud vytvořených instancí. */
    private static int počet = 0;

    

//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================

    /** Pořadí vytvoření dané instance v rámci třídy. */
    private final int pořadí = ++počet;
    
    
    
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ METODY TŘÍDY ======================================================

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /***************************************************************************
     * Konstruktor definující ve kterém sloupci bude výtah jezdit, 
     * jakou bude jezdit rychlostí a jakou bude mít barvu.
     * 
     * @param sloupec  Sloupec aktivního plátna, v němž bude výtah jezdit.
     * @param rychlost Rychlost nastavená přesouvači, který bude mít daný výtah
     *                 na starosti.
     * @param barva    Barva výtahu.          
     */
    public Výtah( int sloupec, int rychlost, Barva barva )
    {
    }


    /***************************************************************************
     * Konstruktor definující ve kterém sloupci bude výtah jezdit, 
     * jakou bude jezdit rychlostí a jakou bude mít barvu.
     * 
     * @param sloupec  Sloupec aktivního plátna, v němž bude výtah jezdit.
     */
    public Výtah( int sloupec )
    {
    }

    

//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
//== PŘEKRYTÉ METODY IMPLEMENTOVANÝCH ROZHRANÍ =================================
//== PŘEKRYTÉ ABSTRAKTNÍ METODY RODIČOVSKÉ TŘÍDY ===============================
//== PŘEKRYTÉ KONKRÉTNÍ METODY RODIČOVSKÉ TŘÍDY ================================

    /***************************************************************************
     * Převede instanci na řetězec, v němž bude uvedeno pořadové číslo
     * výtahu, sloupec, v němž jezdí a patro, v němž se právě nachází.
     *
     * @return Řetězcová reprezentace dané instance.
     */
    public String toString()
    {
        return "Výtah_" + pořadí;
    }



//== NOVĚ ZAVEDENÉ METODY INSTANCÍ =============================================
     
    /***************************************************************************
     * Přijede do patra, ve kterém se nachází pasažér.
     * odveze jej do požadovaného patra; pasažér zůstává ve výtahu.
     * 
     * @param pasažér   Pasažér, do jehož řádku je třebaq přijet.
     */
    public void přijeďK( IPosuvný pasažér )
    {
    }
    
   
    /***************************************************************************
     * Přesune zadaného pasažéra z jeho výchozí pozice do výtahu.
     * V zájmu reálnosti grafické simulace by se měl pasažér vejít do 
     * jednoho políčka aktivního plátna.          
     *
     * @param pasažér   Gemetrický tvar, který bude zastupovat pasažera.
     */
    public void nástup( IPosuvný pasažér )
    {
    }
    
   
    /***************************************************************************
     * Odjede s výtahem do zadaného patra;
     * je-li nastoupený pasažér, odjede i s ním.
     *
     * @param patro   Pořadové číslo cílového patra (přízemí má 0).
     */
    public void doPatra( int patro )
    {
    }
    
    
    /***************************************************************************
     * Přesune pasažéra výtahu na sousední políčko vpravo vedle výtahu.
     */
    public void výstupVpravo()
    {
    }
    
    
    /***************************************************************************
     * Přesune pasažéra výtahu na sousední políčko vlevo vedle výtahu.
     */
    public void výstupVlevo()
    {
    }
        
     
    /***************************************************************************
     * Přivolá do pasažérova patra výtah, nechá pasažéra nastoupit,
     * odveze jej do požadovaného patra a tam jej nechá vystoupit doprava.
     * 
     * @param pasažér   Gemetrický tvar, který bude zastupovat pasažera.
     * @param doPatra   Pořadové číslo cílového patra (přízemí má 0).
     */
    public void odvezVpravo( IPosuvný pasažér, int doPatra )
    {
    }   
    
     
    /***************************************************************************
     * Přivolá do pasažérova patra výtah, nechá pasažéra nastoupit,
     * odveze jej do požadovaného patra a tam jej nechá vystoupit doleva.
     * 
     * @param pasažér   Gemetrický tvar, který bude zastupovat pasažera.
     * @param doPatra   Pořadové číslo cílového patra (přízemí má 0).
     */
    public void odvezVlevo( IPosuvný pasažér, int doPatra )
    {
    }   
    

    
//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== VNOŘENÉ A VNITŘNÍ TŘÍDY ===================================================
//== TESTY A METODA MAIN =======================================================
}

