From 034c1fbb21296a1102c51d431af1b16260f4ca09 Mon Sep 17 00:00:00 2001 From: Kristof Vrolijkx Date: Tue, 19 Apr 2016 12:59:23 +0200 Subject: [PATCH] #1809 resolve casing conflict part1 --- .../TypeScriptAngular2ClientCodegen2.java | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen2.java diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen2.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen2.java new file mode 100644 index 000000000000..522736cb4121 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngular2ClientCodegen2.java @@ -0,0 +1,81 @@ +package io.swagger.codegen.languages; + +import java.io.File; + +import io.swagger.codegen.CodegenParameter; +import io.swagger.codegen.SupportingFile; +import io.swagger.models.properties.ArrayProperty; +import io.swagger.models.properties.FileProperty; +import io.swagger.models.properties.MapProperty; +import io.swagger.models.properties.Property; + +public class TypeScriptAngular2ClientCodegen2 extends AbstractTypeScriptClientCodegen { + + public TypeScriptAngular2ClientCodegen2() { + super(); + this.outputFolder = "generated-code/typescript-angular2"; + + embeddedTemplateDir = templateDir = "typescript-angular2"; + modelTemplateFiles.put("model.mustache", ".ts"); + apiTemplateFiles.put("api.mustache", ".ts"); + typeMapping.put("Date","Date"); + apiPackage = "api"; + modelPackage = "model"; + } + + @Override + public String getName() { + return "typescript-angular2"; + } + + @Override + public String getHelp() { + return "Generates a TypeScript Angular2 client library."; + } + + @Override + public void processOpts() { + super.processOpts(); + supportingFiles.clear(); + supportingFiles.add(new SupportingFile("model.d.mustache", modelPackage().replace('.', File.separatorChar), "model.d.ts")); + } + + @Override + public String getTypeDeclaration(Property p) { + Property inner; + if(p instanceof ArrayProperty) { + ArrayProperty mp1 = (ArrayProperty)p; + inner = mp1.getItems(); + return this.getSwaggerType(p) + "<" + this.getTypeDeclaration(inner) + ">"; + } else if(p instanceof MapProperty) { + MapProperty mp = (MapProperty)p; + inner = mp.getAdditionalProperties(); + return "{ [key: string]: " + this.getTypeDeclaration(inner) + "; }"; + } else { + return p instanceof FileProperty ? "any" : super.getTypeDeclaration(p); + } + } + + @Override + public String getSwaggerType(Property p) { + String swaggerType = super.getSwaggerType(p); + return addModelPrefix(swaggerType); + } + + private String addModelPrefix(String swaggerType) { + String type = null; + if (typeMapping.containsKey(swaggerType)) { + type = typeMapping.get(swaggerType); + if (languageSpecificPrimitives.contains(type)) + return type; + } else + type = "model." + swaggerType; + return type; + } + + @Override + public void postProcessParameter(CodegenParameter parameter) { + super.postProcessParameter(parameter); + parameter.dataType = addModelPrefix(parameter.dataType); + } +}