package com.hypixel.hytale.codec.lookup; import com.hypixel.hytale.codec.Codec; import java.util.Collections; import java.util.Map; import java.util.function.Function; import java.util.function.Supplier; import javax.annotation.Nonnull; public class MapProvidedMapCodec extends AMapProvidedMapCodec> { private final Supplier> supplier; public MapProvidedMapCodec(Map codecProvider, Function> mapper, Supplier> supplier) { this(codecProvider, mapper, supplier, true); } public MapProvidedMapCodec(Map codecProvider, Function> mapper, Supplier> supplier, boolean unmodifiable) { super(codecProvider, mapper, unmodifiable); this.supplier = supplier; } @Override public Map createMap() { return this.supplier.get(); } protected String getIdForKey(String key) { return key; } protected String getKeyForId(String id) { return id; } @Nonnull @Override protected Map emptyMap() { return Collections.emptyMap(); } @Nonnull @Override protected Map unmodifiableMap(@Nonnull Map m) { return Collections.unmodifiableMap(m); } }