/** * Gets a simple class name for the given class. * * @param clazz the class to get the simple class name for. * @return the simple class name or the full class name if the clazz is * unknown or a conflict is found. */ public static String getSimpleClassName(final Class<?> clazz) { return SimpleClassNameCache.getSimpleClassName(clazz); }
@Override public void serialize(final Class<?> value, final JsonGenerator jgen, final SerializerProvider provider) throws IOException, JsonGenerationException { jgen.writeString(SimpleClassNameCache.getSimpleClassName(value)); } }
@Override public void serialize(final Object value, final JsonGenerator g, final SerializerProvider provider) throws IOException { String str; Class<?> cls = value.getClass(); if (cls == String.class) { str = (String) value; } else if (cls.isEnum()) { // 24-Sep-2015, tatu: Minor improvement over older (2.6.2 and before) code: at least // use name/toString() variation for as per configuration Enum<?> en = (Enum<?>) value; if (provider.isEnabled(SerializationFeature.WRITE_ENUMS_USING_TO_STRING)) { str = en.toString(); } else { str = en.name(); } } else if (value instanceof Date) { provider.defaultSerializeDateKey((Date) value, g); return; } else if (cls == Class.class) { str = SimpleClassNameCache.getSimpleClassName(((Class<?>) value)); } else { str = value.toString(); } g.writeFieldName(str); } }