parserWrapper.nextToken();
parserWrapper.verifyCurrentToken( JsonToken.FIELD_NAME );
String currentName = parserWrapper.getCurrentName();
if ( !PROPERTY_SUB_TYPE.equals( currentName ) ) {
throw new JsonParseException( "Invalid field. Expected <" + PROPERTY_SUB_TYPE + "> but was <" + currentName + ">", parserWrapper.getCurrentLocation() );
}
parserWrapper.nextToken();
String type = deserializeFrom.getText();
if ( type == null ) {
throw new JsonParseException( "Attribute" + PROPERTY_SUB_TYPE + " not found. Cannot find strategy.", deserializeFrom.getCurrentLocation() );
}
SerializingStrategy<? extends T, JsonGenerator, JsonParser, JsonProcessingException, OutputStream, InputStream> strategy = serializingStrategySupport.findStrategy( type );
Version resolvedVersion = serializingStrategySupport.resolveVersion( strategy, formatVersion );
return strategy.deserialize( deserializeFrom, resolvedVersion );