Skip to contentMethod: doIt()
      1: package servicekommandos.rollenbelegung;
2: 
3: import auftraege.ProduktionsAuftrag;
4: import maschine.Maschine;
5: import mensch.Mitarbeiter;
6: import rollenbelegung.ErmittelteBelegungen;
7: import rollenbelegung.Produktionsplaner;
8: import rollenbelegung.SortierParameter.MaschinenRollenbelegungServiceParameter;
9: import schnittstelle.kommandoArchitektur.KommandoOhneExceptionMitResultat;
10: import schnittstelle.kommandoArchitektur.KommandoVisitor;
11: import util.exceptions.PPSException;
12: 
13: import java.util.List;
14: 
15: /**
16:  * Klasse, welche ein Kommando darstellt, welches die Operation findeBelegungAberErzeugeKeineKalendereintraege
17:  * aus {@link rollenbelegung.MaschinenRollenbelegungService} kapselt.
18:  */
19: public final class FindeBelegungAberErzeugeKeineKalendereintraegeKommando extends KommandoOhneExceptionMitResultat<ErmittelteBelegungen> {
20: 
21: 
22:     private final MaschinenRollenbelegungServiceParameter parameter;
23:     private final List<ProduktionsAuftrag> produktionsAuftraege;
24:     private final List<Mitarbeiter> mitarbeiter;
25:     private final List<Maschine> maschinen;
26: 
27:     private FindeBelegungAberErzeugeKeineKalendereintraegeKommando(final List<Maschine> maschinen,
28:                                                                    final List<Mitarbeiter> mitarbeiter,
29:                                                                    final List<ProduktionsAuftrag> produktionsAuftraege,
30:                                                                    final MaschinenRollenbelegungServiceParameter parameter) {
31:         this.parameter = parameter;
32:         this.produktionsAuftraege = produktionsAuftraege;
33:         this.mitarbeiter = mitarbeiter;
34:         this.maschinen = maschinen;
35: 
36:     }
37: 
38:     /**
39:      * @param maschinen            Maschinen für den MaschinenRollenbelegungService
40:      * @param mitarbeiter          Mitarbeiter für den MaschinenRollenbelegungService
41:      * @param produktionsAuftraege Produktionsaufträge für den MaschinenRollenbelegungService
42:      * @param parameter            Parameter für den MaschinenRollenbelegungService
43:      * @return ein Kommando für die findeBelegungAberErzeugeKeineKalendereintraege() Operation aus dem MaschinenRollenbelegungService
44:      */
45:     public static FindeBelegungAberErzeugeKeineKalendereintraegeKommando create(final List<Maschine> maschinen,
46:                                                                                 final List<Mitarbeiter> mitarbeiter,
47:                                                                                 final List<ProduktionsAuftrag> produktionsAuftraege,
48:                                                                                 final MaschinenRollenbelegungServiceParameter parameter) {
49:         return new FindeBelegungAberErzeugeKeineKalendereintraegeKommando(maschinen, mitarbeiter, produktionsAuftraege, parameter);
50:     }
51: 
52: 
53:     @Override
54:     protected ErmittelteBelegungen doIt() {
55:         return new Produktionsplaner().findeBelegungAberErzeugeKeineKalendereintraege(this.maschinen, this.mitarbeiter, this.produktionsAuftraege, this.parameter);
56:     }
57: 
58:     @Override
59:     public void accept(final KommandoVisitor v) throws PPSException {
60:         // TODO Wenn man den Visitor dies handeln lässt, muss der Visitor aus model das Packet service kennen.
61:         // Service kennt aber schon model und wir hätten eine circular dependency
62:     }
63: }