package mekanism.common.capabilities;
import java.util.HashMap;
import java.util.Map;
import net.minecraft.util.EnumFacing;
public class CapabilityWrapperManager<IMPL, WRAPPER>
{
public Map<EnumFacing, WRAPPER> wrappers = new HashMap<EnumFacing, WRAPPER>();
public Class<IMPL> typeClass;
public Class<WRAPPER> wrapperClass;
public CapabilityWrapperManager(Class<IMPL> type, Class<WRAPPER> wrapper)
{
typeClass = type;
wrapperClass = wrapper;
}
public WRAPPER getWrapper(IMPL impl, EnumFacing facing)
{
try {
if(wrappers.get(facing) == null)
{
WRAPPER wrapper = wrapperClass.getConstructor(typeClass, EnumFacing.class).newInstance(impl, facing);
wrappers.put(facing, wrapper);
}
} catch(Exception e) {
e.printStackTrace();
}
return wrappers.get(facing);
}
}