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

import com.google.common.collect.ImmutableListMultimap;
import cuchaz.enigma.api.service.EnigmaService;
import cuchaz.enigma.api.service.EnigmaServiceType;

import java.util.Collections;
import java.util.List;

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

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

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