All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.reprezen.genflow.rapidml.swagger.SwaggerContractGenTemplate Maven / Gradle / Ivy

package com.reprezen.genflow.rapidml.swagger;

import com.reprezen.genflow.api.GenerationException;
import com.reprezen.genflow.api.template.GenTemplateProperty;
import com.reprezen.genflow.common.jsonschema.builder.xchange.ContractJsonSchemaNodeFactory;

public class SwaggerContractGenTemplate extends XSwaggerGenTemplate {

	public SwaggerContractGenTemplate() {
		super();
	}

	@Override
	public String getName() {
		return "Swagger (RAPID-XChange Contract)";
	}

	@Override
	public boolean isSuppressed() {
		return false;
	}

	@Override
	public void configure() throws GenerationException {
		alsoKnownAs("com.modelsolv.reprezen.gentemplates.swagger.SwaggerContractGenTemplate");
		defineZenModelSource();
		configureParameters();
		defineParameterizedOutputItem(outputItem().using(XGenerateSwaggerContract.class), "JSON",
				"${zenModel.name}.json");
		defineParameterizedOutputItem(outputItem().using(XGenerateSwaggerContractYaml.class), "YAML",
				"${zenModel.name}.yaml");
		define(GenTemplateProperty.reprezenProvider());
	}

	public static class XGenerateSwaggerContract extends XGenerateSwagger {
		public XGenerateSwaggerContract() {
			this(SwaggerOutputFormat.JSON);
		}

		public XGenerateSwaggerContract(SwaggerOutputFormat format) {
			super(format, new JsonSchemaForSwaggerGenerator(new ContractJsonSchemaNodeFactory()));
		}

	}

	public static class XGenerateSwaggerContractYaml extends XGenerateSwaggerContract {

		public XGenerateSwaggerContractYaml() {
			super(SwaggerOutputFormat.YAML);
		}

	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy