Skip to content

Package: FzgGameBuilder

FzgGameBuilder

Coverage

1: package de.fhdw.gaming.ipspiel23.freizeitgestaltung.domain;
2:
3: import de.fhdw.gaming.core.domain.GameBuilder;
4: import de.fhdw.gaming.core.domain.GameException;
5: import de.fhdw.gaming.core.domain.ObserverFactoryProvider;
6:
7: /**
8: * Builder to create a Game.
9: *
10: */
11: public interface FzgGameBuilder extends GameBuilder {
12:
13: /**
14: * creates a {@link FzgPlayerBuilder} which creates a Player.
15: *
16: * @return
17: */
18: FzgPlayerBuilder createPlayerBuilder();
19:
20: /**
21: * Adds a player to the game.
22: *
23: * @param player The player.
24: * @param strategy The players strategy.
25: * @throws GameException thrown if adding the player is not allowed.
26: */
27: FzgGameBuilder addPlayer(FzgPlayer player, FzgStrategy strategy) throws GameException;
28:
29: /**
30: * Changes the {@link ObserverFactoryProvider}.
31: *
32: * @param newObserverFactoryProvider The new {@link ObserverFactoryProvider}.
33: * @return {@code this}
34: */
35: FzgGameBuilder changeObserverFactoryProvider(ObserverFactoryProvider newObserverFactoryProvider);
36:
37: @Override
38: FzgGame build(int id) throws GameException, InterruptedException;
39: }