Elexis API documentation
Version 2.1.6 as of December 11 2011

ch.rgw.tools
Class Tree<T>

java.lang.Object
  extended by ch.rgw.tools.Tree<T>
Direct Known Subclasses:
LazyTree

public class Tree<T>
extends java.lang.Object

Eine Baumförmige rekursive Datenstruktur. Ein Tree ist gleicheitig ein node. Ein Tree hat children (die allerdings auch null sein können) und Geschwister, (die ebenfalls null sein können), sowie ein Parent, welches ebenfalls null sein kann (dann ist dieses Tree-Objekt die Wurzel des Baums) Jeder Tree trägt ein beliebiges Datenobjekt (contents).


Field Summary
 T contents
           
 IFilter filter
           
 
Constructor Summary
Tree(Tree<T> p, T elem)
          Eine neues Tree-Objekt erstellen
Tree(Tree<T> parent, T elem, java.util.Comparator<T> comp)
          Ein neues Tree-Objekt innerhalb der Geschwisterliste sortiert einfügen
Tree(Tree<T> p, T elem, IFilter f)
          Ein neues Tree-Objekt mit einem Filter erstellen.
 
Method Summary
 Tree<T> add(T elem)
          Ein Datenobjekt als Kind-element zufügen.
 void clear()
          Alle Kind-Elemente entfernen
 Tree<T> find(java.lang.Object o, boolean deep)
           
 java.util.Collection<Tree<T>> getAll()
          Eine Liste mit allen Elementen des Baums liefern
 java.util.Collection<Tree<T>> getChildren()
          Alle Kind-Elemente liefern
 Tree<T> getFirstChild()
          Erstes Kind-element liefern.
 Tree<T> getNextSibling()
          Nächstes Geschwister liefern oder null wenn keine mehr da sind. getParent().getFirstChild() liefert den Start der Geschwisterliste.
 Tree<T> getParent()
          Das Elternobjekt liefern
 boolean hasChildren()
          Fragen, ob Kinder vorhanden sind
 void merge(Tree<T> newChild)
          Ähnlich wie add, aber wenn das übergebene Child schon existiert, werden nur dessen Kinder mit den Kindern des existenten childs ge'merged' (Also im Prinzip ein add mit Vermeidung von Dubletten
 Tree<T> move(Tree<T> newParent)
          An einen anderen Parenet-Node oder Tree zügeln (Mitsamt allen Kindern)
 void remove(Tree<T> subtree)
          Ein Kind-Element samt dessen Unterelementen entfernen
 void setFilter(IFilter f)
          Filter nachträglich setzen.
 Tree<T>[] toArray()
          Ein Array mit allen Elementen des Baums liefern
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

filter

public IFilter filter

contents

public T contents
Constructor Detail

Tree

public Tree(Tree<T> p,
            T elem)
Eine neues Tree-Objekt erstellen

Parameters:
p - der Parent, oder null, wenn dies die Wurzel werden soll.
elem - das zugeordnete Datenobjekt

Tree

public Tree(Tree<T> parent,
            T elem,
            java.util.Comparator<T> comp)
Ein neues Tree-Objekt innerhalb der Geschwisterliste sortiert einfügen

Parameters:
parent - Parent
elem - Datenobjekt
comp - Ein Comparator für das Fatenobjekt

Tree

public Tree(Tree<T> p,
            T elem,
            IFilter f)
Ein neues Tree-Objekt mit einem Filter erstellen. Wenn ein Filter gesetzt wird, dann werden von getChildren() nur die geliefert, die dem Filter entsprechen

Parameters:
p - Parent-Element
elem - Datenobjekt
f - Filter
Method Detail

setFilter

public void setFilter(IFilter f)
Filter nachträglich setzen. Der Filter wird für dieses und alle Children gesetzt.

Parameters:
f - der Filter

add

public Tree<T> add(T elem)
Ein Datenobjekt als Kind-element zufügen. Dies (Das Datenobjekt wird implizit in ein Tree-Objekt gepackt. obj.add(t) ist dasselbe wie new Tree(obj,t))

Parameters:
elem - Das Datenobjekt
Returns:
das erzeugte Tree-Objekt

remove

public void remove(Tree<T> subtree)
Ein Kind-Element samt dessen Unterelementen entfernen

Parameters:
subtree - das Kindelement

move

public Tree<T> move(Tree<T> newParent)
An einen anderen Parenet-Node oder Tree zügeln (Mitsamt allen Kindern)

Parameters:
newParent - der neue Elter

merge

public void merge(Tree<T> newChild)
Ähnlich wie add, aber wenn das übergebene Child schon existiert, werden nur dessen Kinder mit den Kindern des existenten childs ge'merged' (Also im Prinzip ein add mit Vermeidung von Dubletten


clear

public void clear()
Alle Kind-Elemente entfernen


getChildren

public java.util.Collection<Tree<T>> getChildren()
Alle Kind-Elemente liefern

Returns:
eine Collection mit den Kind-Trees

getParent

public Tree<T> getParent()
Das Elternobjekt liefern

Returns:
das parent

getFirstChild

public Tree<T> getFirstChild()
Erstes Kind-element liefern. Null, wenn keine Kinder. Dies macht im Gegensatz zu hasChildren() keine synchronisation!

Returns:

getNextSibling

public Tree<T> getNextSibling()
Nächstes Geschwister liefern oder null wenn keine mehr da sind. getParent().getFirstChild() liefert den Start der Geschwisterliste.

Returns:

hasChildren

public boolean hasChildren()
Fragen, ob Kinder vorhanden sind

Returns:
true wenn dieses Objekt Children hat.

toArray

public Tree<T>[] toArray()
Ein Array mit allen Elementen des Baums liefern

Returns:

getAll

public java.util.Collection<Tree<T>> getAll()
Eine Liste mit allen Elementen des Baums liefern

Returns:

find

public Tree<T> find(java.lang.Object o,
                    boolean deep)

Elexis API documentation
Version 2.1.6 as of December 11 2011

Copyright 2005-2011 by Gerry Weirich, Elexis