operators
Class PredArgument

java.lang.Object
  |
  +--operators.PredArgument

public class PredArgument
extends java.lang.Object
implements java.io.Serializable

Diese Klasse repr?sentiert EIN Argument eines Pr?dikates einer Operatorbedingung.

Seit der Version 1.7 werden auch Mengen unterst?tzt. Dabei ist zu beachten, dass es sich um Mengen von Instanzen handelt, die alle zu demselben Konzept geh?ren. Die Instanz in instance muss dabei nicht in otherInstances vorhanden sein.

Version:
1.8
Author:
Christian Fischbach, Nils Malzahn [toString();clone();delete();setConcept();PredArgument(String);replaceable(PredArgument)]
See Also:
Operator, Predicate, Serialized Form

Field Summary
private  Concept concept
           
private  boolean createsWorldObject
          F?r ein PredArg, das Bestandteil eines Predicate in einer add-Liste ist, zeigt dieses Flag an, ob dieses PredArg bei Ausf"uhrung des zugeh"origen Operators mit einem NEUEN Weltobjekt instantiiert wird (true) oder nicht (false, Default).
F"ur PredArgs in einer Precondition oder einer delete-Liste ist dieses Flag bedeutungslos.
Der GraphPlan basierte PlannerTypeC braucht dieses Flag zur Erstellung von Pl"anen f"ur dynamisch wachsende Objektwelten.


private  boolean firstUse
          Dieses Flag hilft dem Planausf?hrer festzustellen, ob er dieses PredArgument noch anders belegen darf oder nicht.
private  Instance instance
           
private  java.lang.String name
           
protected  java.util.LinkedList otherInstances
          In dieser Liste werden die Instanzen abgelegt, die dieses PredArgument au?erdem noch annehmen kann.
 
Constructor Summary
PredArgument(Concept type, java.lang.String name)
           
PredArgument(java.lang.String name)
          Dieser Konstruktor ist fuer den Gebrauch in Zusammenarbeit mit der OperatorDB geschrieben.
 
Method Summary
 void addInstance(Instance inst)
          Diese Methode f?gt otherInstances eine weitere Instanz hinzu.
 java.lang.Object clone()
          Diese Methode gibt ein Deepcopy des PredArgument zur?ck.
 PredArgument deepPointerClone(java.util.Hashtable name2PredArg)
           
 void delete()
          Diese Methode l?scht aus der instance die Zugehörigkeit zum Konzept concept. Bezieht sich nur auf die Instance in instance! Ist das PredArgument nicht belegt, so wird der Aufruf ignoriert.
 void deleteInstance(Instance inst)
          Diese Methode l?scht aus otherInstances eine Instanz.
 Concept getConcept()
           
 boolean getCreatesWorldObject()
          Get-Methode f"ur das Flag createsWorldObject.
 boolean getFirstUse()
           
 Instance getInstance()
           
 java.lang.String getName()
           
 java.util.ListIterator getOtherInstancesIterator()
           
 boolean instantiated()
           
 boolean replaceable(PredArgument predArg2)
          Testet ob das ?bergebene PredArgument dieses PredArgument ersetzen kann, weil concept das Concept des ?bergebenen PredArgument subsumiert.
 void revert()
          Diese Methode stellt die mit delete() gel?schte onzeptzugehörigkeit wieder her.
 void setConcept(Concept c)
          Diese Methode setzt die Variable concept auf den ?bergebenen Wert.
 boolean setCreatesWorldObject(boolean b)
          Set-Methode f"ur das Flag createsWorldObject.
 void setFirstUse(boolean b)
           
 Instance setInstance(Instance inst)
           
 java.lang.String setName(java.lang.String s)
           
 java.lang.String toString()
          Diese Methode gibt einen String zur?ck, der dasPredArgument so repr?sentiert:name:Instance.name:Concept.name
 
Methods inherited from class java.lang.Object
, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

concept

private Concept concept
Since:
version 1.0

createsWorldObject

private boolean createsWorldObject
F?r ein PredArg, das Bestandteil eines Predicate in einer add-Liste ist, zeigt dieses Flag an, ob dieses PredArg bei Ausf"uhrung des zugeh"origen Operators mit einem NEUEN Weltobjekt instantiiert wird (true) oder nicht (false, Default).
F"ur PredArgs in einer Precondition oder einer delete-Liste ist dieses Flag bedeutungslos.
Der GraphPlan basierte PlannerTypeC braucht dieses Flag zur Erstellung von Pl"anen f"ur dynamisch wachsende Objektwelten.
Since:
version 1.5



instance

private Instance instance
Since:
version 1.0

name

private java.lang.String name
Since:
version 1.0

otherInstances

protected java.util.LinkedList otherInstances
In dieser Liste werden die Instanzen abgelegt, die dieses PredArgument au?erdem noch annehmen kann. Die Liste hilft beliebige Mengen darzustellen.
Since:
1.7

firstUse

