Package shell

Class Node

  • All Implemented Interfaces:
    Condition
    Direct Known Subclasses:
    Command

    public class Node
    extends java.lang.Object
    implements Condition
    Obecná třída, jako společný předek všem třídám, které mají jméno, použitelné pro slovní identifikaci. Objekty kmenu Node mohou být ukládány do kontejnerů třídy Nodes. Instance Node jsou jednoznačně identifikovány adresou v paměti. Jméno name je jen pro slovní identifikaci při "lidské" práci s objekty. Na slovní identifikaci se převádí metodou print(). Na strojovou identifikaci se převádí vyhledáním v kontejneru podle identifikace slovní, ale upravené v parametru comparable. Vyhledání provádí rodič/vlastník - objekt třídy Branch, ve kterém je kontejner Branch.nodes s objekty třídy Node. Objekty třídy Node umí vykonat nějakou akci metodou go(), která je ve výchozím stavu jen přesměrováním na print().
    • Field Summary

      Fields 
      Modifier and Type Field Description
      java.lang.String comparable
      jméno objektu, kterým se slovně identifikuje v upravené podobě (pro porovnávání); podle tohoto parametru objekty kmenu Branch hledají v kontejnerech Branch.nodes; pokud bude mít stejný comparable více objektů v kontejneru, bude nalezen vždy ten první
      static int level
      úroveň zanoření při průchodu stromem uzlů; je statická - všechny objekty používají stejnou proměnnou level
      java.lang.String name
      jméno objektu, kterým se slovně identifikuje v neupravené podobě (pro zobrazování apod.)
      static int noActive
      explicitní vypnutí aktivity; využívá jej například metoda Branch.go(), která při porušení povinnosti zvolit cestu dočasně přičte 1, aby se mohly vypsat všechny uzly v kontejneru bez jejich aktivity
    • Constructor Summary

      Constructors 
      Constructor Description
      Node()  
      Node​(java.lang.String name)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getComparable()  
      java.lang.String getExtName()
      Vrací rozšířený identifikaci objektu.
      java.lang.String getName()  
      void go()
      Výchozí průchod Node je jeho tisk.
      static void mes​(java.lang.String s)
      Tisk servisní zprávy, sloužící pro testování a ladění aplikace.
      boolean met()  
      static void out​(java.lang.String s)
      Přidá ke každému oddělovači řádku odsazení podle level.
      void outExtName()
      Tiskne rozšířený slovní identifikátor.
      void outName()
      Tiskne jen slovní identifikátor.
      void print()
      Standardní tisk kompletního uzlu (všeho, co jej popisuje).
      void setName​(java.lang.String name)
      Krom nastavení name, nastaví i comparable odstraněním akcentů atd.
      static java.lang.String toComparable​(java.lang.String s)
      Vrátí upravený String pro porovnávání bez ohledu na akcenty a velikost znaků.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • level

        public static int level
        úroveň zanoření při průchodu stromem uzlů; je statická - všechny objekty používají stejnou proměnnou level
      • noActive

        public static int noActive
        explicitní vypnutí aktivity; využívá jej například metoda Branch.go(), která při porušení povinnosti zvolit cestu dočasně přičte 1, aby se mohly vypsat všechny uzly v kontejneru bez jejich aktivity
      • name

        public java.lang.String name
        jméno objektu, kterým se slovně identifikuje v neupravené podobě (pro zobrazování apod.)
      • comparable

        public java.lang.String comparable
        jméno objektu, kterým se slovně identifikuje v upravené podobě (pro porovnávání); podle tohoto parametru objekty kmenu Branch hledají v kontejnerech Branch.nodes; pokud bude mít stejný comparable více objektů v kontejneru, bude nalezen vždy ten první
    • Constructor Detail

      • Node

        public Node()
      • Node

        public Node​(java.lang.String name)
    • Method Detail

      • out

        public static void out​(java.lang.String s)
        Přidá ke každému oddělovači řádku odsazení podle level.
      • mes

        public static void mes​(java.lang.String s)
        Tisk servisní zprávy, sloužící pro testování a ladění aplikace.
      • toComparable

        public static java.lang.String toComparable​(java.lang.String s)
        Vrátí upravený String pro porovnávání bez ohledu na akcenty a velikost znaků. Metoda je použita při konstrukci objektu pro nastavení comparable, ale i v Branch.go(), kde musí být sjednocena vstupní slovní identifikace z cesty.
      • setName

        public void setName​(java.lang.String name)
        Krom nastavení name, nastaví i comparable odstraněním akcentů atd.
      • getName

        public java.lang.String getName()
        Returns:
        Vrací slovní identifikaci objektu. Je určena jen pro tisk, ne pro porovnávání, protože může obsahovat akcenty, velká i malá písmena.
      • getExtName

        public java.lang.String getExtName()
        Vrací rozšířený identifikaci objektu. Ve výchozím stavu volá getName(), takže výsledek je stejný, jako přímé použití getName(), ale pokud některý potomek metodu getExtName přepíše svým vlastní způsobem, bude výsledek odlišný. To je smysl této metody. Metody getName() a getExtName() volá v aplikaci metoda Branch.outDone() třídy Branch, podle toho jestli má nastaven příznak Branch.extName==true nebo false.
      • getComparable

        public java.lang.String getComparable()
        Returns:
        vrací hodnotu, která je určena pro strojové porovnávání uzlů (obdoba hashCode).
      • met

        public boolean met()
        Specified by:
        met in interface Condition
        Returns:
        vrací příznak, že lze s uzlem provést operaci příkazem třídy Branch
      • go

        public void go()
        Výchozí průchod Node je jeho tisk. Toto je standard, ale každý potomek může akci implementovat vlastním způsobem.
      • outName

        public void outName()
        Tiskne jen slovní identifikátor.
      • outExtName

        public void outExtName()
        Tiskne rozšířený slovní identifikátor.
      • print

        public void print()
        Standardní tisk kompletního uzlu (všeho, co jej popisuje). Tato výchozí print volá jen outName(), ale potomci mohou rozšiřovat tuto mtodu o tisk komentářů, nebo dalších parametrů objektu.