operators
Class CompoundOperator

java.lang.Object
  |
  +--dataanalysis.databases.DatabaseElement
        |
        +--operators.Operator
              |
              +--operators.CompoundOperator
Direct Known Subclasses:
PrintlnCompoundOperator

public class CompoundOperator
extends Operator
implements java.util.List

Diese Klasse repr?sentiert zusammengesetzte Operatoren wie sie z.B. vom OperatorLearner gebildet werden. Sie k?nnen aus Operator, ClassifierOperator oder CompoundOperatorbestehen.

Bei der Erstellung eines CompoundOperators m?ssen folgende Dinge beachtet werden:

  1. Dem CompoundOperator steht als Wissensbasis nur das zur Verf?gung, was er in der Vorbedingung vorfindet und sich selbst w?hrend des Abarbeitens der Operatorenkomponenten erzeugt.
  2. Weil innerhalb des CompoundOperators keine Belegung der Vor- und Nachbedingungen der Operatorkomponenten stattfindet, hat der Erbauer des KomponentenOperators daf?r Sorge zu tragen, dass die Verzeigerung der PredArguments so erfolgt, dass der Instanzenfluss zwischen den Operatoren gew?hrleistet ist.
  3. Die Komponentenoperatoren werden nacheinander ausgef?hrt. Dabei kann jeweils nur genau ein Nachbedingungszweig des jeweiligen Komponentenoperators ber?cksichtigt werden. Verzweigungen innerhalb des CompoundOperators werden nicht unterst?tzt.
  4. Der Nachbedingungsindex, der am Ende der Ausf?hrung dieses Operators gilt, stimmt mit dem Index der Nachbedingung des letzten ausgef?hrten Operatorkomponente ?berein, d.h. der CompoundOperator muss exakt soviele Nachbedingungen haben wie seine letzte Komponente.
  5. Scheitert eine Operatorkomponente, so scheitert der gesamte Operator

Die allgemeinen Bemerkungen f?r Operatoren gelten auch f?r diesen Operatortyp.

Version:
1.5
Author:
Nils Malzahn
See Also:
OperatorLearner, Operator, Serialized Form

Field Summary
private  java.util.LinkedList operatorComponents
          Diese Variable stellt den Zeiger auf die Datenstruktur zur Speicherung der Operatoren des Verbunds dar.
 
Fields inherited from class operators.Operator
added, deleted, OPCLASSIC, OPCLASSIFIER, OPCONDITIONAL, opID, OPREACTIVE, OPTARGETMATCH, opType, postcondFullfilled, postconds, precond, predicateIndexToVerify, weight
 
Fields inherited from class dataanalysis.databases.DatabaseElement
elementname
 
Constructor Summary
CompoundOperator()
          Dieser Konstruktor initialisiert die operatorComponents des CompoundOperators mit einer leeren Liste.
 
Method Summary
 void add(int index, java.lang.Object element)
           
 boolean add(java.lang.Object o)
          Diese Methode soll genutzt werden, um Operatoren zum Compound hinzugef?gt werden soll.
 boolean addAll(java.util.Collection c)
           
 boolean addAll(int index, java.util.Collection c)
           
 void clear()
           
 java.lang.Object clone()
          Diese Methode erzeugt ein Deepcopy des CompoundOperator.
 boolean contains(java.lang.Object o)
           
 boolean containsAll(java.util.Collection c)
           
 Operator deepClone()
          Deprecated.  
 boolean equals(java.lang.Object o)
           
 void eval()
          Diese Methode veranlasst den Operator seine Arbeit zu tun, das heisst, er versucht eine seiner Nachbedingungen zu erf?llen und erfolgreich zu belegen.
 java.lang.Object get(int index)
           
 int getNumberOfComponents()
          Diese Methode
 int hashcode()
           
 int indexOf(java.lang.Object o)
           
 boolean isEmpty()
           
 java.util.Iterator iterator()
           
 int lastIndexOf(java.lang.Object o)
           
 java.util.ListIterator listIterator()
           
 java.util.ListIterator listIterator(int index)
           
 java.lang.Object remove(int index)
           
 boolean remove(java.lang.Object o)
           
 boolean removeAll(java.util.Collection c)
           
 boolean retainAll(java.util.Collection c)
           
 java.lang.Object set(int index, java.lang.Object element)
           
 int size()
           
 java.util.LinkedList splitCompound()
          Diese Methode zerteilt den Operator in seine Einzelteile.
 java.util.List subList(int fromIndex, int toIndex)
           
 java.lang.Object[] toArray()
           
 java.lang.Object[] toArray(java.lang.Object[] a)
           
 java.lang.String toString()
          Diese Methode gibt den Zustand des CompoundOperators inkl.
 
Methods inherited from class operators.Operator
deepPointerClone, getAdded, getDeleted, getFullfilledPostcondition, getOpID, getOpType, getPostcond, getPostcondFullfilled, getPrecond, getUnverifiedPrecondPred, getWeight, setAdded, setDeleted, setOpID, setOpType, setPostcond, setPostcondFullfilled, setPrecond, setPredicateIndexToVerify, setVerifiedPrecondPred, setWeight
 
