package cc.blynk.server.core.model;
import cc.blynk.server.core.model.enums.PinType;
import cc.blynk.utils.ParseUtil;
import cc.blynk.utils.StringUtils;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.KeyDeserializer;
import java.io.IOException;
/**
* The Blynk Project.
* Created by Dmitriy Dumanskiy.
* Created on 19.11.16.
*/
public class PinStorageKeyDeserializer extends KeyDeserializer {
@Override
public PinStorageKey deserializeKey(String key, DeserializationContext ctx) throws IOException {
//parsing "123-v24"
int indexOf = key.indexOf(StringUtils.DEVICE_SEPARATOR);
int deviceId = ParseUtil.parseInt(key.substring(0, indexOf));
PinType pinType = PinType.getPinType(key.charAt(indexOf + 1));
byte pin = ParseUtil.parseByte(key.substring(indexOf + 2, key.length()));
return new PinStorageKey(deviceId, pinType, pin);
}
}