com.fasterxml.jackson.databind.SerializerProvider#isEnabled ( )源码实例Demo

下面列出了com.fasterxml.jackson.databind.SerializerProvider#isEnabled ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: lams   文件: CollectionSerializer.java
@Override
public final void serialize(Collection<?> value, JsonGenerator g, SerializerProvider provider) throws IOException
{
    final int len = value.size();
    if (len == 1) {
        if (((_unwrapSingle == null) &&
                provider.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED))
                || (_unwrapSingle == Boolean.TRUE)) {
            serializeContents(value, g, provider);
            return;
        }
    }
    g.writeStartArray(len);
    serializeContents(value, g, provider);
    g.writeEndArray();
}
 
@Override
public void serializeWithType(
        CharIterable value,
        JsonGenerator g,
        SerializerProvider ctxt,
        TypeSerializer typeSer
) throws IOException {
    g.setCurrentValue(value);
    WritableTypeId typeIdDef;
    if (ctxt.isEnabled(SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS)) {
        typeIdDef = typeSer.writeTypePrefix(g, ctxt, typeSer.typeId(value, JsonToken.START_ARRAY));
        writeContentsAsArray(value, g);
    } else {
        typeIdDef = typeSer.writeTypePrefix(g, ctxt, typeSer.typeId(value, JsonToken.VALUE_STRING));
        char[] chars = value.toArray();
        g.writeString(chars, 0, chars.length);
    }
    typeSer.writeTypeSuffix(g, ctxt, typeIdDef);
}
 
@Override
public void serialize(ZonedDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException,
    JsonProcessingException {
    /* [modules-java8#127]: Serialization of timezone data is disabled by default, but can be
     * turned on by enabling `SerializationFeature.WRITE_DATES_WITH_ZONE_ID`
     */
    if (serializers.isEnabled(SerializationFeature.WRITE_DATES_WITH_ZONE_ID)) {
        gen.writeFieldName(DateTimeFormatter.ISO_ZONED_DATE_TIME.format(value));
    } else if (useTimestamps(serializers)) {
        if (useNanos(serializers)) {
            gen.writeFieldName(DecimalUtils.toBigDecimal(value.toEpochSecond(), value.getNano()).toString());
        } else {
            gen.writeFieldName(String.valueOf(value.toInstant().toEpochMilli()));
        }
    } else {
        gen.writeFieldName(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value));
    }
}
 
@Override
public final void serialize(C value, JsonGenerator gen, SerializerProvider ctxt) throws IOException {
    if (((_unwrapSingle == null) &&
            ctxt.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED))
            || (Boolean.TRUE.equals(_unwrapSingle))) {
        if (hasSingleElement(value)) {
            serializeContents(value, gen);
            return;
        }
    }
    gen.writeStartArray();
    serializeContents(value, gen);
    gen.writeEndArray();
}
 
@Override
public void serialize(CharIterable value, JsonGenerator gen, SerializerProvider provider) throws IOException {
    if (provider.isEnabled(SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS)) {
        gen.writeStartArray();
        writeContentsAsArray(value, gen);
        gen.writeEndArray();
    } else {
        char[] chars = value.toArray();
        gen.writeString(chars, 0, chars.length);
    }
}
 
@Override
public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
    if (provider.isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)) {
        jgen.writeNumber(value.getMillis());
    } else {
        value = value.withZone(DateTimeZone.UTC);
        jgen.writeString(value.toString(ISODateTimeFormat.dateTime()));
    }
}
 
@Override
public void serialize(DateTimeRfc1123 value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
    if (provider.isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)) {
        jgen.writeNumber(value.dateTime().getMillis());
    } else {
        jgen.writeString(value.toString()); //Use the default toString as it is RFC1123.
    }
}
 
public boolean shouldWriteWithZoneId(SerializerProvider ctxt) {
    return (_writeZoneId != null) ? _writeZoneId :
        ctxt.isEnabled(SerializationFeature.WRITE_DATES_WITH_ZONE_ID);
}
 
private static boolean useNanos(SerializerProvider serializers) {
    return serializers.isEnabled(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS);
}
 
private static boolean useTimestamps(SerializerProvider serializers) {
    return serializers.isEnabled(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS);
}
 
private static boolean writeEnumsUsingIndex(SerializerProvider config) {
  return config.isEnabled(SerializationFeature.WRITE_ENUMS_USING_INDEX);
}
 
private static boolean writeEmptyArrays(SerializerProvider config) {
  return config.isEnabled(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS);
}
 
private static boolean writeSingleElementArraysUnwrapped(SerializerProvider config) {
  return config.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED);
}