summaryrefslogtreecommitdiff
path: root/enigma/src/main/java/cuchaz/enigma/EnigmaServices.java
blob: 3681209ad972ecd183dde0e190963858b9d7ff26 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package cuchaz.enigma;

import java.util.List;
import java.util.Map;

import cuchaz.enigma.api.service.EnigmaService;
import cuchaz.enigma.api.service.EnigmaServiceType;

public final class EnigmaServices {
	private final Map<EnigmaServiceType<?>, List<EnigmaService>> services;

	EnigmaServices(Map<EnigmaServiceType<?>, List<EnigmaService>> services) {
		this.services = services;
	}

	@SuppressWarnings("unchecked")
	public <T extends EnigmaService> List<T> get(EnigmaServiceType<T> type) {
		return (List<T>) services.getOrDefault(type, List.of());
	}
}