@Override public LocalDateTime deserialize(JsonParser parser, DeserializationContext context) throws IOException { if (parser.hasTokenId(JsonTokenId.ID_STRING)) { String string = parser.getText().trim(); if (string.length() == 0) { return null; } return LocalDateTime.parse(string, _formatter); } throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string."); } }
@Override public Version deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { switch (p.getCurrentTokenId()) { case JsonTokenId.ID_STRING: final String str = p.getText().trim(); return Version.valueOf(str); case JsonTokenId.ID_NUMBER_INT: return Version.forIntegers(p.getIntValue()); } throw ctxt.wrongTokenException(p, JsonToken.VALUE_STRING, "expected String or Number"); } }
@Override public Date deserialize(final JsonParser parser, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final JsonToken token = parser.getCurrentToken(); if (token == JsonToken.VALUE_STRING) { final String str = parser.getText().trim(); return toDate(Long.parseLong(str)); } else if (token == JsonToken.VALUE_NUMBER_INT) { return toDate(parser.getLongValue()); } throw ctxt.wrongTokenException(parser, JsonToken.VALUE_STRING, "Expected a string or numeric value"); }
throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string."); JsonToken t = parser.getCurrentToken(); if (t == JsonToken.END_ARRAY) { return null; JsonToken t = parser.getCurrentToken(); if (t == JsonToken.END_ARRAY) { return null; if (parser.nextToken() == JsonToken.VALUE_NUMBER_INT) { second = parser.getIntValue(); if (parser.nextToken() == JsonToken.VALUE_NUMBER_INT) { partialSecond = parser.getIntValue(); parser.nextToken(); if (parser.getCurrentToken() == JsonToken.VALUE_STRING) { OffsetTime t = OffsetTime.of(hour, minute, second, partialSecond, ZoneOffset.of(parser.getText())); if (parser.nextToken() != JsonToken.END_ARRAY) { reportWrongToken(parser, context, JsonToken.END_ARRAY, "timezone"); throw context.wrongTokenException(parser, JsonToken.VALUE_STRING, "Expected string for TimeZone after numeric values");
@Override public Filter deserialize(JsonParser p, DeserializationContext ctx) throws IOException, JsonProcessingException { final ImmutableList.Builder<Filter> builder = ImmutableList.builder(); while (p.nextToken() == JsonToken.START_ARRAY) { builder.add(p.readValueAs(Filter.class)); } if (p.getCurrentToken() != JsonToken.END_ARRAY) { throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null); } final List<Filter> filters = builder.build(); if (filters.isEmpty()) { return new FalseFilter(); } if (filters.size() == 1) { return filters.iterator().next(); } return new OrFilter(filters); } }
protected final String _locateTypeId(JsonParser jp, DeserializationContext ctxt) throws IOException { if (!jp.isExpectedStartArrayToken()) { // Need to allow even more customized handling, if something unexpected seen... // but should there be a way to limit this to likely success cases? if (_defaultImpl != null) { return _idResolver.idFromBaseType(); } throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "need JSON Array to contain As.WRAPPER_ARRAY type information for class "+baseTypeName()); } // And then type id as a String JsonToken t = jp.nextToken(); if (t == JsonToken.VALUE_STRING) { String result = jp.getText(); jp.nextToken(); return result; } if (_defaultImpl != null) { return _idResolver.idFromBaseType(); } throw ctxt.wrongTokenException(jp, JsonToken.VALUE_STRING, "need JSON String that contains type id (for subtype of "+baseTypeName()+")"); }
@Override public Filter deserialize(JsonParser p, DeserializationContext ctx) throws IOException, JsonProcessingException { if (p.nextToken() != JsonToken.START_ARRAY) { throw ctx.wrongTokenException(p, JsonToken.START_ARRAY, null); } final Filter filter = p.readValueAs(Filter.class); if (p.nextToken() != JsonToken.END_ARRAY) { throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null); } return new NotFilter(filter); } }
@Override public OptionalLimit deserialize( final JsonParser p, final DeserializationContext ctx ) throws IOException { switch (p.getCurrentToken()) { case VALUE_NUMBER_FLOAT: case VALUE_NUMBER_INT: return new ValueOptionalLimit(p.getIntValue()); default: throw ctx.wrongTokenException(p, JsonToken.VALUE_NUMBER_INT, "Expected limit or null"); } } }
String string = parser.getText().trim(); if (string.length() == 0) { return null; JsonToken t = parser.nextToken(); if (t == JsonToken.END_ARRAY) { return null; if (context.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS) && (t == JsonToken.VALUE_STRING || t==JsonToken.VALUE_EMBEDDED_OBJECT)) { final LocalDate parsed = deserialize(parser, context); if (parser.nextToken() != JsonToken.END_ARRAY) { handleMissingEndArrayForSingle(parser, context); int day = parser.nextIntValue(-1); if (parser.nextToken() != JsonToken.END_ARRAY) { throw context.wrongTokenException(parser, handledType(), JsonToken.END_ARRAY, "Expected array to end");
@Override public Unit deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { JsonToken currentToken = jsonParser.getCurrentToken(); if (currentToken == JsonToken.VALUE_STRING) { return UnitUtil.parseUcum(jsonParser.getText()); } throw deserializationContext.wrongTokenException(jsonParser, JsonToken.VALUE_STRING, "Expected unit value in String format"); } }
@Override public Filter deserialize(JsonParser p, DeserializationContext ctx) throws IOException, JsonProcessingException { final ImmutableList.Builder<Filter> builder = ImmutableList.builder(); while (p.nextToken() == JsonToken.START_ARRAY) { builder.add(p.readValueAs(Filter.class)); } if (p.getCurrentToken() != JsonToken.END_ARRAY) { throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null); } final List<Filter> filters = builder.build(); if (filters.isEmpty()) { return new FalseFilter(); } if (filters.size() == 1) { return filters.iterator().next(); } return new OrFilter(filters); } }
protected final String _locateTypeId(JsonParser jp, DeserializationContext ctxt) throws IOException { if (!jp.isExpectedStartArrayToken()) { // Need to allow even more customized handling, if something unexpected seen... // but should there be a way to limit this to likely success cases? if (_defaultImpl != null) { return _idResolver.idFromBaseType(); } throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "need JSON Array to contain As.WRAPPER_ARRAY type information for class "+baseTypeName()); } // And then type id as a String JsonToken t = jp.nextToken(); if (t == JsonToken.VALUE_STRING) { String result = jp.getText(); jp.nextToken(); return result; } if (_defaultImpl != null) { return _idResolver.idFromBaseType(); } throw ctxt.wrongTokenException(jp, JsonToken.VALUE_STRING, "need JSON String that contains type id (for subtype of "+baseTypeName()+")"); }
@Override public Filter deserialize(JsonParser p, DeserializationContext ctx) throws IOException, JsonProcessingException { if (p.nextToken() != JsonToken.START_ARRAY) { throw ctx.wrongTokenException(p, JsonToken.START_ARRAY, null); } final Filter filter = p.readValueAs(Filter.class); if (p.nextToken() != JsonToken.END_ARRAY) { throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null); } return new NotFilter(filter); } }
@Override public LocalTime deserialize(JsonParser parser, DeserializationContext context) throws IOException { if (parser.hasToken(JsonToken.VALUE_STRING)) { String string = parser.getText().trim(); if (string.length() == 0) { return null; } return LocalTime.parse(string, _formatter); } throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string."); } }
@Override public AggregationOrList deserialize(final JsonParser p, final DeserializationContext c) throws IOException { switch (p.getCurrentToken()) { case START_ARRAY: final List<Aggregation> chain = p.readValueAs(LIST_OF_AGGREGATIONS); return new AggregationOrList(Aggregations.chain(chain)); case START_OBJECT: return new AggregationOrList(Optional.of(p.readValueAs(Aggregation.class))); default: throw c.wrongTokenException(p, JsonToken.START_OBJECT, null); } } }
@Override public Requirement deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException { switch (p.getCurrentTokenId()) { case JsonTokenId.ID_STRING: final String str = p.getText().trim(); try { return buildRequirement(str); } catch (SemverException e) { ctxt.reportMappingException(e.getMessage()); } default: throw ctxt.wrongTokenException(p, JsonToken.VALUE_STRING, null); } }
String string = parser.getText().trim(); if (string.length() == 0) { return null; JsonToken t = parser.nextToken(); if (t == JsonToken.END_ARRAY) { return null; && context.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)) { final YearMonth parsed = deserialize(parser, context); if (parser.nextToken() != JsonToken.END_ARRAY) { handleMissingEndArrayForSingle(parser, context); if (parser.nextToken() != JsonToken.END_ARRAY) { throw context.wrongTokenException(parser, handledType(), JsonToken.END_ARRAY, "Expected array to end");
@Override public ZonedDateTime deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final JsonToken token = p.getCurrentToken(); if (token == JsonToken.VALUE_STRING) { final String str = p.getText().trim(); return DateUtils.toZonedDateTimeUtc(str); } throw ctxt.wrongTokenException(p, JsonToken.VALUE_STRING, "Expected a string"); } }
@Override public Filter deserialize(JsonParser p, DeserializationContext ctx) throws IOException, JsonProcessingException { final ImmutableList.Builder<Filter> builder = ImmutableList.builder(); while (p.nextToken() == JsonToken.START_ARRAY) { builder.add(p.readValueAs(Filter.class)); } if (p.getCurrentToken() != JsonToken.END_ARRAY) { throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null); } final List<Filter> filters = builder.build(); if (filters.isEmpty()) { return new TrueFilter(); } if (filters.size() == 1) { return filters.iterator().next(); } return new AndFilter(filters); } }
protected final String _locateTypeId(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { if (!jp.isExpectedStartArrayToken()) { // [JACKSON-712] Need to allow even more customized handling, if something unexpected seen... // but should there be a way to limit this to likely success cases? if (_defaultImpl != null) { return _idResolver.idFromBaseType(); } throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "need JSON Array to contain As.WRAPPER_ARRAY type information for class "+baseTypeName()); } // And then type id as a String if (jp.nextToken() != JsonToken.VALUE_STRING) { if (_defaultImpl != null) { return _idResolver.idFromBaseType(); } throw ctxt.wrongTokenException(jp, JsonToken.VALUE_STRING, "need JSON String that contains type id (for subtype of "+baseTypeName()+")"); } String result = jp.getText(); jp.nextToken(); return result; } }