PeriodKeyDeserializer.java
package tools.jackson.datatype.joda.deser.key;
import org.joda.time.Period;
import tools.jackson.core.JacksonException;
import tools.jackson.databind.DeserializationContext;
import java.io.IOException;
public class PeriodKeyDeserializer extends JodaKeyDeserializer
{
@Override
protected Object deserialize(String key, DeserializationContext ctxt)
throws JacksonException
{
try {
return PERIOD_FORMAT.parsePeriod(ctxt, key);
} catch (IOException e) {
throw _wrapJodaFailure(e);
} catch (IllegalArgumentException | ArithmeticException e) {
// includes `NumberFormatException` for out-of-range components
return ctxt.handleWeirdKey(Period.class, key,
"Invalid Period value: %s", e.getMessage());
}
}
}