#1809 resolve casing conflict part1

This commit is contained in:
Kristof Vrolijkx
2016-04-19 12:59:23 +02:00
parent 13cd2af105
commit 034c1fbb21

View File

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