protected void serializeContentsUsing(EnumMap<? extends Enum<?>,?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> valueSer) throws IOException, JsonGenerationException { EnumValues keyEnums = _keyEnums; for (Map.Entry<? extends Enum<?>,?> entry : value.entrySet()) { Enum<?> key = entry.getKey(); if (keyEnums == null) { // clumsy, but has to do for now: StdSerializer<?> ser = (StdSerializer<?>) provider.findValueSerializer(key.getDeclaringClass(), _property); keyEnums = ((EnumSerializer) ser).getEnumValues(); } jgen.writeFieldName(keyEnums.serializedValueFor(key)); Object valueElem = entry.getValue(); if (valueElem == null) { provider.defaultSerializeNull(jgen); } else { try { valueSer.serialize(valueElem, jgen, provider); } catch (Exception e) { wrapAndThrow(provider, e, value, entry.getKey().name()); } } } }
protected void serializeContentsUsing(EnumMap<? extends Enum<?>,?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> valueSer) throws IOException, JsonGenerationException { EnumValues keyEnums = _keyEnums; for (Map.Entry<? extends Enum<?>,?> entry : value.entrySet()) { Enum<?> key = entry.getKey(); if (keyEnums == null) { // clumsy, but has to do for now: StdSerializer<?> ser = (StdSerializer<?>) provider.findValueSerializer(key.getDeclaringClass(), _property); keyEnums = ((EnumSerializer) ser).getEnumValues(); } jgen.writeFieldName(keyEnums.serializedValueFor(key)); Object valueElem = entry.getValue(); if (valueElem == null) { provider.defaultSerializeNull(jgen); } else { try { valueSer.serialize(valueElem, jgen, provider); } catch (Exception e) { wrapAndThrow(provider, e, value, entry.getKey().name()); } } } }
/** * Introspect serializer for enumerations * * @param enumSerializer * @param type */ private void introspectSerializer(EnumSerializer enumSerializer, CustomType type) { for (SerializableString value : enumSerializer.getEnumValues().values()) { type.addEnumeration(value.getValue()); } }
keyEnums = ((EnumSerializer) ser).getEnumValues();
keyEnums = ((EnumSerializer) ser).getEnumValues();
keyEnums = ((EnumSerializer) ser).getEnumValues();
keyEnums = ((EnumSerializer) ser).getEnumValues();
keyEnums = ((EnumSerializer) ser).getEnumValues();
keyEnums = ((EnumSerializer) ser).getEnumValues();
throw new IllegalStateException("Can not resolve Enum type of EnumMap: "+typeHint); keyEnums = ((EnumSerializer) enumSer).getEnumValues();
throw new IllegalStateException("Can not resolve Enum type of EnumMap: "+typeHint); keyEnums = ((EnumSerializer) enumSer).getEnumValues();