mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-05-12 20:50:55 +00:00
* starting adding qt project generation * update sample after running bin/qt5-petstore.sh * Add Project.mustache starter * Fix processOpts function * Write Project.mustache * Add prefix
This commit is contained in:
parent
25a6a9d444
commit
d82499944b
@ -26,6 +26,7 @@ import java.util.Set;
|
||||
public class Qt5CPPGenerator extends AbstractCppCodegen implements CodegenConfig {
|
||||
public static final String CPP_NAMESPACE = "cppNamespace";
|
||||
public static final String CPP_NAMESPACE_DESC = "C++ namespace (convention: name::space::for::api).";
|
||||
public static final String OPTIONAL_PROJECT_FILE_DESC = "Generate client.pri.";
|
||||
|
||||
protected final String PREFIX = "SWG";
|
||||
protected Set<String> foundationClasses = new HashSet<String>();
|
||||
@ -35,6 +36,7 @@ public class Qt5CPPGenerator extends AbstractCppCodegen implements CodegenConfig
|
||||
protected Map<String, String> namespaces = new HashMap<String, String>();
|
||||
protected Set<String> systemIncludes = new HashSet<String>();
|
||||
protected String cppNamespace = "Swagger";
|
||||
protected boolean optionalProjectFileFlag = true;
|
||||
|
||||
public Qt5CPPGenerator() {
|
||||
super();
|
||||
@ -82,6 +84,7 @@ public class Qt5CPPGenerator extends AbstractCppCodegen implements CodegenConfig
|
||||
|
||||
// CLI options
|
||||
addOption(CPP_NAMESPACE, CPP_NAMESPACE_DESC, this.cppNamespace);
|
||||
addSwitch(CodegenConstants.OPTIONAL_PROJECT_FILE, OPTIONAL_PROJECT_FILE_DESC, this.optionalProjectFileFlag);
|
||||
|
||||
/*
|
||||
* Additional Properties. These values can be passed to the templates and
|
||||
@ -114,6 +117,9 @@ public class Qt5CPPGenerator extends AbstractCppCodegen implements CodegenConfig
|
||||
supportingFiles.add(new SupportingFile("HttpRequest.cpp.mustache", sourceFolder, PREFIX + "HttpRequest.cpp"));
|
||||
supportingFiles.add(new SupportingFile("modelFactory.mustache", sourceFolder, PREFIX + "ModelFactory.h"));
|
||||
supportingFiles.add(new SupportingFile("object.mustache", sourceFolder, PREFIX + "Object.h"));
|
||||
if (optionalProjectFileFlag) {
|
||||
supportingFiles.add(new SupportingFile("Project.mustache", sourceFolder, "client.pri"));
|
||||
}
|
||||
|
||||
super.typeMapping = new HashMap<String, String>();
|
||||
|
||||
@ -160,6 +166,14 @@ public class Qt5CPPGenerator extends AbstractCppCodegen implements CodegenConfig
|
||||
cliOptions.add(option);
|
||||
}
|
||||
|
||||
protected void addSwitch(String key, String description, Boolean defaultValue) {
|
||||
CliOption option = CliOption.newBoolean(key, description);
|
||||
if (defaultValue != null)
|
||||
option.defaultValue(defaultValue.toString());
|
||||
cliOptions.add(option);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void processOpts() {
|
||||
super.processOpts();
|
||||
@ -183,6 +197,12 @@ public class Qt5CPPGenerator extends AbstractCppCodegen implements CodegenConfig
|
||||
importMapping.put("SWGHttpRequestInputFileElement", "#include \"" + modelNamePrefix + "HttpRequest.h\"");
|
||||
additionalProperties().put("prefix", modelNamePrefix);
|
||||
}
|
||||
|
||||
if (additionalProperties.containsKey(CodegenConstants.OPTIONAL_PROJECT_FILE)) {
|
||||
setOptionalProjectFileFlag(convertPropertyToBooleanAndWriteBack(CodegenConstants.OPTIONAL_PROJECT_FILE));
|
||||
} else {
|
||||
additionalProperties.put(CodegenConstants.OPTIONAL_PROJECT_FILE, optionalProjectFileFlag);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -425,4 +445,8 @@ public class Qt5CPPGenerator extends AbstractCppCodegen implements CodegenConfig
|
||||
public String escapeUnsafeCharacters(String input) {
|
||||
return input.replace("*/", "*_/").replace("/*", "/_*");
|
||||
}
|
||||
|
||||
public void setOptionalProjectFileFlag(boolean flag) {
|
||||
this.optionalProjectFileFlag = flag;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,42 @@
|
||||
QT += network
|
||||
|
||||
HEADERS += \
|
||||
# Models
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
$${PWD}/{{classname}}.h \
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
# APIs
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
{{#operations}}
|
||||
$${PWD}/{{classname}}.h \
|
||||
{{/operations}}
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
# Others
|
||||
$${PWD}/{{prefix}}Helpers.h \
|
||||
$${PWD}/{{prefix}}HttpRequest.h \
|
||||
$${PWD}/{{prefix}}ModelFactory.h \
|
||||
$${PWD}/{{prefix}}Object.h
|
||||
|
||||
SOURCES += \
|
||||
# Models
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
$${PWD}/{{classname}}.cpp \
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
# APIs
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
{{#operations}}
|
||||
$${PWD}/{{classname}}.cpp \
|
||||
{{/operations}}
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
# Others
|
||||
$${PWD}/{{prefix}}Helpers.cpp \
|
||||
$${PWD}/{{prefix}}HttpRequest.cpp
|
||||
|
@ -12,6 +12,7 @@ public class Qt5CPPOptionsProvider implements OptionsProvider {
|
||||
public static final String ENSURE_UNIQUE_PARAMS_VALUE = "true";
|
||||
public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE = "false";
|
||||
public static final String CPP_NAMESPACE_VALUE = "Swagger";
|
||||
public static final String OPTIONAL_PROJECT_FILE_VALUE = "true";
|
||||
|
||||
|
||||
@Override
|
||||
@ -26,6 +27,7 @@ public class Qt5CPPOptionsProvider implements OptionsProvider {
|
||||
.put(CodegenConstants.ENSURE_UNIQUE_PARAMS, ENSURE_UNIQUE_PARAMS_VALUE)
|
||||
.put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, ALLOW_UNICODE_IDENTIFIERS_VALUE)
|
||||
.put(Qt5CPPGenerator.CPP_NAMESPACE, CPP_NAMESPACE_VALUE)
|
||||
.put(CodegenConstants.OPTIONAL_PROJECT_FILE, OPTIONAL_PROJECT_FILE_VALUE)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,8 @@ public class Qt5CPPOptionsTest extends AbstractOptionsTest {
|
||||
new Expectations(clientCodegen) {{
|
||||
clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(Qt5CPPOptionsProvider.SORT_PARAMS_VALUE));
|
||||
times = 1;
|
||||
clientCodegen.setOptionalProjectFileFlag(true);
|
||||
times = 1;
|
||||
}};
|
||||
}
|
||||
}
|
||||
|
@ -16,33 +16,9 @@ CONFIG += c++11
|
||||
|
||||
TEMPLATE = app
|
||||
|
||||
include(../client/client.pri)
|
||||
|
||||
SOURCES += main.cpp \
|
||||
../client/SWGCategory.cpp \
|
||||
../client/SWGHelpers.cpp \
|
||||
../client/SWGHttpRequest.cpp \
|
||||
../client/SWGOrder.cpp \
|
||||
../client/SWGPet.cpp \
|
||||
../client/SWGPetApi.cpp \
|
||||
../client/SWGStoreApi.cpp \
|
||||
../client/SWGTag.cpp \
|
||||
../client/SWGUser.cpp \
|
||||
../client/SWGUserApi.cpp \
|
||||
../client/SWGApiResponse.cpp \
|
||||
PetApiTests.cpp
|
||||
PetApiTests.cpp
|
||||
|
||||
HEADERS += \
|
||||
../client/SWGCategory.h \
|
||||
../client/SWGHelpers.h \
|
||||
../client/SWGHttpRequest.h \
|
||||
../client/SWGObject.h \
|
||||
../client/SWGOrder.h \
|
||||
../client/SWGPet.h \
|
||||
../client/SWGPetApi.h \
|
||||
../client/SWGStoreApi.h \
|
||||
../client/SWGTag.h \
|
||||
../client/SWGUser.h \
|
||||
../client/SWGUserApi.h \
|
||||
PetApiTests.h \
|
||||
../client/SWGApiResponse.h \
|
||||
../client/SWGModelFactory.h
|
||||
HEADERS += PetApiTests.h
|
||||
|
36
samples/client/petstore/qt5cpp/client/client.pri
Normal file
36
samples/client/petstore/qt5cpp/client/client.pri
Normal file
@ -0,0 +1,36 @@
|
||||
QT += network
|
||||
|
||||
HEADERS += \
|
||||
# Models
|
||||
$${PWD}/SWGApiResponse.h \
|
||||
$${PWD}/SWGCategory.h \
|
||||
$${PWD}/SWGOrder.h \
|
||||
$${PWD}/SWGPet.h \
|
||||
$${PWD}/SWGTag.h \
|
||||
$${PWD}/SWGUser.h \
|
||||
# APIs
|
||||
$${PWD}/SWGPetApi.h \
|
||||
$${PWD}/SWGStoreApi.h \
|
||||
$${PWD}/SWGUserApi.h \
|
||||
# Others
|
||||
$${PWD}/SWGHelpers.h \
|
||||
$${PWD}/SWGHttpRequest.h \
|
||||
$${PWD}/SWGModelFactory.h \
|
||||
$${PWD}/SWGObject.h
|
||||
|
||||
SOURCES += \
|
||||
# Models
|
||||
$${PWD}/SWGApiResponse.cpp \
|
||||
$${PWD}/SWGCategory.cpp \
|
||||
$${PWD}/SWGOrder.cpp \
|
||||
$${PWD}/SWGPet.cpp \
|
||||
$${PWD}/SWGTag.cpp \
|
||||
$${PWD}/SWGUser.cpp \
|
||||
# APIs
|
||||
$${PWD}/SWGPetApi.cpp \
|
||||
$${PWD}/SWGStoreApi.cpp \
|
||||
$${PWD}/SWGUserApi.cpp \
|
||||
# Others
|
||||
$${PWD}/SWGHelpers.cpp \
|
||||
$${PWD}/SWGHttpRequest.cpp
|
||||
|
Loading…
x
Reference in New Issue
Block a user