mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-03 06:00:52 +00:00
Change indentation to +4 and map binary to string
This commit is contained in:
parent
b1a5080121
commit
b9eb26baff
@ -9,204 +9,208 @@ import java.util.*;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implements CodegenConfig {
|
public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||||
public JavascriptClosureAngularClientCodegen() {
|
public JavascriptClosureAngularClientCodegen() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
supportsInheritance = false;
|
supportsInheritance = false;
|
||||||
reservedWords = new HashSet<String>(Arrays.asList("abstract",
|
reservedWords = new HashSet<String>(Arrays.asList("abstract",
|
||||||
"continue", "for", "new", "switch", "assert", "default", "if",
|
"continue", "for", "new", "switch", "assert", "default", "if",
|
||||||
"package", "synchronized", "do", "goto", "private",
|
"package", "synchronized", "do", "goto", "private",
|
||||||
"this", "break", "double", "implements", "protected", "throw",
|
"this", "break", "double", "implements", "protected", "throw",
|
||||||
"byte", "else", "import", "public", "throws", "case", "enum",
|
"byte", "else", "import", "public", "throws", "case", "enum",
|
||||||
"instanceof", "return", "transient", "catch", "extends", "int",
|
"instanceof", "return", "transient", "catch", "extends", "int",
|
||||||
"short", "try", "char", "final", "interface", "static", "void",
|
"short", "try", "char", "final", "interface", "static", "void",
|
||||||
"class", "finally", "const", "super", "while"));
|
"class", "finally", "const", "super", "while"));
|
||||||
|
|
||||||
languageSpecificPrimitives = new HashSet<String>(Arrays.asList(
|
languageSpecificPrimitives = new HashSet<String>(Arrays.asList(
|
||||||
"string",
|
"string",
|
||||||
"boolean",
|
"boolean",
|
||||||
"number",
|
"number",
|
||||||
"Object",
|
"Object",
|
||||||
"Blob",
|
"Blob",
|
||||||
"Date"));
|
"Date"));
|
||||||
instantiationTypes.put("array", "Array");
|
instantiationTypes.put("array", "Array");
|
||||||
|
|
||||||
typeMapping = new HashMap<String, String>();
|
typeMapping = new HashMap<String, String>();
|
||||||
typeMapping.put("Array", "Array");
|
typeMapping.put("Array", "Array");
|
||||||
typeMapping.put("array", "Array");
|
typeMapping.put("array", "Array");
|
||||||
typeMapping.put("List", "Array");
|
typeMapping.put("List", "Array");
|
||||||
typeMapping.put("boolean", "boolean");
|
typeMapping.put("boolean", "boolean");
|
||||||
typeMapping.put("string", "string");
|
typeMapping.put("string", "string");
|
||||||
typeMapping.put("int", "number");
|
typeMapping.put("int", "number");
|
||||||
typeMapping.put("float", "number");
|
typeMapping.put("float", "number");
|
||||||
typeMapping.put("number", "number");
|
typeMapping.put("number", "number");
|
||||||
typeMapping.put("long", "number");
|
typeMapping.put("long", "number");
|
||||||
typeMapping.put("short", "number");
|
typeMapping.put("short", "number");
|
||||||
typeMapping.put("char", "string");
|
typeMapping.put("char", "string");
|
||||||
typeMapping.put("double", "number");
|
typeMapping.put("double", "number");
|
||||||
typeMapping.put("object", "Object");
|
typeMapping.put("object", "Object");
|
||||||
typeMapping.put("Object", "Object");
|
typeMapping.put("Object", "Object");
|
||||||
typeMapping.put("File", "Blob");
|
typeMapping.put("File", "Blob");
|
||||||
typeMapping.put("file", "Blob");
|
typeMapping.put("file", "Blob");
|
||||||
typeMapping.put("integer", "number");
|
typeMapping.put("integer", "number");
|
||||||
typeMapping.put("Map", "Object");
|
typeMapping.put("Map", "Object");
|
||||||
typeMapping.put("map", "Object");
|
typeMapping.put("map", "Object");
|
||||||
typeMapping.put("DateTime", "Date");
|
typeMapping.put("DateTime", "Date");
|
||||||
|
|
||||||
importMapping = new HashMap<String, String>();
|
importMapping = new HashMap<String, String>();
|
||||||
defaultIncludes = new HashSet<String>(Arrays.asList(
|
defaultIncludes = new HashSet<String>(Arrays.asList(
|
||||||
"Object",
|
"Object",
|
||||||
"Array"
|
"Array",
|
||||||
));
|
"Blob"
|
||||||
|
));
|
||||||
|
|
||||||
outputFolder = "generated-code/javascript-closure-angular";
|
typeMapping.put("binary", "string");
|
||||||
modelTemplateFiles.put("model.mustache", ".js");
|
|
||||||
apiTemplateFiles.put("api.mustache", ".js");
|
|
||||||
embeddedTemplateDir = templateDir = "Javascript-Closure-Angular";
|
|
||||||
apiPackage = "API.Client";
|
|
||||||
modelPackage = "API.Client";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
outputFolder = "generated-code/javascript-closure-angular";
|
||||||
public String getName() {
|
modelTemplateFiles.put("model.mustache", ".js");
|
||||||
return "javascript-closure-angular";
|
apiTemplateFiles.put("api.mustache", ".js");
|
||||||
}
|
embeddedTemplateDir = templateDir = "Javascript-Closure-Angular";
|
||||||
|
apiPackage = "API.Client";
|
||||||
@Override
|
modelPackage = "API.Client";
|
||||||
public String getHelp() {
|
|
||||||
return "Generates a Javascript AngularJS client library annotated with Google Closure Compiler annotations" +
|
|
||||||
"(https://developers.google.com/closure/compiler/docs/js-for-compiler?hl=en)";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CodegenType getTag() {
|
|
||||||
return CodegenType.CLIENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String escapeReservedWord(String name) {
|
|
||||||
return "_" + name;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String apiFileFolder() {
|
|
||||||
return outputFolder + "/" + apiPackage().replace('.', File.separatorChar);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String modelFileFolder() {
|
|
||||||
return outputFolder + "/" + modelPackage().replace('.', File.separatorChar);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toVarName(String name) {
|
|
||||||
// replace - with _ e.g. created-at => created_at
|
|
||||||
name = name.replaceAll("-", "_");
|
|
||||||
|
|
||||||
// if it's all uppper case, do nothing
|
|
||||||
if (name.matches("^[A-Z_]*$"))
|
|
||||||
return name;
|
|
||||||
|
|
||||||
// camelize the variable name
|
|
||||||
// pet_id => PetId
|
|
||||||
name = camelize(name, true);
|
|
||||||
|
|
||||||
// for reserved word or word starting with number, append _
|
|
||||||
if (reservedWords.contains(name) || name.matches("^\\d.*"))
|
|
||||||
name = escapeReservedWord(name);
|
|
||||||
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toParamName(String name) {
|
|
||||||
// should be the same as variable name
|
|
||||||
return toVarName(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toModelName(String name) {
|
|
||||||
// model name cannot use reserved keyword, e.g. return
|
|
||||||
if (reservedWords.contains(name))
|
|
||||||
throw new RuntimeException(name
|
|
||||||
+ " (reserved word) cannot be used as a model name");
|
|
||||||
|
|
||||||
// camelize the model name
|
|
||||||
// phone_number => PhoneNumber
|
|
||||||
return camelize(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toModelFilename(String name) {
|
|
||||||
// should be the same as the model name
|
|
||||||
return toModelName(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getTypeDeclaration(Property p) {
|
|
||||||
if (p instanceof ArrayProperty) {
|
|
||||||
ArrayProperty ap = (ArrayProperty) p;
|
|
||||||
Property inner = ap.getItems();
|
|
||||||
return getSwaggerType(p) + "<!" + getTypeDeclaration(inner) + ">";
|
|
||||||
} else if (p instanceof MapProperty) {
|
|
||||||
MapProperty mp = (MapProperty) p;
|
|
||||||
Property inner = mp.getAdditionalProperties();
|
|
||||||
return "Object<!string, "+ getTypeDeclaration(inner) + ">";
|
|
||||||
} else if (p instanceof FileProperty) {
|
|
||||||
return "Object";
|
|
||||||
}
|
}
|
||||||
String type = super.getTypeDeclaration(p);
|
|
||||||
if (type.equals("boolean") ||
|
@Override
|
||||||
type.equals("Date") ||
|
public String getName() {
|
||||||
type.equals("number") ||
|
return "javascript-closure-angular";
|
||||||
type.equals("string")) {
|
|
||||||
return type;
|
|
||||||
}
|
}
|
||||||
return apiPackage + "." + type;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getSwaggerType(Property p) {
|
public String getHelp() {
|
||||||
String swaggerType = super.getSwaggerType(p);
|
return "Generates a Javascript AngularJS client library annotated with Google Closure Compiler annotations" +
|
||||||
String type = null;
|
"(https://developers.google.com/closure/compiler/docs/js-for-compiler?hl=en)";
|
||||||
if (typeMapping.containsKey(swaggerType)) {
|
}
|
||||||
type = typeMapping.get(swaggerType);
|
|
||||||
if (languageSpecificPrimitives.contains(type))
|
|
||||||
return type;
|
|
||||||
} else
|
|
||||||
type = swaggerType;
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
|
public CodegenType getTag() {
|
||||||
|
return CodegenType.CLIENT;
|
||||||
|
}
|
||||||
|
|
||||||
List<Object> models = (List<Object>) objs.get("models");
|
@Override
|
||||||
for (Object _mo : models) {
|
public String escapeReservedWord(String name) {
|
||||||
Map<String, Object> mo = (Map<String, Object>) _mo;
|
return "_" + name;
|
||||||
CodegenModel cm = (CodegenModel) mo.get("model");
|
}
|
||||||
cm.imports = new TreeSet(cm.imports);
|
|
||||||
for (CodegenProperty var : cm.vars) {
|
|
||||||
// handle default value for enum, e.g. available => StatusEnum.available
|
|
||||||
if (var.isEnum && var.defaultValue != null && !"null".equals(var.defaultValue)) {
|
|
||||||
var.defaultValue = var.datatypeWithEnum + "." + var.defaultValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return objs;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> postProcessOperations(Map<String, Object> objs) {
|
public String apiFileFolder() {
|
||||||
if (objs.get("imports") instanceof List) {
|
return outputFolder + "/" + apiPackage().replace('.', File.separatorChar);
|
||||||
List<Map<String, String>> imports = (ArrayList<Map<String, String>>)objs.get("imports");
|
}
|
||||||
Collections.sort(imports, new Comparator<Map<String, String>>() {
|
|
||||||
public int compare(Map<String, String> o1, Map<String, String> o2) {
|
public String modelFileFolder() {
|
||||||
return o1.get("import").compareTo(o2.get("import"));
|
return outputFolder + "/" + modelPackage().replace('.', File.separatorChar);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toVarName(String name) {
|
||||||
|
// replace - with _ e.g. created-at => created_at
|
||||||
|
name = name.replaceAll("-", "_");
|
||||||
|
|
||||||
|
// if it's all uppper case, do nothing
|
||||||
|
if (name.matches("^[A-Z_]*$"))
|
||||||
|
return name;
|
||||||
|
|
||||||
|
// camelize the variable name
|
||||||
|
// pet_id => PetId
|
||||||
|
name = camelize(name, true);
|
||||||
|
|
||||||
|
// for reserved word or word starting with number, append _
|
||||||
|
if (reservedWords.contains(name) || name.matches("^\\d.*"))
|
||||||
|
name = escapeReservedWord(name);
|
||||||
|
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toParamName(String name) {
|
||||||
|
// should be the same as variable name
|
||||||
|
return toVarName(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toModelName(String name) {
|
||||||
|
// model name cannot use reserved keyword, e.g. return
|
||||||
|
if (reservedWords.contains(name))
|
||||||
|
throw new RuntimeException(name
|
||||||
|
+ " (reserved word) cannot be used as a model name");
|
||||||
|
|
||||||
|
// camelize the model name
|
||||||
|
// phone_number => PhoneNumber
|
||||||
|
return camelize(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toModelFilename(String name) {
|
||||||
|
// should be the same as the model name
|
||||||
|
return toModelName(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTypeDeclaration(Property p) {
|
||||||
|
if (p instanceof ArrayProperty) {
|
||||||
|
ArrayProperty ap = (ArrayProperty) p;
|
||||||
|
Property inner = ap.getItems();
|
||||||
|
return getSwaggerType(p) + "<!" + getTypeDeclaration(inner) + ">";
|
||||||
|
} else if (p instanceof MapProperty) {
|
||||||
|
MapProperty mp = (MapProperty) p;
|
||||||
|
Property inner = mp.getAdditionalProperties();
|
||||||
|
return "Object<!string, "+ getTypeDeclaration(inner) + ">";
|
||||||
|
} else if (p instanceof FileProperty) {
|
||||||
|
return "Object";
|
||||||
}
|
}
|
||||||
});
|
String type = super.getTypeDeclaration(p);
|
||||||
objs.put("imports", imports);
|
if (type.equals("boolean") ||
|
||||||
|
type.equals("Date") ||
|
||||||
|
type.equals("number") ||
|
||||||
|
type.equals("string")) {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
return apiPackage + "." + type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSwaggerType(Property p) {
|
||||||
|
String swaggerType = super.getSwaggerType(p);
|
||||||
|
String type = null;
|
||||||
|
if (typeMapping.containsKey(swaggerType)) {
|
||||||
|
type = typeMapping.get(swaggerType);
|
||||||
|
if (languageSpecificPrimitives.contains(type)) {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
type = swaggerType;
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
|
||||||
|
|
||||||
|
List<Object> models = (List<Object>) objs.get("models");
|
||||||
|
for (Object _mo : models) {
|
||||||
|
Map<String, Object> mo = (Map<String, Object>) _mo;
|
||||||
|
CodegenModel cm = (CodegenModel) mo.get("model");
|
||||||
|
cm.imports = new TreeSet(cm.imports);
|
||||||
|
for (CodegenProperty var : cm.vars) {
|
||||||
|
// handle default value for enum, e.g. available => StatusEnum.available
|
||||||
|
if (var.isEnum && var.defaultValue != null && !"null".equals(var.defaultValue)) {
|
||||||
|
var.defaultValue = var.datatypeWithEnum + "." + var.defaultValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return objs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> postProcessOperations(Map<String, Object> objs) {
|
||||||
|
if (objs.get("imports") instanceof List) {
|
||||||
|
List<Map<String, String>> imports = (ArrayList<Map<String, String>>)objs.get("imports");
|
||||||
|
Collections.sort(imports, new Comparator<Map<String, String>>() {
|
||||||
|
public int compare(Map<String, String> o1, Map<String, String> o2) {
|
||||||
|
return o1.get("import").compareTo(o2.get("import"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
objs.put("imports", imports);
|
||||||
|
}
|
||||||
|
return objs;
|
||||||
}
|
}
|
||||||
return objs;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user