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