public DefinitionsDocument(Swagger2MarkupConverter.Context context) { super(context); if (config.isSeparatedDefinitionsEnabled()) { if (logger.isDebugEnabled()) { logger.debug("Create separated definition files is enabled."); } } else { if (logger.isDebugEnabled()) { logger.debug("Create separated definition files is disabled."); } } this.definitionDocumentNameResolver = new DefinitionDocumentNameResolver(context); this.definitionComponent = new DefinitionComponent(context, new DefinitionDocumentResolverFromDefinition(context)); this.definitionDocumentResolverDefault = new DefinitionDocumentResolverDefault(context); }
/** * Builds a concrete definition * * @param markupDocBuilder the markupDocBuilder do use for output * @param definitionName the name of the definition * @param model the Swagger Model of the definition */ private void applyDefinitionComponent(MarkupDocBuilder markupDocBuilder, String definitionName, Model model) { definitionComponent.apply(markupDocBuilder, DefinitionComponent.parameters( definitionName, model, 2)); }
/** * Builds inline schema definitions * * @param markupDocBuilder the docbuilder do use for output * @param definitions all inline definitions to display * @param uniquePrefix unique prefix to prepend to inline object names to enforce unicity */ private void inlineDefinitions(MarkupDocBuilder markupDocBuilder, List<ObjectType> definitions, String uniquePrefix) { if (CollectionUtils.isNotEmpty(definitions)) { for (ObjectType definition : definitions) { addInlineDefinitionTitle(definition.getName(), definition.getUniqueName(), markupDocBuilder); List<ObjectType> localDefinitions = new ArrayList<>(); propertiesTableComponent.apply(markupDocBuilder, new PropertiesTableComponent.Parameters(definition.getProperties(), uniquePrefix, localDefinitions)); for (ObjectType localDefinition : localDefinitions) inlineDefinitions(markupDocBuilder, Collections.singletonList(localDefinition), localDefinition.getUniqueName()); } } }
@Override public MarkupDocBuilder apply(MarkupDocBuilder markupDocBuilder, Parameters params) { String definitionName = params.definitionName; String definitionTitle = determineDefinitionTitle(params); Model model = params.model; applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_BEFORE, markupDocBuilder, definitionName, model)); markupDocBuilder.sectionTitleWithAnchorLevel(params.titleLevel, definitionTitle, definitionName); applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_BEGIN, markupDocBuilder, definitionName, model)); String description = model.getDescription(); if (isNotBlank(description)) { markupDocBuilder.paragraph(markupDescription(config.getSwaggerMarkupLanguage(), markupDocBuilder, description)); } inlineDefinitions(markupDocBuilder, typeSection(markupDocBuilder, definitionName, model), definitionName); applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_END, markupDocBuilder, definitionName, model)); applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_AFTER, markupDocBuilder, definitionName, model)); return markupDocBuilder; }
@Test public void testDefinitionComponent() throws URISyntaxException { //Given Path file = Paths.get(DefinitionComponentTest.class.getResource("/yaml/swagger_petstore.yaml").toURI()); Swagger2MarkupConverter converter = Swagger2MarkupConverter.from(file).build(); Swagger swagger = converter.getContext().getSwagger(); Model petModel = swagger.getDefinitions().get("Pet"); Swagger2MarkupConverter.Context context = converter.getContext(); MarkupDocBuilder markupDocBuilder = context.createMarkupDocBuilder(); //When markupDocBuilder = new DefinitionComponent(context, new DefinitionDocumentResolverFromDefinition(context)) .apply(markupDocBuilder, DefinitionComponent.parameters("Pet", petModel, 2)); markupDocBuilder.writeToFileWithoutExtension(outputDirectory, StandardCharsets.UTF_8); //Then Path expectedFile = getExpectedFile(COMPONENT_NAME); DiffUtils.assertThatFileIsEqual(expectedFile, outputDirectory, getReportName(COMPONENT_NAME)); } }
@Override public MarkupDocBuilder apply(MarkupDocBuilder markupDocBuilder, Parameters params) { String definitionName = params.definitionName; Model model = params.model; applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_BEFORE, markupDocBuilder, definitionName, model)); markupDocBuilder.sectionTitleWithAnchorLevel(params.titleLevel, definitionName, definitionName); applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_BEGIN, markupDocBuilder, definitionName, model)); String description = model.getDescription(); if (isNotBlank(description)) { markupDocBuilder.paragraph(markupDescription(config.getSwaggerMarkupLanguage(), markupDocBuilder, description)); } inlineDefinitions(markupDocBuilder, typeSection(markupDocBuilder, definitionName, model), definitionName); applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_END, markupDocBuilder, definitionName, model)); applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_AFTER, markupDocBuilder, definitionName, model)); return markupDocBuilder; }
@Override public MarkupDocBuilder apply(MarkupDocBuilder markupDocBuilder, Parameters params) { String definitionName = params.definitionName; Schema model = params.model; applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_BEFORE, markupDocBuilder, definitionName, model)); markupDocBuilder.sectionTitleWithAnchorLevel(params.titleLevel, definitionName, definitionName); applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_BEGIN, markupDocBuilder, definitionName, model)); String description = model.getDescription(); if (isNotBlank(description)) { markupDocBuilder.paragraph(markupDescription(config.getSwaggerMarkupLanguage(), markupDocBuilder, description)); } inlineDefinitions(markupDocBuilder, model, typeSection(markupDocBuilder, definitionName, model), definitionName); applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_END, markupDocBuilder, definitionName, model)); applyDefinitionsDocumentExtension(new DefinitionsDocumentExtension.Context(Position.DEFINITION_AFTER, markupDocBuilder, definitionName, model)); return markupDocBuilder; }
/** * Builds a concrete definition * * @param markupDocBuilder the markupDocBuilder do use for output * @param definitionName the name of the definition * @param model the Swagger Model of the definition */ private void applyDefinitionComponent(MarkupDocBuilder markupDocBuilder, String definitionName, Schema model) { definitionComponent.apply(markupDocBuilder, DefinitionComponent.parameters( definitionName, model, 2)); }
/** * Builds inline schema definitions * * @param markupDocBuilder the docbuilder do use for output * @param definitions all inline definitions to display * @param uniquePrefix unique prefix to prepend to inline object names to enforce unicity */ private void inlineDefinitions(MarkupDocBuilder markupDocBuilder, List<ObjectType> definitions, String uniquePrefix) { if (CollectionUtils.isNotEmpty(definitions)) { for (ObjectType definition : definitions) { addInlineDefinitionTitle(definition.getName(), definition.getUniqueName(), markupDocBuilder); List<ObjectType> localDefinitions = new ArrayList<>(); propertiesTableComponent.apply(markupDocBuilder, new PropertiesTableComponent.Parameters(definition.getProperties(), uniquePrefix, localDefinitions)); for (ObjectType localDefinition : localDefinitions) inlineDefinitions(markupDocBuilder, Collections.singletonList(localDefinition), localDefinition.getUniqueName()); } } }
public DefinitionsDocument(Swagger2MarkupConverter.Context context) { super(context); if (config.isSeparatedDefinitionsEnabled()) { if (logger.isDebugEnabled()) { logger.debug("Create separated definition files is enabled."); } } else { if (logger.isDebugEnabled()) { logger.debug("Create separated definition files is disabled."); } } this.definitionDocumentNameResolver = new DefinitionDocumentNameResolver(context); this.definitionComponent = new DefinitionComponent(context, new DefinitionDocumentResolverFromDefinition(context)); this.definitionDocumentResolverDefault = new DefinitionDocumentResolverDefault(context); }
/** * Builds a concrete definition * * @param markupDocBuilder the markupDocBuilder do use for output * @param definitionName the name of the definition * @param model the Swagger Model of the definition */ private void applyDefinitionComponent(MarkupDocBuilder markupDocBuilder, String definitionName, Model model) { definitionComponent.apply(markupDocBuilder, DefinitionComponent.parameters( definitionName, model, 2)); }
/** * Builds inline schema definitions * * @param markupDocBuilder the docbuilder do use for output * @param definitions all inline definitions to display * @param uniquePrefix unique prefix to prepend to inline object names to enforce unicity */ private void inlineDefinitions(MarkupDocBuilder markupDocBuilder, Schema model, List<ObjectType> definitions, String uniquePrefix) { if (CollectionUtils.isNotEmpty(definitions)) { for (ObjectType definition : definitions) { addInlineDefinitionTitle(definition.getName(), definition.getUniqueName(), markupDocBuilder); List<ObjectType> localDefinitions = new ArrayList<>(); propertiesTableComponent.apply(markupDocBuilder, new PropertiesTableComponent.Parameters(model, definition.getProperties(), uniquePrefix, localDefinitions)); for (ObjectType localDefinition : localDefinitions) inlineDefinitions(markupDocBuilder, model, Collections.singletonList(localDefinition), localDefinition.getUniqueName()); } } }
public DefinitionsDocument(Swagger2MarkupConverter.Context context) { super(context); if (config.isSeparatedDefinitionsEnabled()) { if (logger.isDebugEnabled()) { logger.debug("Create separated definition files is enabled."); } } else { if (logger.isDebugEnabled()) { logger.debug("Create separated definition files is disabled."); } } this.definitionDocumentNameResolver = new DefinitionDocumentNameResolver(context); this.definitionComponent = new DefinitionComponent(context, new DefinitionDocumentResolverFromDefinition(context)); this.definitionDocumentResolverDefault = new DefinitionDocumentResolverDefault(context); }