in swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/extend/ModelResolverExt.java [101:133]
public Schema resolve(AnnotatedType propType, ModelConverterContext context, Iterator<ModelConverter> next) {
PropertyCreator creator = propertyCreatorMap.get(propType.getType());
if (creator != null) {
return creator.createProperty();
}
if (EnumUtils.isDynamicEnum(propType.getType())) {
return resolveDynamicEnum(TypeFactory.defaultInstance().constructType(propType.getType()));
}
Schema result = super.resolve(propType, context, next);
if (SwaggerGeneratorFeature.isLocalExtJavaClassInVendor()
&& !StringUtils.isEmpty(result.get$ref())) {
Schema referencedSchema = context.getDefinedModels() != null
? context.getDefinedModels().get(SwaggerUtils.getSchemaName(result.get$ref())) : null;
if (referencedSchema != null) {
if (referencedSchema.getExtensions() == null) {
referencedSchema.setExtensions(new HashMap<>());
}
if (propType.getType() instanceof JavaType) {
referencedSchema.getExtensions().put(SwaggerConst.EXT_JAVA_CLASS,
((JavaType) propType.getType()).toCanonical());
} else if (propType.getType() instanceof Class<?>) {
referencedSchema.getExtensions().put(SwaggerConst.EXT_JAVA_CLASS,
((Class<?>) propType.getType()).getCanonicalName());
} else {
referencedSchema.getExtensions().put(SwaggerConst.EXT_JAVA_CLASS,
TypeFactory.defaultInstance().constructType(propType.getType()).toCanonical());
}
}
}
return result;
}