package alien4cloud.json.deserializer;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import org.alien4cloud.tosca.model.definitions.CapabilityDefinition;
import org.alien4cloud.tosca.model.definitions.RequirementDefinition;
/**
* Utility class to deserialize the unbounded string as a int value for {@link RequirementDefinition} and
* {@link CapabilityDefinition}.
*
* @author luc boutier
*/
public class BoundDeserializer extends StdDeserializer<Integer> {
private static final long serialVersionUID = 4915812266526752966L;
protected BoundDeserializer() {
super(Integer.class);
}
private static final String UNBOUNDED = "unbounded";
@Override
public Integer deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
String value = jp.getValueAsString();
if (UNBOUNDED.equals(value)) {
return Integer.MAX_VALUE;
}
return jp.getIntValue();
}
}