package doprava;

import rup.česky.společně.P;
import rup.česky.tvary.Barva;
import rup.česky.tvary.AktivníPlátno;
import rup.česky.tvary.Multipřesouvač;


/*******************************************************************************
 * Instance třídy ObousměrnáKabina představují kabinky pohybující se 
 * po linkách směrem zadaným při jejich vytvoření.
 *
 * @author
 * @version
 */
public class ObousměrnáKabina extends Kabina_11a
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================

    private boolean dopředu;



//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ METODY TŘÍDY ======================================================

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

    /***************************************************************************
     * Vytvoří kruhovou kabinu, která se bude pohybovat zadanou rychlostí
     * po zadané lince.
     *
     * @param linka     Linka, po které se kabina pohybuje.
     * @param dopředu   Pohybuje-li se ze stanice k následující stanici.
     */
    protected ObousměrnáKabina(Linka linka, Směr směr )
    {
        super( linka );
        /*# Tělo konstruktoru je třeba dotvořit. */
    }


    /***************************************************************************
     * Vytvoří kruhovou kabinu, která se bude pohybovat zadanou rychlostí
     * po zadané lince.
     * 
     * @param linka    Linka, po které se kabina pohybuje.
     */
    public static ObousměrnáKabina getInstance( Linka linka, Směr směr )
    {
        ObousměrnáKabina kabina = new ObousměrnáKabina( linka, směr );
        kabina.přesunuto();
        return kabina;
    }


//== 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 ================================
//== NOVĚ ZAVEDENÉ METODY INSTANCÍ =============================================

    /***************************************************************************
     * Metoda vyžadovaná rozhraním IMultiposuvný: definuje akci,
     * která se má provést v okamžiku,
     * kdy je objekt doveden do požadované cílové pozicie.
     *
     * @param mp   Multipřesouvač, který kabinku dovedl do cíle.
     *             Ten bude pravděpodobně požádán, aby kabinku dovezl zase dál
     *             a v případě doražení do cílové stanice
     */
    public void přesunuto()
    {
        /*# Doplnit tělo. */
    }



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

