Package shell

Class Command

  • All Implemented Interfaces:
    Condition
    Direct Known Subclasses:
    Branch, Flag, Test

    public class Command
    extends Node
    Nadtřída všech příkazů. Rozšiřuje metodu print(), která přiformátuje popis příkazu comment. Metodou cover() testuje zda je uzel aktivní nebo ne. Pokud není, přesměruje na metodu předka go(). Pokud aktivní je, otestuje metodou condition() podmínky akce a vyhoví-li, volá action() a outDone(). Pokud nevyhoví, volá outError().
    • Field Summary

      Fields 
      Modifier and Type Field Description
      java.lang.String comment
      popis příkazu; u identifikace v metodě print() se vypisuje za Node.print(), oddělený pomlčkou
      java.lang.String done
      odpověď úspěšného provedení; u třídy Branch se týká uzlu
      java.lang.String error
      odpověď v případě chyby; u třídy Branch se týká uzlu
      int levelActive
      úroveň zanoření, ve které má být uzel aktivní (spouští action() resp.
    • Constructor Summary

      Constructors 
      Constructor Description
      Command()  
      Command​(java.lang.String name, java.lang.String comment)  
      Command​(java.lang.String name, java.lang.String comment, int levelActive, java.lang.String done)  
      Command​(java.lang.String name, java.lang.String comment, int levelActive, java.lang.String done, java.lang.String error)  
      Command​(java.lang.String name, java.lang.String comment, java.lang.String done)  
      Command​(java.lang.String name, java.lang.String comment, java.lang.String done, java.lang.String error)  
    • Field Detail

      • comment

        public java.lang.String comment
        popis příkazu; u identifikace v metodě print() se vypisuje za Node.print(), oddělený pomlčkou
      • done

        public java.lang.String done
        odpověď úspěšného provedení; u třídy Branch se týká uzlu
      • error

        public java.lang.String error
        odpověď v případě chyby; u třídy Branch se týká uzlu
      • levelActive

        public int levelActive
        úroveň zanoření, ve které má být uzel aktivní (spouští action() resp. Branch.nodeAction() namísto go() resp. Branch.nodeGo()); aktivita je řízena úrovní, aby se dalo lehce ovlivnit zda se příkazy vypisují, nebo vykonávají jen umístěním ve stromu aplikace
    • Constructor Detail

      • Command

        public Command()
      • Command

        public Command​(java.lang.String name,
                       java.lang.String comment)
      • Command

        public Command​(java.lang.String name,
                       java.lang.String comment,
                       int levelActive,
                       java.lang.String done)
      • Command

        public Command​(java.lang.String name,
                       java.lang.String comment,
                       java.lang.String done)
      • Command

        public Command​(java.lang.String name,
                       java.lang.String comment,
                       int levelActive,
                       java.lang.String done,
                       java.lang.String error)
      • Command

        public Command​(java.lang.String name,
                       java.lang.String comment,
                       java.lang.String done,
                       java.lang.String error)
    • Method Detail

      • print

        public void print()
        Rozšiřuje metodu Node.print(), která přiformátuje popis akce.
        Overrides:
        print in class Node
      • condition

        public boolean condition()
        Testuje podmínky pro provedení action().
        Returns:
        Výchozí test vrací true - nejsou žádné podmínky.
      • action

        public void action()
        Provede vlastní akci bez obalu. Výchozí akce je tisk uzlu. Potomci budou zpravidla metodu přepisovat, ale dokud to neudělají, uzel se bude jen vypisovat (pro ladění užitečné).
      • active

        public boolean active()
        Pokud je uzel aktivní, spouští action() resp. Branch.nodeAction(). Pokud aktivní není, spouští go() resp. Branch.nodeGo(). Tím je zajištěno, že i příkazy lze pasivně procházet (jen jejich výpisy). Aktivita je standardně řízena urovní zanoření. Ve výchozím stavu levelActive==-1 uzel nebude aktivní v žádné urovni.
        Returns:
        Vrátí příznak, zda je uzel aktivní.
      • outError

        public void outError()
        Metoda pro tisk chybové odpovědi. Standardně jen tiskne textový parametr error.
      • outDone

        public void outDone()
        Metoda pro tisk potvrzující odpovědi. Standardně jen tiskne textový parametr done.
      • cover

        public void cover()
        Balí vlastní akci a tisk výsledku. Analogicky má Branch třída metodu Branch.nodeCover(), která provádí totéž na úrovni větvebí (Branch.node).
      • go

        public void go()
        Rozhraní procházení. Metoda cover() je vytknuta pro dodržení stejné koncepce, jakou má třída Branch, kde Branch.go() řeší větvení a vlastní cover() je prováděno až pro větev (tam se jmenuje Branch.nodeCover()).
        Overrides:
        go in class Node