function s = strom(varargin)
% strom/strom - konstruktor tridy 'strom'
% Sledujeme: nazev, prumer kmene, vyska kmene, stari

povolene = {'smrk', 'borovice', 'buk', 'dub', 'olse', 'modrin', ...
    'tresen', 'briza'}; % seznam povolenych stromu
if nargin == 0
    error('Musite zadat strom!');
elseif nargin == 1 && isa(varargin{1},'strom') % kopirovaci konstruktor
    s = varargin{1}; % uz je to objekt
    return
elseif nargin<4
    error('Zadejte: nazev, prumer kmene, vysku kmene, stari stromu!');
else % ocekavame alespon 4 vstupy
    for i=1:nargin % 1:4
        vstup = varargin{i}; %postupne zpracujeme vstupy, ocekavame spr. poradi
        switch(i)
            case 1
                if isa(vstup,'char') &&  hledej(vstup,povolene)
                    s.nazev = vstup; % prvni vstup je retezec (povoleny)
                else
                    error('Zadejte povoleny nazev stromu!');
                end
            case 2
                if je_cislo(vstup) % dalsi vstupy jsou cisla, musi byt kladna!
                    s.prumer_kmene = vstup;
                else
                    error('Zadejte prumer kmene stromu (kladne cislo)!');
                end
            case 3
                if je_cislo(vstup) % dalsi vstup
                    s.vyska_kmene = vstup;
                else
                    error('Zadejte vysku kmene stromu (kladne cislo)!');
                end
            case 4
                if je_cislo(vstup) % dalsi vstup
                    s.stari = vstup;
                else
                    error('Zadejte stari stromu (kladne cislo)!');
                end
        end % switch
    end % for
end % if - nargin
s = class(s,'strom');
