public IiifModule() { super("iiif-module"); // This will set the ResourceSerializer. We can't set it directly, since it needs to be passed // the default serializer. this.setSerializerModifier(new SerializerModifier()); this.setDeserializerModifier(new DeserializerModifier()); // Just use MimeType's getTypeName and String constructor for serializing/deserializing it this.addSerializer(new StdDelegatingSerializer(MimeType.class, toString(MimeType::getTypeName))); this.addDeserializer(MimeType.class, new StdDelegatingDeserializer<>(fromString(MimeType::fromTypename))); }
public JsonSerializer<Object> createSerializer(SerializerProvider paramSerializerProvider, JavaType paramJavaType) { SerializationConfig localSerializationConfig = paramSerializerProvider.getConfig(); BeanDescription localBeanDescription = localSerializationConfig.introspect(paramJavaType); JsonSerializer localJsonSerializer = findSerializerFromAnnotation(paramSerializerProvider, localBeanDescription.getClassInfo()); if (localJsonSerializer != null) return localJsonSerializer; JavaType localJavaType1 = modifyTypeByAnnotation(localSerializationConfig, localBeanDescription.getClassInfo(), paramJavaType); boolean bool; if (localJavaType1 == paramJavaType) { bool = false; } else { bool = true; if (!localJavaType1.hasRawClass(paramJavaType.getRawClass())) localBeanDescription = localSerializationConfig.introspect(localJavaType1); } Converter localConverter = localBeanDescription.findSerializationConverter(); if (localConverter == null) return _createSerializer2(paramSerializerProvider, localJavaType1, localBeanDescription, bool); JavaType localJavaType2 = localConverter.getOutputType(paramSerializerProvider.getTypeFactory()); if (!localJavaType2.hasRawClass(localJavaType1.getRawClass())) localBeanDescription = localSerializationConfig.introspect(localJavaType2); return new StdDelegatingSerializer(localConverter, localJavaType2, _createSerializer2(paramSerializerProvider, localJavaType2, localBeanDescription, true)); }
protected JsonSerializer<?> findConvertingSerializer(SerializerProvider paramSerializerProvider, Annotated paramAnnotated, JsonSerializer<?> paramJsonSerializer) { Converter localConverter = findConverter(paramSerializerProvider, paramAnnotated); if (localConverter == null) return paramJsonSerializer; return new StdDelegatingSerializer(localConverter, localConverter.getOutputType(paramSerializerProvider.getTypeFactory()), paramJsonSerializer); }
@Override protected StdDelegatingSerializer withDelegate(Converter<Object,?> converter, JavaType delegateType, JsonSerializer<?> delegateSerializer) { return new StdDelegatingSerializer(converter, delegateType, delegateSerializer); }