private boolean firstUse
Dieses Flag hilft dem Planausf?hrer festzustellen, ob er dieses PredArgument noch anders belegen darf oder nicht. Es hat im Zusammenhang mit otherInstances den Zweck zu verhindern, dass der Planausf?hrer dieses PredArgument st?ndig neu belegt.
Since:
1.7
Constructor Detail

PredArgument

public PredArgument(Concept type,
                    java.lang.String name)
Parameters:
type - Das Konzept -- der Typ -- des Parameters.
name - Der Name des Arguments
Since:
version 1.0

PredArgument

public PredArgument(java.lang.String name)
Dieser Konstruktor ist fuer den Gebrauch in Zusammenarbeit mit der OperatorDB geschrieben. Das Konzept wird dabei auf null gesetzt.
Parameters:
name - Der Name des Arguments
Since:
version 1.6
Method Detail

getConcept

public Concept getConcept()
Returns:
Concept Das Konzept des Argumentes
Since:
version 1.0

getCreatesWorldObject

public boolean getCreatesWorldObject()
Get-Methode f"ur das Flag createsWorldObject.
Returns:
boolean Wert des Flags createsWorldObject.
Since:
version 1.5

setCreatesWorldObject

public boolean setCreatesWorldObject(boolean b)
Set-Methode f"ur das Flag createsWorldObject.
Returns:
boolean Neuer Wert des Flags createsWorldObject.
Since:
version 1.5

getName

public java.lang.String getName()
Returns:
String Der symbolische Name des Pr?dikats.
Since:
version 1.0

setName

public java.lang.String setName(java.lang.String s)
Parameters:
s - der zu setzende Name.
Returns:
String der neu gesetzte Name.
Since:
version 1.0

getInstance

public Instance getInstance()
Returns:
Instance Instanz zu dem Konzept.
Since:
version 1.0

setInstance

public Instance setInstance(Instance inst)
Parameters:
inst - die zu setzende Instance
Returns:
Instance die neu gesetzte Instance
Since:
version 1.0

instantiated

public boolean instantiated()
Returns:
true, wenn zu dem Konzept eine Instanz vorhanden ist. Sonst false.
Since:
version 1.0

toString

public java.lang.String toString()
Diese Methode gibt einen String zur?ck, der dasPredArgument so repr?sentiert:
name:Instance.name:Concept.name
Returns:
den String, der das PredArgument repr?sentiert.
Overrides:
toString in class java.lang.Object
Since:
Version 1.1

clone

public java.lang.Object clone()
Diese Methode gibt ein Deepcopy des PredArgument zur?ck. Das concept und die instance werden allerdings nicht geklont.
Returns:
Das Klon-PredArgument
Overrides:
clone in class java.lang.Object
Since:
Version 1.2

deepPointerClone

public PredArgument deepPointerClone(java.util.Hashtable name2PredArg)

delete

public void delete()
Diese Methode l?scht aus der instance die Zugehörigkeit zum Konzept concept.

Bezieht sich nur auf die Instance in instance! Ist das PredArgument nicht belegt, so wird der Aufruf ignoriert.

Since:
1.3


revert

public void revert()
Diese Methode stellt die mit delete() gel?schte onzeptzugehörigkeit wieder her. Ist das PredArgument nicht belegt, so wird der Aufruf ignoriert.

Bezieht sich nur auf die Instance in instance!

Since:
1.3


setConcept

public void setConcept(Concept c)
Diese Methode setzt die Variable concept auf den ?bergebenen Wert.
Parameters:
c - das Konzept, das diesem PredArgument zugrunde liegt.
Since:
1.3

setFirstUse

public void setFirstUse(boolean b)
Parameters:
b - setzt firstUse auf den ?bergebenen Wert.
Since:
1.7

getFirstUse

public boolean getFirstUse()

addInstance

public void addInstance(Instance inst)
Diese Methode f?gt otherInstances eine weitere Instanz hinzu. Doppelte Eintragungen werden ignoriert.
Parameters:
inst - hinzuzuf?gende Instanz
Since:
1.7

deleteInstance

public void deleteInstance(Instance inst)
Diese Methode l?scht aus otherInstances eine Instanz. Wenn sie nicht in der Liste enthalten war, wird der Befehl ignoriert.
Parameters:
inst - zu l?schende Instanz
Since:
1.7

getOtherInstancesIterator

public java.util.ListIterator getOtherInstancesIterator()
Returns:
ListIterator ?ber die in diesem PredArgument gespeicherten otherInstances.
Since:
1.7

replaceable

public boolean replaceable(PredArgument predArg2)
Testet ob das ?bergebene PredArgument dieses PredArgument ersetzen kann, weil concept das Concept des ?bergebenen PredArgument subsumiert.
Parameters:
predArg2 - PredArgument, das den Platz dieses PredArgument einnehmen k?nnen soll.
Returns:
true, wenn concept vom Concept des ?bergebenen PredArgument subsumiert wird, sonst false.
Since:
1.8