// 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.ser.std; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonIntegerFormatVisitor; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonNumberFormatVisitor; import java.io.IOException; import java.lang.reflect.Type; import java.math.BigDecimal; import java.math.BigInteger; // Referenced classes of package com.fasterxml.jackson.databind.ser.std: // StdScalarSerializer public class NumberSerializer extends StdScalarSerializer { public static final NumberSerializer instance = new NumberSerializer(java/lang/Number); protected final boolean _isInt; public NumberSerializer() { super(java/lang/Number); _isInt = false; } public NumberSerializer(Class class1) { boolean flag = false; super(class1, false); if (class1 == java/math/BigInteger) { flag = true; } _isInt = flag; } public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper jsonformatvisitorwrapper, JavaType javatype) throws JsonMappingException { if (_isInt) { jsonformatvisitorwrapper = jsonformatvisitorwrapper.expectIntegerFormat(javatype); if (jsonformatvisitorwrapper != null) { jsonformatvisitorwrapper.numberType(com.fasterxml.jackson.core.JsonParser.NumberType.BIG_INTEGER); } } else { jsonformatvisitorwrapper = jsonformatvisitorwrapper.expectNumberFormat(javatype); if (jsonformatvisitorwrapper != null && handledType() == java/math/BigDecimal) { jsonformatvisitorwrapper.numberType(com.fasterxml.jackson.core.JsonParser.NumberType.BIG_DECIMAL); return; } } } public JsonNode getSchema(SerializerProvider serializerprovider, Type type) { if (_isInt) { serializerprovider = "integer"; } else { serializerprovider = "number"; } return createSchemaNode(serializerprovider, true); } public void serialize(Number number, JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws IOException { if (number instanceof BigDecimal) { jsongenerator.writeNumber((BigDecimal)number); return; } if (number instanceof BigInteger) { jsongenerator.writeNumber((BigInteger)number); return; } if (number instanceof Integer) { jsongenerator.writeNumber(number.intValue()); return; } if (number instanceof Long) { jsongenerator.writeNumber(number.longValue()); return; } if (number instanceof Double) { jsongenerator.writeNumber(number.doubleValue()); return; } if (number instanceof Float) { jsongenerator.writeNumber(number.floatValue()); return; } if ((number instanceof Byte) || (number instanceof Short)) { jsongenerator.writeNumber(number.intValue()); return; } else { jsongenerator.writeNumber(number.toString()); return; } } public volatile void serialize(Object obj, JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws IOException { serialize((Number)obj, jsongenerator, serializerprovider); } }