Methods inherited from class dataanalysis.databases.DatabaseElement
getElementname, logMessage, setElementname
 
Methods inherited from class java.lang.Object
, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

operatorComponents

private java.util.LinkedList operatorComponents
Diese Variable stellt den Zeiger auf die Datenstruktur zur Speicherung der Operatoren des Verbunds dar.
Since:
1.0
Constructor Detail

CompoundOperator

public CompoundOperator()
Dieser Konstruktor initialisiert die operatorComponents des CompoundOperators mit einer leeren Liste.
Since:
1.0
Method Detail

getNumberOfComponents

public int getNumberOfComponents()
Diese Methode
Returns:
int gibt die Anzahl der Operatoren, aus denen der Operator zusammengesetzt ist, zur?ck
Since:
1.0

splitCompound

public java.util.LinkedList splitCompound()
Diese Methode zerteilt den Operator in seine Einzelteile. Dabei werden CompoundOperator innerhalb dieses CompoundOperator nicht zerteilt.

Die Methode k?nnte bei einem Planer, der Planning by Rewriting beherrscht verwendet werden.

Returns:
LinkedList Die Liste der Einzeloperatoren.
Since:
1.0


eval

public void eval()
          throws OperatorFailedException
Diese Methode veranlasst den Operator seine Arbeit zu tun, das heisst, er versucht eine seiner Nachbedingungen zu erf?llen und erfolgreich zu belegen. Wenn der Operator.opType Operator.OPTARGETMATCH ist, so scheitert der Operator nicht, wenn keine Komponentenoperatoren existieren. Bei jedem anderen Typ scheitert die Ausf?hrung in diesem Fall.
Overrides:
eval in class Operator
Since:
1.0

add

public void add(int index,
                java.lang.Object element)
Specified by:
add in interface java.util.List

add

public boolean add(java.lang.Object o)
Diese Methode soll genutzt werden, um Operatoren zum Compound hinzugef?gt werden soll. Der Operator wird nach allen Operatoren, die zuvor hinzuge?gt wurden in den Verbund eingereiht.
Specified by:
add in interface java.util.List
Parameters:
o - der Operator, der zum Compound hinzugef?gt werden soll.
Returns:
true

addAll

public boolean addAll(java.util.Collection c)
Specified by:
addAll in interface java.util.List

addAll

public boolean addAll(int index,
                      java.util.Collection c)
Specified by:
addAll in interface java.util.List

clear

public void clear()
Specified by:
clear in interface java.util.List
Overrides:
clear in class Operator

contains

public boolean contains(java.lang.Object o)
Specified by:
contains in interface java.util.List

containsAll

public boolean containsAll(java.util.Collection c)
Specified by:
containsAll in interface java.util.List

get

public java.lang.Object get(int index)
Specified by:
get in interface java.util.List

hashcode

public int hashcode()

indexOf

public int indexOf(java.lang.Object o)
Specified by:
indexOf in interface java.util.List

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.List

iterator

public java.util.Iterator iterator()
Specified by:
iterator in interface java.util.List

lastIndexOf

public int lastIndexOf(java.lang.Object o)
Specified by:
lastIndexOf in interface java.util.List

listIterator

public java.util.ListIterator listIterator()
Specified by:
listIterator in interface java.util.List

listIterator

public java.util.ListIterator listIterator(int index)
Specified by:
listIterator in interface java.util.List

remove

public java.lang.Object remove(int index)
Specified by:
remove in interface java.util.List

remove

public boolean remove(java.lang.Object o)
Specified by:
remove in interface java.util.List

removeAll

public boolean removeAll(java.util.Collection c)
Specified by:
removeAll in interface java.util.List

retainAll

public boolean retainAll(java.util.Collection c)
Specified by:
retainAll in interface java.util.List

set

public java.lang.Object set(int index,
                            java.lang.Object element)
Specified by:
set in interface java.util.List

size

public int size()
Specified by:
size in interface java.util.List

subList

public java.util.List subList(int fromIndex,
                              int toIndex)
Specified by:
subList in interface java.util.List

toArray

public java.lang.Object[] toArray()
Specified by:
toArray in interface java.util.List

toArray

public java.lang.Object[] toArray(java.lang.Object[] a)
Specified by:
toArray in interface java.util.List

toString

public java.lang.String toString()
Diese Methode gibt den Zustand des CompoundOperators inkl. der Zust?nde seiner KomponentenOperatoren in einen aus.
Returns:
String, der den Zustand repr?sentiert
Overrides:
toString in class Operator
Since:
1.1

equals

public boolean equals(java.lang.Object o)
Specified by:
equals in interface java.util.List
Overrides:
equals in class Operator

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Diese Methode erzeugt ein Deepcopy des CompoundOperator.
Returns:
Klon des CompoundOperators
Overrides:
clone in class Operator
Since:
1.4

deepClone

public Operator deepClone()
                   throws java.lang.CloneNotSupportedException
Deprecated.  
Diese Methode erzeugt ein Deepcopy des CompoundOperators.
Returns:
Klon des CompoundOperators
Overrides:
deepClone in class Operator
Since:
1.5