Skip to content

Method: GDDefaultStrategyFactoryProvider()

1: /*
2: * Copyright © 2021-2023 Fachhochschule für die Wirtschaft (FHDW) Hannover
3: *
4: * This file is part of ipspiel24-GD.
5: *
6: * ipspiel24-GD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
7: * License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
8: * version.
9: *
10: * ipspiel24-GD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
11: * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12: *
13: * You should have received a copy of the GNU General Public License along with ipspiel24-GD. If not, see
14: * <http://www.gnu.org/licenses/>.
15: */
16: package de.fhdw.gaming.GefangenenDilemma.domain.factory;
17:
18: import java.util.ArrayList;
19: import java.util.List;
20: import java.util.ServiceLoader;
21:
22: /**
23: * Implements {@link GDStrategyFactoryProvider} by using the {@link ServiceLoader}.
24: */
25: public final class GDDefaultStrategyFactoryProvider implements GDStrategyFactoryProvider {
26:
27: @Override
28: public List<GDStrategyFactory> getStrategyFactories() {
29: final ServiceLoader<
30: GDStrategyFactory> services = ServiceLoader.load(GDStrategyFactory.class);
31: final List<GDStrategyFactory> list = new ArrayList<>();
32: services.iterator().forEachRemaining(list::add);
33: return list;
34: }
35: }