public Schema resolve()

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;
  }