// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.fasterxml.jackson.databind.deser.std; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonToken; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.jsontype.TypeDeserializer; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.util.RawValue; import java.io.IOException; // Referenced classes of package com.fasterxml.jackson.databind.deser.std: // StdDeserializer abstract class BaseNodeDeserializer extends StdDeserializer { public BaseNodeDeserializer(Class class1) { super(class1); } protected final JsonNode _fromEmbedded(JsonParser jsonparser, DeserializationContext deserializationcontext, JsonNodeFactory jsonnodefactory) throws IOException { jsonparser = ((JsonParser) (jsonparser.getEmbeddedObject())); if (jsonparser == null) { return jsonnodefactory.nullNode(); } if (jsonparser.getClass() == [B) { return jsonnodefactory.binaryNode((byte[])(byte[])jsonparser); } if (jsonparser instanceof RawValue) { return jsonnodefactory.rawValueNode((RawValue)jsonparser); } if (jsonparser instanceof JsonNode) { return (JsonNode)jsonparser; } else { return jsonnodefactory.pojoNode(jsonparser); } } protected final JsonNode _fromFloat(JsonParser jsonparser, DeserializationContext deserializationcontext, JsonNodeFactory jsonnodefactory) throws IOException { if (jsonparser.getNumberType() == com.fasterxml.jackson.core.JsonParser.NumberType.BIG_DECIMAL || deserializationcontext.isEnabled(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS)) { return jsonnodefactory.numberNode(jsonparser.getDecimalValue()); } else { return jsonnodefactory.numberNode(jsonparser.getDoubleValue()); } } protected final JsonNode _fromInt(JsonParser jsonparser, DeserializationContext deserializationcontext, JsonNodeFactory jsonnodefactory) throws IOException { int i = deserializationcontext.getDeserializationFeatures(); if ((F_MASK_INT_COERCIONS & i) != 0) { if (DeserializationFeature.USE_BIG_INTEGER_FOR_INTS.enabledIn(i)) { deserializationcontext = com.fasterxml.jackson.core.JsonParser.NumberType.BIG_INTEGER; } else if (DeserializationFeature.USE_LONG_FOR_INTS.enabledIn(i)) { deserializationcontext = com.fasterxml.jackson.core.JsonParser.NumberType.LONG; } else { deserializationcontext = jsonparser.getNumberType(); } } else { deserializationcontext = jsonparser.getNumberType(); } if (deserializationcontext == com.fasterxml.jackson.core.JsonParser.NumberType.INT) { return jsonnodefactory.numberNode(jsonparser.getIntValue()); } if (deserializationcontext == com.fasterxml.jackson.core.JsonParser.NumberType.LONG) { return jsonnodefactory.numberNode(jsonparser.getLongValue()); } else { return jsonnodefactory.numberNode(jsonparser.getBigIntegerValue()); } } protected void _handleDuplicateField(JsonParser jsonparser, DeserializationContext deserializationcontext, JsonNodeFactory jsonnodefactory, String s, ObjectNode objectnode, JsonNode jsonnode, JsonNode jsonnode1) throws JsonProcessingException { if (deserializationcontext.isEnabled(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY)) { _reportProblem(jsonparser, (new StringBuilder()).append("Duplicate field '").append(s).append("' for ObjectNode: not allowed when FAIL_ON_READING_DUP_TREE_KEY enabled").toString()); } } protected void _reportProblem(JsonParser jsonparser, String s) throws JsonMappingException { throw new JsonMappingException(s, jsonparser.getTokenLocation()); } protected final JsonNode deserializeAny(JsonParser jsonparser, DeserializationContext deserializationcontext, JsonNodeFactory jsonnodefactory) throws IOException { switch (jsonparser.getCurrentTokenId()) { case 4: // '\004' default: throw deserializationcontext.mappingException(handledType()); case 1: // '\001' case 2: // '\002' return deserializeObject(jsonparser, deserializationcontext, jsonnodefactory); case 3: // '\003' return deserializeArray(jsonparser, deserializationcontext, jsonnodefactory); case 5: // '\005' return deserializeObject(jsonparser, deserializationcontext, jsonnodefactory); case 12: // '\f' return _fromEmbedded(jsonparser, deserializationcontext, jsonnodefactory); case 6: // '\006' return jsonnodefactory.textNode(jsonparser.getText()); case 7: // '\007' return _fromInt(jsonparser, deserializationcontext, jsonnodefactory); case 8: // '\b' return _fromFloat(jsonparser, deserializationcontext, jsonnodefactory); case 9: // '\t' return jsonnodefactory.booleanNode(true); case 10: // '\n' return jsonnodefactory.booleanNode(false); case 11: // '\013' return jsonnodefactory.nullNode(); } } protected final ArrayNode deserializeArray(JsonParser jsonparser, DeserializationContext deserializationcontext, JsonNodeFactory jsonnodefactory) throws IOException { ArrayNode arraynode = jsonnodefactory.arrayNode(); do { JsonToken jsontoken = jsonparser.nextToken(); if (jsontoken == null) { throw deserializationcontext.mappingException("Unexpected end-of-input when binding data into ArrayNode"); } switch (jsontoken.id()) { case 2: // '\002' case 5: // '\005' case 8: // '\b' default: arraynode.add(deserializeAny(jsonparser, deserializationcontext, jsonnodefactory)); break; case 1: // '\001' arraynode.add(deserializeObject(jsonparser, deserializationcontext, jsonnodefactory)); break; case 3: // '\003' arraynode.add(deserializeArray(jsonparser, deserializationcontext, jsonnodefactory)); break; case 12: // '\f' arraynode.add(_fromEmbedded(jsonparser, deserializationcontext, jsonnodefactory)); // fall through case 6: // '\006' arraynode.add(jsonnodefactory.textNode(jsonparser.getText())); break; case 7: // '\007' arraynode.add(_fromInt(jsonparser, deserializationcontext, jsonnodefactory)); break; case 9: // '\t' arraynode.add(jsonnodefactory.booleanNode(true)); break; case 10: // '\n' arraynode.add(jsonnodefactory.booleanNode(false)); break; case 11: // '\013' arraynode.add(jsonnodefactory.nullNode()); break; case 4: // '\004' return arraynode; } } while (true); } protected final ObjectNode deserializeObject(JsonParser jsonparser, DeserializationContext deserializationcontext, JsonNodeFactory jsonnodefactory) throws IOException { ObjectNode objectnode = jsonnodefactory.objectNode(); if (!jsonparser.isExpectedStartObjectToken()) goto _L2; else goto _L1 _L1: String s = jsonparser.nextFieldName(); _L14: if (s == null) goto _L4; else goto _L3 _L3: jsonparser.nextToken().id(); JVM INSTR tableswitch 1 12: default 92 // 1 188 // 2 92 // 3 200 // 4 92 // 5 92 // 6 224 // 7 237 // 8 92 // 9 249 // 10 259 // 11 269 // 12 212; goto _L5 _L6 _L5 _L7 _L5 _L5 _L8 _L9 _L5 _L10 _L11 _L12 _L13 _L12: break MISSING_BLOCK_LABEL_269; _L5: Object obj = deserializeAny(jsonparser, deserializationcontext, jsonnodefactory); _L16: JsonNode jsonnode = objectnode.replace(s, ((JsonNode) (obj))); if (jsonnode != null) { _handleDuplicateField(jsonparser, deserializationcontext, jsonnodefactory, s, objectnode, jsonnode, ((JsonNode) (obj))); } s = jsonparser.nextFieldName(); goto _L14 _L2: obj = jsonparser.getCurrentToken(); if (obj != JsonToken.END_OBJECT) goto _L15; else goto _L4 _L4: return objectnode; _L15: if (obj != JsonToken.FIELD_NAME) { throw deserializationcontext.mappingException(handledType(), jsonparser.getCurrentToken()); } s = jsonparser.getCurrentName(); goto _L14 _L6: obj = deserializeObject(jsonparser, deserializationcontext, jsonnodefactory); goto _L16 _L7: obj = deserializeArray(jsonparser, deserializationcontext, jsonnodefactory); goto _L16 _L13: obj = _fromEmbedded(jsonparser, deserializationcontext, jsonnodefactory); goto _L16 _L8: obj = jsonnodefactory.textNode(jsonparser.getText()); goto _L16 _L9: obj = _fromInt(jsonparser, deserializationcontext, jsonnodefactory); goto _L16 _L10: obj = jsonnodefactory.booleanNode(true); goto _L16 _L11: obj = jsonnodefactory.booleanNode(false); goto _L16 obj = jsonnodefactory.nullNode(); goto _L16 } public Object deserializeWithType(JsonParser jsonparser, DeserializationContext deserializationcontext, TypeDeserializer typedeserializer) throws IOException { return typedeserializer.deserializeTypedFromAny(jsonparser, deserializationcontext); } public boolean isCachable() { return true; } }