package com.github.kongchen.smp.integration.utils;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.converter.ModelConverter;
import io.swagger.converter.ModelConverterContext;
import io.swagger.jackson.AbstractModelConverter;
import io.swagger.models.properties.Property;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.Iterator;
/**
* A ModelConverter used for testing adding custom model converters.
*/
public class PetIdToStringModelConverter extends AbstractModelConverter {
public PetIdToStringModelConverter() {
super(new ObjectMapper());
}
@Override
public Property resolveProperty(Type type, ModelConverterContext modelConverterContext, Annotation[] annotations, Iterator<ModelConverter> iterator) {
try {
Type expectedType = _mapper.constructType(Class.forName("com.wordnik.sample.model.PetId"));
if (type.equals(expectedType)) {
return super.resolveProperty(_mapper.constructType(Class.forName("java.lang.String")), modelConverterContext, annotations, iterator);
}
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
return super.resolveProperty(type, modelConverterContext, annotations, iterator);
}
}