protected void mapDefinitionsToExistingClasses() { interfaceCls = ClassUtils.getClassByName(classLoader, interfaceName); if (interfaceCls == null) { return; } // TODO: map }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { builder.addPropertyValue(PojoConst.FIELD_MICROSERVICE_NAME, element.getAttribute(PojoConst.MICROSERVICE_NAME)); String schemaId = element.getAttribute(PojoConst.SCHEMA_ID); String intf = element.getAttribute(PojoConst.INTERFACE); if (StringUtils.isEmpty(intf) && !StringUtils.isEmpty(schemaId)) { // 尝试将schemaId当作接口名使用 Class<?> consumerIntf = ClassUtils.getClassByName(null, schemaId); if (consumerIntf != null) { intf = schemaId; } } builder.addPropertyValue(PojoConst.FIELD_SCHEMA_ID, schemaId); builder.addPropertyValue(PojoConst.FIELD_INTERFACE, intf); if (StringUtils.isEmpty(schemaId) && StringUtils.isEmpty(intf)) { throw new Error("schema-id and interface can not both be empty."); } } }
protected JavaType getOrCreateType(SwaggerToClassGenerator swaggerToClassGenerator, Map<String, Property> properties, String clsName) { Class<?> cls = ClassUtils.getClassByName(swaggerToClassGenerator.getClassLoader(), clsName); if (cls != null) { return swaggerToClassGenerator.getTypeFactory().constructType(cls); } CtClass ctClass = getOrCreateCtClass(swaggerToClassGenerator, properties, clsName); return new CtTypeJavaType(new CtType(ctClass)); }
protected void mapDefinitionsToExistingClasses() { interfaceCls = ClassUtils.getClassByName(classLoader, interfaceName); if (interfaceCls == null) { return; } // TODO: map }
public static Class<?> getOrCreateBodyClass(OperationGenerator operationGenerator, List<BodyParameter> bodyParameters) { SwaggerGenerator swaggerGenerator = operationGenerator.getSwaggerGenerator(); Method method = operationGenerator.getProviderMethod(); String clsName = swaggerGenerator.ensureGetPackageName() + "." + method.getName() + "Body"; Class<?> cls = getClassByName(swaggerGenerator.getClassLoader(), clsName); if (cls != null) { return cls; } ClassConfig classConfig = new ClassConfig(); classConfig.setClassName(clsName); // 1.全是预备body // 2.预备body与明确body混合 SwaggerToClassGenerator classGenerator = new SwaggerToClassGenerator(swaggerGenerator.getClassLoader(), swaggerGenerator.getSwagger(), swaggerGenerator.ensureGetPackageName()); for (BodyParameter bp : bodyParameters) { JavaType javaType = ConverterMgr.findJavaType(classGenerator, bp); classConfig.addField(bp.getName(), javaType); } return JavassistUtils.createClass(swaggerGenerator.getClassLoader(), classConfig); }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { builder.addPropertyValue(PojoConst.FIELD_MICROSERVICE_NAME, element.getAttribute(PojoConst.MICROSERVICE_NAME)); String schemaId = element.getAttribute(PojoConst.SCHEMA_ID); String intf = element.getAttribute(PojoConst.INTERFACE); if (StringUtils.isEmpty(intf) && !StringUtils.isEmpty(schemaId)) { // 尝试将schemaId当作接口名使用 Class<?> consumerIntf = ClassUtils.getClassByName(null, schemaId); if (consumerIntf != null) { intf = schemaId; } } builder.addPropertyValue(PojoConst.FIELD_SCHEMA_ID, schemaId); builder.addPropertyValue(PojoConst.FIELD_INTERFACE, intf); if (StringUtils.isEmpty(schemaId) && StringUtils.isEmpty(intf)) { throw new Error("schema-id and interface can not both be empty."); } } }
protected JavaType getOrCreateType(SwaggerToClassGenerator swaggerToClassGenerator, Map<String, Property> properties, String clsName) { Class<?> cls = ClassUtils.getClassByName(swaggerToClassGenerator.getClassLoader(), clsName); if (cls != null) { return swaggerToClassGenerator.getTypeFactory().constructType(cls); } CtClass ctClass = getOrCreateCtClass(swaggerToClassGenerator, properties, clsName); return new CtTypeJavaType(new CtType(ctClass)); }
public static Class<?> getOrCreateBodyClass(OperationGenerator operationGenerator, List<BodyParameter> bodyParameters) { SwaggerGenerator swaggerGenerator = operationGenerator.getSwaggerGenerator(); Method method = operationGenerator.getProviderMethod(); String clsName = swaggerGenerator.ensureGetPackageName() + "." + method.getName() + "Body"; Class<?> cls = getClassByName(swaggerGenerator.getClassLoader(), clsName); if (cls != null) { return cls; } ClassConfig classConfig = new ClassConfig(); classConfig.setClassName(clsName); // 1.全是预备body // 2.预备body与明确body混合 SwaggerToClassGenerator classGenerator = new SwaggerToClassGenerator(swaggerGenerator.getClassLoader(), swaggerGenerator.getSwagger(), swaggerGenerator.ensureGetPackageName()); for (BodyParameter bp : bodyParameters) { JavaType javaType = ConverterMgr.findJavaType(classGenerator, bp); classConfig.addField(bp.getName(), javaType); } return JavassistUtils.createClass(swaggerGenerator.getClassLoader(), classConfig); }