Skip to content

Method: toString()

1: package de.fhdw.gaming.ipspiel22.vierGewinnt.domain.impl;
2:
3: import de.fhdw.gaming.core.domain.AbstractPlayer;
4: import de.fhdw.gaming.ipspiel22.vierGewinnt.domain.VGFieldState;
5: import de.fhdw.gaming.ipspiel22.vierGewinnt.domain.VGPlayer;
6:
7: /**
8: * Implements {@link VGPlayer}.
9: */
10: public class VGPlayerImpl extends AbstractPlayer<VGPlayer> implements VGPlayer {
11:
12: /**
13: * {@code true} if this player uses the red tokens, or {@code false} if she uses the yellow tokens.
14: */
15: private final boolean usingRedChips;
16:
17: /**
18: * Creates a Vier gewinnt player.
19: *
20: * @param name The name of the player.
21: * @param usingRedChips The possible outcomes of this player. The key for the first-level map is the answer of
22: * the first player, the key for the second-level map is the answer of the second player.
23: */
24: VGPlayerImpl(final String name, final boolean usingRedChips) {
25: super(name);
26: this.usingRedChips = usingRedChips;
27: }
28:
29: /**
30: * Creates a Vier gewinnt player.
31: *
32: * @param source The {@link VGPlayer} to copy.
33: */
34: VGPlayerImpl(final VGPlayer source) {
35: super(source);
36: this.usingRedChips = source.isUsingRedChips();
37: }
38:
39: @Override
40: public String toString() {
41: return String
42: .format("GDPlayer[name=%s, chips=%s, state=%s, outcome=%s]",
43: this.getName(),
44:• this.usingRedChips ? VGFieldState.RED.toString() : VGFieldState.YELLOW.toString(),
45: this.getState(), this.getOutcome());
46: }
47:
48: @Override
49: public boolean equals(final Object obj) {
50: if (obj instanceof VGPlayerImpl) {
51: final VGPlayerImpl other = (VGPlayerImpl) obj;
52: return super.equals(obj) && this.usingRedChips == other.usingRedChips;
53: }
54: return false;
55: }
56:
57: @Override
58: public int hashCode() {
59: return super.hashCode() ^ Boolean.hashCode(this.usingRedChips);
60: }
61:
62: @Override
63: public boolean isUsingRedChips() {
64: return this.usingRedChips;
65: }
66:
67: @Override
68: public VGPlayer deepCopy() {
69: return new VGPlayerImpl(this);
70: }
71: }