Skip to contentMethod: toString()
      1: package de.fhdw.gaming.ipspiel23.dilemma.strategy.internals.cooperate;
2: 
3: import java.util.Optional;
4: 
5: import de.fhdw.gaming.ipspiel23.dilemma.domain.IDilemmaPlayer;
6: import de.fhdw.gaming.ipspiel23.dilemma.domain.IDilemmaState;
7: import de.fhdw.gaming.ipspiel23.dilemma.domain.IDilemmaStrategy;
8: import de.fhdw.gaming.ipspiel23.dilemma.moves.IDilemmaMove;
9: import de.fhdw.gaming.ipspiel23.dilemma.moves.IDilemmaMoveFactory;
10: import de.fhdw.gaming.ipspiel23.dilemma.strategy.internals.DilemmaStrategy;
11: 
12: /**
13:  * Implements {@link IDilemmaStrategy} by staying silent.
14:  */
15: public class DilemmaCooperateStrategy extends DilemmaStrategy {
16: 
17:     /**
18:      * Creates an {@link DilemmaCooperateStrategy}.
19:      *
20:      * @param moveFactory The factory for creating Dilemma moves.
21:      */
22:     DilemmaCooperateStrategy(final IDilemmaMoveFactory moveFactory) {
23:         super(moveFactory);
24:     }
25:     
26:     @Override
27:     public Optional<IDilemmaMove> computeNextMove(final int gameId,
28:             final IDilemmaPlayer player,
29:             final IDilemmaState state) {
30:         return Optional.of(getMoveFactory().createCooperateMove());
31:     }
32: 
33:     @Override
34:     public String toString() {
35:         return DilemmaCooperateStrategy.class.getSimpleName();
36:     }
37: 
38:     @Override
39:     public boolean equals(final Object object) {
40:         if (object instanceof DilemmaCooperateStrategy) {
41:             final DilemmaCooperateStrategy coopStrategy = (DilemmaCooperateStrategy) object;
42:             return this.toString().equals(coopStrategy.toString());
43:         } else {
44:             return false;
45:         }
46:     }
47:     
48:     @Override
49:     public int hashCode() {
50:         return super.hashCode() * this.toString().hashCode();
51:     }
52: }