Skip to content

Method: executeCommand()

1: package schnittstelle.kommandoArchitektur;
2:
3: /**
4: * Diese Klasse beschreibt Kommandos, welche ein Resultat liefern aber bei welchen keine Exception auftreten kann.
5: *
6: * @param <T>
7: * Typ des Resultats des definierten Kommandos.
8: */
9: public abstract class KommandoOhneExceptionMitResultat<T> extends Kommando {
10:
11:         private T resultat;
12:
13:         @Override
14:         protected void executeCommand() {
15:                 this.resultat = this.doIt();
16:         }
17:
18:         /**
19:          * Diese Operation definiert was genau passieren soll, wenn das Kommando ausgeführt wird.
20:          *
21:          * @return das Resultat des Kommandos. (wird automatisch in der Variable resultat gespeichert!)
22:          */
23:         protected abstract T doIt();
24:
25:         /**
26:          * @return das Resultat des Kommandos. Ist null, falls es nicht ausgeführt wurde.
27:          */
28:         public T getResultat() {
29:                 // TODO Art: Feature request; um Nebenläufigkeit zu ermöglichen, muss hier das "executed" geprüft werden.
30:                 return this.resultat;
31:         }
32:
33: }