package com.blundell.quicksand; import com.blundell.quicksand.viscosity.LinearChangeViscosityInterpolator; import com.blundell.quicksand.viscosity.ViscosityInterpolator; import java.util.HashMap; import java.util.Map; class ViscosityInterpolatorMap { private final Map<String, ViscosityInterpolator> viscosityMap; private final ViscosityInterpolator defaultViscosity; public static ViscosityInterpolatorMap newInstance(Map<String, ViscosityInterpolator> viscosities) { Map<String, ViscosityInterpolator> viscosityMap = new HashMap<>(); viscosityMap.putAll(viscosities); ViscosityInterpolator defaultViscosity = LinearChangeViscosityInterpolator.defaultInstance(); return new ViscosityInterpolatorMap(viscosityMap, defaultViscosity); } ViscosityInterpolatorMap(Map<String, ViscosityInterpolator> viscosityMap, ViscosityInterpolator defaultViscosity) { this.viscosityMap = viscosityMap; this.defaultViscosity = defaultViscosity; } public ViscosityInterpolator getFor(String key) { if (viscosityMap.containsKey(key)) { return viscosityMap.get(key); } else { return defaultViscosity; } } }