informationexchange
Class LearnTree

java.lang.Object
  |
  +--informationexchange.LearnTree

public class LearnTree
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable

Der LearnTree wird aus einem PlanTree erzeugt und ist dazu gedacht, im Planarchiv abgespeichert zu werden. Der LearnTree enth?lt im operator die von den Lernen benutzten/gew?nschten Informationen.

Version:
[1999-08-29]
Author:
Oliver Geppert
See Also:
PlanTree, LearnOperator, Serialized Form

Field Summary
protected  int depth
          Tiefe des Baums
 boolean[] goalPath
          Feld von goalPath-Markierungen.
 boolean[] goalReached
          Ist goalReached[i] true, so ist mit Erreichen der entsprechenden Nachbedingung auch das Ziel erreicht.
private  LearnTree[] next
          Feld von Zeigern auf die Nachfolgeknoten.
private  LearnOperator operator
          Der LearnOperator, der dem Operator im entsprechenden PlanTree-Knoten entspricht.
private  LearnTree prev
          Zeiger auf den Vorg?ngerknoten.
 
Constructor Summary
LearnTree(LearnOperator operator, boolean[] goalPath, boolean[] goalReached)
          Konstruktor, der einen Wurzelknoten erzeugt.
 
Method Summary
 void exportFig(java.lang.String filename)
          Erzeugt ein XFig-File und speichert den LearnTree als Grafik mit der Endung ".fig" sowie eine textuelle Ausgabe mit der Endung ".txt".
 int getDepth()
          Achtung, die Tiefe wird noch nirgendwo gesetzt...
 LearnTree getNext(int i)
          Liefert einen Nachfolgeknoten.
 LearnOperator getOperator()
           
 LearnTree getPrev()
           
 LearnTree getRoot()
           
 boolean isRoot()
           
 LearnTree setNext(LearnTree next, int i)
          Setzt einen LearnTree als Nachfolgeknoten.
 LearnTree setPrev(LearnTree prev)
          Weist einem Knoten einen Vorg?ngerknoten zu.
 int toFig(fig32.Fig fig, java.io.Writer wtxt, int level, int start, ChangeableLong nodeNr)
          Erzeugt xfig-Code.
 java.lang.String toString(java.lang.String t)
          Erzeugt rekursiv einen String mit den Knoteninformationen.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

operator

private LearnOperator operator
Der LearnOperator, der dem Operator im entsprechenden PlanTree-Knoten entspricht.
Since:
[1999-08-29]

prev

private LearnTree prev
Zeiger auf den Vorg?ngerknoten.
Since:
[1999-08-15]

next

private LearnTree[] next
Feld von Zeigern auf die Nachfolgeknoten.
Since:
[1999-08-15]

goalPath

public boolean[] goalPath
Feld von goalPath-Markierungen. Ist eine Markierung auf true gesetzt, f?hrt der entsprechende Pfad gleichen Indexes zum Ziel. Es wird also der folgende (!) Knoten markiert. Der Wurzelknoten wird als implizit auf dem Weg zum Ziel liegend gesehen.
Since:
[1999-08-15]

goalReached

public boolean[] goalReached
Ist goalReached[i] true, so ist mit Erreichen der entsprechenden Nachbedingung auch das Ziel erreicht. Ist goalReached[i] false, so ist der Plan gescheitert, wenn hinter der (erf?llten) Nachbedingung mit Index i kein PlanTree mehr h?ngt. goalReached wird f?r die einzelnen Nachbedingungen vom Planer mittels setGoalReached[i] und unsetGoalReached[i] auf true bzw. false resp. gesetzt.
Since:
[1999-08-31]

depth

protected int depth
Tiefe des Baums
Constructor Detail

LearnTree

public LearnTree(LearnOperator operator,
                 boolean[] goalPath,
                 boolean[] goalReached)
Konstruktor, der einen Wurzelknoten erzeugt. Aus der Anzahl der Elemente in goalPath[] wird die Anzahl der Nachfolgeknoten ermittelt. Wird von PlanTree.toLearnTree aufgerufen.
Parameters:
LearnOperator - operator - Der zu setzende Operator
boolean - goalPath[] - Das zu setzende Feld von goalPaths
boolean - goalReached[] - Das zu setzende Feld von goalReacheds
Since:
[1999-08-29]
See Also:
PlanTree
Method Detail

isRoot

public boolean isRoot()
Returns:
boolean - Ist true, wenn der Knoten eine Wurzel ist, sonst false.
Since:
[1999-08-15]

getRoot

public LearnTree getRoot()
Returns:
LearnTree - Der Wurzelknoten, der zu diesem Knoten geh?rt.
Since:
[1999-08-15]

getNext

public LearnTree getNext(int i)
Liefert einen Nachfolgeknoten.
Parameters:
int - i - Index des Nachfolgeknotens.
Returns:
LearnTree - Der Nachfolgeknoten mit Index i.
Since:
[1999-08-15]

setNext

public LearnTree setNext(LearnTree next,
                         int i)
Setzt einen LearnTree als Nachfolgeknoten. Dem ?bergebenen LearnTree wird der aktuelle Knoten als Vorg?ngerknoten gesetzt.
Parameters:
LearnTree - next - Der zu setztende Nachfolgeknoten.
int - i - Index des Nachfolgeknotens.
Since:
[1999-08-15]

getPrev

public LearnTree getPrev()
Returns:
LearnTree - der Vorg?ngerknoten
Since:
[1999-08-15]

setPrev

public LearnTree setPrev(LearnTree prev)
Weist einem Knoten einen Vorg?ngerknoten zu.
Parameters:
LearnTree - prev - Der zu setzende Vorg?ngerknoten.
Since:
[1999-08-15]

getOperator

public LearnOperator getOperator()
Returns:
long - Die OperatorID des Knotens.
Since:
[1999-08-15]

getDepth

public int getDepth()
Achtung, die Tiefe wird noch nirgendwo gesetzt...
Returns:
die Tiefe des Baums zurück
Since:
[1999-12-02]

toString

public java.lang.String toString(java.lang.String t)
Erzeugt rekursiv einen String mit den Knoteninformationen.
Parameters:
String - t - Sollte mit "0" oder "Zitronenmarmelade" aufgerufen werden.
Returns:
String - textuelle Beschreibung des LearnTrees, kann als String ausgegeben werden.
Since:
[1999-08-15]

exportFig

public void exportFig(java.lang.String filename)
Erzeugt ein XFig-File und speichert den LearnTree als Grafik mit der Endung ".fig" sowie eine textuelle Ausgabe mit der Endung ".txt". Die Nummern in der grafischen Ausgabe entsprechen den Knotennummern in der textuellen Ausgabe. In der grafischen Ausgabe entspricht ein gr?n gef?llter Kreis einer Nachbedingung, die zum Ziel f?hrte. Alle anderen sind rot. Ist ein Nachbedingungskreis von einem weiteren Kreis umgeben, so ist f?r diese Nachbedingung das Flag goalReached gesetzt.
Parameters:
String - filename - Pfad/Name der zu erzeugenden Kontrollausgabe.
Since:
[1999-08-29]

toFig

public int toFig(fig32.Fig fig,
                 java.io.Writer wtxt,
                 int level,
                 int start,
                 ChangeableLong nodeNr)
          throws java.io.IOException
Erzeugt xfig-Code. Wird initial von exportFig aufgerufen.
Since:
[1999-08-29]