Package shell

Class Nodes

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<Node>, java.util.Collection<Node>, java.util.List<Node>, java.util.RandomAccess

    public class Nodes
    extends java.util.ArrayList<Node>
    Obecná třída, jako kontejner objektů kmene Node. Je použitá pro všechny kontejnery v aplikaci. Sama o sobě neimplementuje stromovou metodiku. K tomu musí být spojena s objekty kmenu Branch. Třída je vytvořena z důvodu potřeby zachovat veškerou metodiku ArrayList, ale také doplnit vlastní minimalistické rozšíření. Doplňuje vlastnosti min, max a groupMin aby bylo možné kontrolovat limity kontejneru. Pro ten účel zavádí metody: maxCondition() (říká je-li počet prvků v kontejneru menší než max, minCondition() (říká je-li splněn minimální počet prvků min), a groupMinCondition() s groupCountMax() (říká je-li splněn minimální počet stejných prvků groupMin). Doplňuje metodu a(shell.Node), která vrací přidávaný objekt (nebo null při chybě), aby bylo přidávání uzlů možné volat i ve výrazech. Objekty, kontejnery třídy Nodes, jsou analogíí tabulky s daty: nodes = tabulka; node = řádek; node.něco = sloupec; node.nodes = vnořená pracovní tabulka; node. další vnořené tabulky. Analogicky k souborovému systému jsou objekty Nodes složky obsahující odkazy (linky) na datové objekty Node, které mohou zase odkazovat (linky) na složky Nodes a tak pořád do hloubky. Odkazy na objekty/složky/tabulky třídy Nodes jsou pak roubovány/linkovány do objektů kmenu Branch, které s nimi umí různými způsoby zacházet. Minimálně lze celou Branch-Branch... stromovou strukturu procházet s tiskem identifikace každého uzlu.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      int groupMin
      minimální počet stejných prvků v kontejneru, aby byla splněna podmínka třídy GroupMin; metoda groupMinCondition() skrze metodu groupCountMax() říká, je-li splněn počet stejných prvků (Node.getComparable())
      int max
      maximální počet prvků v kontejeru -1, aby byla splněna podmínka třídy Max; k tomu je použita metoda maxCondition(), která říká je-li splněna
      int min
      minimální počet prvků v kontejeru, aby byla splněna podmínka třídy Min; k tomu je použita metoda minCondition(), která říká je-li splněna
      • Fields inherited from class java.util.AbstractList

        modCount
    • Constructor Summary

      Constructors 
      Constructor Description
      Nodes()  
      Nodes​(int max)  
      Nodes​(int max, int min)  
      Nodes​(int max, int min, int groupMin)  
      Nodes​(Node node)
      konstruktor rovnou přidá jeden node ze vstupu; užitečné pro konstrukci jednoprvkových tabulek (viz.
      Nodes​(Node[] arr)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Branch a​(Branch o)  
      Command a​(Command o)  
      Flag a​(Flag o)  
      Mover a​(Mover o)  
      Node a​(Node node)
      Přidá do tabulky prvek, pokud není null.
      Place a​(Place o)  
      Placer a​(Placer o)  
      long groupCountMax()  
      boolean groupMinCondition()  
      boolean maxCondition()  
      boolean minCondition()  
      • Methods inherited from class java.util.ArrayList

        add, add, addAll, addAll, clear, clone, contains, ensureCapacity, equals, forEach, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize
      • Methods inherited from class java.util.AbstractCollection

        containsAll, toString
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        parallelStream, stream, toArray
      • Methods inherited from interface java.util.List

        containsAll
    • Field Detail

      • min

        public int min
        minimální počet prvků v kontejeru, aby byla splněna podmínka třídy Min; k tomu je použita metoda minCondition(), která říká je-li splněna
      • max

        public int max
        maximální počet prvků v kontejeru -1, aby byla splněna podmínka třídy Max; k tomu je použita metoda maxCondition(), která říká je-li splněna
    • Constructor Detail

      • Nodes

        public Nodes()
      • Nodes

        public Nodes​(Node[] arr)
      • Nodes

        public Nodes​(int max)
      • Nodes

        public Nodes​(int max,
                     int min)
      • Nodes

        public Nodes​(int max,
                     int min,
                     int groupMin)
    • Method Detail

      • groupCountMax

        public long groupCountMax()
        Returns:
        vrátí největší počet elementů stejného typu (Node.getComparable())
      • minCondition

        public boolean minCondition()
        Returns:
        zda je splněn minimální počet prvků v kontejeru; používá podmínka třídy Min
      • maxCondition

        public boolean maxCondition()
        Returns:
        zda je splněn maximální počet prvků v kontejeru -1; používá podmínka třídy Max
      • groupMinCondition

        public boolean groupMinCondition()
        Returns:
        zda je splněn minimální počet stejných prvků v kontejneru; používá podmínka třídy GroupMin
      • a

        public Node a​(Node node)
        Přidá do tabulky prvek, pokud není null. Pokud je potřeba vložit prvek do více kontejnerů v jednom řádku/výrazu, nelze použít metodu ArrayList.add(E, java.lang.Object[], int), proto je vytvořena tato.
        Parameters:
        node - přidávaný prvek
        Returns:
        stejný prvek, jaký je ve vstupním parametru, nebo null při chybě