package cuchaz.enigma; import com.google.common.collect.ImmutableMap; import cuchaz.enigma.api.service.EnigmaService; import cuchaz.enigma.api.service.EnigmaServiceType; import java.util.Optional; public final class EnigmaServices { private final ImmutableMap, EnigmaService> services; EnigmaServices(ImmutableMap, EnigmaService> services) { this.services = services; } @SuppressWarnings("unchecked") public Optional get(EnigmaServiceType type) { EnigmaService service = services.get(type); return Optional.ofNullable((T) service); } }