summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/translation/MappingTranslator.java
blob: 529d0edbc7bf2e553f8fed760b361ea9fbc89950 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package cuchaz.enigma.translation;

import cuchaz.enigma.translation.mapping.EntryMapping;
import cuchaz.enigma.translation.mapping.EntryResolver;
import cuchaz.enigma.translation.mapping.EntryMap;

public class MappingTranslator implements Translator {
	private final EntryMap<EntryMapping> mappings;
	private final EntryResolver resolver;

	public MappingTranslator(EntryMap<EntryMapping> mappings, EntryResolver resolver) {
		this.mappings = mappings;
		this.resolver = resolver;
	}

	@SuppressWarnings("unchecked")
	@Override
	public <T extends Translatable> T translate(T translatable) {
		if (translatable == null) {
			return null;
		}
		return (T) translatable.translate(this, resolver, mappings);
	}
}