diff options
Diffstat (limited to 'appc-client/code-generator/src/main/resources/templates/client-kit')
6 files changed, 395 insertions, 0 deletions
diff --git a/appc-client/code-generator/src/main/resources/templates/client-kit/common.ftl b/appc-client/code-generator/src/main/resources/templates/client-kit/common.ftl new file mode 100644 index 000000000..ca72829d1 --- /dev/null +++ b/appc-client/code-generator/src/main/resources/templates/client-kit/common.ftl @@ -0,0 +1,49 @@ +<#-- + ============LICENSE_START======================================================= + ONAP : APPC + ================================================================================ + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Copyright (C) 2017 Amdocs + ============================================================================= + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + ============LICENSE_END========================================================= +--> + +<#global template = .main_template_name> +<#function toJavaName text> + <#assign names = text?split("-")> + <#assign returnValue = ""> + <#list names as name> + <#assign returnValue = returnValue + name?cap_first> + </#list> + <#return returnValue?uncap_first> +</#function> +<#function toJavaType type> + <#switch type> + <#case "string"> + <#return "String"> + <#case "integer"> + <#return "int"> + <#default> + <#return type> + </#switch> +</#function> +<#macro generated> +@javax.annotation.Generated( + value = {"${template}"}, + date = "${.now?string.iso}", + comments = "Auto-generated from Open API specification") +</#macro> diff --git a/appc-client/code-generator/src/main/resources/templates/client-kit/enum.ftl b/appc-client/code-generator/src/main/resources/templates/client-kit/enum.ftl new file mode 100644 index 000000000..2ca633b3f --- /dev/null +++ b/appc-client/code-generator/src/main/resources/templates/client-kit/enum.ftl @@ -0,0 +1,65 @@ +<#-- + ============LICENSE_START======================================================= + ONAP : APPC + ================================================================================ + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Copyright (C) 2017 Amdocs + ============================================================================= + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + ============LICENSE_END========================================================= +--> + +/** + * NOTE: This file is auto-generated and should not be changed manually. + */ +package ${meta.model\.package}; + +import com.fasterxml.jackson.annotation.JsonCreator; + +<#if pojo.description??> +/** +* ${pojo.description} +* +*/ +</#if> +public enum ${objectName} { + +<#list pojo.enum as enum> + ${enum}("${enum}")<#if enum?has_next>,<#else>;</#if> +</#list> + + private String value; + + ${objectName}(String value) { + this.value = value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static ${objectName} fromValue(String text) { + for (${objectName} var : ${objectName}.values()) { + if (String.valueOf(var.value).equals(text)) { + return var; + } + } + return null; + } + +} diff --git a/appc-client/code-generator/src/main/resources/templates/client-kit/open-api-to-java.ftl b/appc-client/code-generator/src/main/resources/templates/client-kit/open-api-to-java.ftl new file mode 100644 index 000000000..b9a222132 --- /dev/null +++ b/appc-client/code-generator/src/main/resources/templates/client-kit/open-api-to-java.ftl @@ -0,0 +1,41 @@ +<#-- + ============LICENSE_START======================================================= + ONAP : APPC + ================================================================================ + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Copyright (C) 2017 Amdocs + ============================================================================= + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + ============LICENSE_END========================================================= +--> + +<#include "common.ftl"> +<#assign model = model?eval> +<#assign meta = metadata?eval> +<#list model.definitions?keys as objectName> + <#assign pojo = model.definitions[objectName]> +__${meta.model\.package}.${objectName}__ + <#if model.definitions[objectName].enum??> + <#include "enum.ftl"> + <#elseif model.definitions[objectName].properties??> + <#include "pojo.ftl"> + <#else> + <#include "primitive-wrapper-pojo.ftl"> + </#if> +</#list> +<#assign service = model.paths> +__${meta.api\.package}.${meta.interface\.classname}__ +<#include "service.ftl"> diff --git a/appc-client/code-generator/src/main/resources/templates/client-kit/pojo.ftl b/appc-client/code-generator/src/main/resources/templates/client-kit/pojo.ftl new file mode 100644 index 000000000..1be2d1173 --- /dev/null +++ b/appc-client/code-generator/src/main/resources/templates/client-kit/pojo.ftl @@ -0,0 +1,109 @@ +<#-- + ============LICENSE_START======================================================= + ONAP : APPC + ================================================================================ + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Copyright (C) 2017 Amdocs + ============================================================================= + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + ============LICENSE_END========================================================= +--> + +/** + * NOTE: This file is auto-generated and should not be changed manually. + */ +package ${meta.model\.package}; + +import com.fasterxml.jackson.annotation.JsonProperty; + +<#if pojo.description??> +/** + * ${pojo.description} + */ +</#if> +<@generated/> +public class ${objectName} { + +<#assign properties = pojo.properties> +<#list properties?keys as member> + <#if properties[member]?is_hash> + <#assign varName = toJavaName(member)> + <#if properties[member].type??> + <#assign property = properties[member]> + <#else> + <#assign ref = properties[member].$ref?keep_after_last("/")> + <#assign property = model.definitions[ref]> + </#if> + <#if properties[member].enum??> + <#assign varType = property.type?cap_first> + public enum ${varName?cap_first} { + <#list property.enum as enum> + ${enum}<#if enum?has_next>,<#else>;</#if> + </#list> + } + + @JsonProperty("${member}") + private ${varName?cap_first} ${varName}; + <#else> + <#if properties[member].$ref??> + <#assign varType = toJavaType(ref)> + <#else> + <#assign varType = toJavaType(property.type)> + </#if> + @JsonProperty("${member}") + private ${varType} ${varName}; + </#if> + </#if> + +</#list> +<#list properties?keys as member> + <#if properties[member]?is_hash> + <#if properties[member].type??> + <#assign property = properties[member]> + <#elseif properties[member].$ref??> + <#assign ref = properties[member].$ref?keep_after_last("/")> + <#assign property = model.definitions[ref]> + </#if> + <#if properties[member].$ref??> + <#assign varType = ref> + <#else> + <#assign varType = toJavaType(property.type)> + </#if> + <#if property.enum??> + <#assign varType = toJavaName(member)?cap_first> + </#if> + <#assign varName = toJavaName(member)> + <#if property.description??> + /** + * ${property.description} + */ + </#if> + public ${varType} get${varName?cap_first}() { + return ${varName}; + } + + <#if property.description??> + /** + * ${property.description} + */ + </#if> + public void set${toJavaName(member)?cap_first}(${varType} ${varName}) { + this.${varName} = ${varName}; + } + + </#if> +</#list> +} diff --git a/appc-client/code-generator/src/main/resources/templates/client-kit/primitive-wrapper-pojo.ftl b/appc-client/code-generator/src/main/resources/templates/client-kit/primitive-wrapper-pojo.ftl new file mode 100644 index 000000000..fd2b2c995 --- /dev/null +++ b/appc-client/code-generator/src/main/resources/templates/client-kit/primitive-wrapper-pojo.ftl @@ -0,0 +1,59 @@ +<#-- + ============LICENSE_START======================================================= + ONAP : APPC + ================================================================================ + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Copyright (C) 2017 Amdocs + ============================================================================= + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + ============LICENSE_END========================================================= +--> + +/** + * NOTE: This file is auto-generated and should not be changed manually. + */ +package ${meta.model\.package}; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +<#if pojo.description??> +/** + * ${pojo.description} + */ +</#if> +<@generated/> +public class ${objectName} { +<#assign varType = toJavaType(pojo.type)> + + private ${varType} value; + + public ${objectName}() {} + + @JsonCreator + public ${objectName}(${varType} value) { + this.value = value; + } + + @JsonValue + public ${varType} getValue() { + return value; + } + + public void setValue(${varType} value) { + this.value = value; + } +} diff --git a/appc-client/code-generator/src/main/resources/templates/client-kit/service.ftl b/appc-client/code-generator/src/main/resources/templates/client-kit/service.ftl new file mode 100644 index 000000000..a3a87bdf6 --- /dev/null +++ b/appc-client/code-generator/src/main/resources/templates/client-kit/service.ftl @@ -0,0 +1,72 @@ +<#-- + ============LICENSE_START======================================================= + ONAP : APPC + ================================================================================ + Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Copyright (C) 2017 Amdocs + ============================================================================= + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + ============LICENSE_END========================================================= +--> + +/* + * NOTE: This file is auto-generated and should not be changed manually. + */ +package ${meta.api\.package}; + +<#list service?keys as action> + <#assign outputType = service[action].post.responses["200"].schema.properties.output.$ref?keep_after_last("/")> + <#assign inputType = service[action].post.parameters[0].schema.properties.input.$ref?keep_after_last("/")> +import ${meta.model\.package}.${outputType}; +import ${meta.model\.package}.${inputType}; +</#list> +import ${meta.exceptions\.package}.AppcClientException; +import ${meta.utils\.package}.RPC; + +<#if model.info.description??> +/** +* ${model.info.description} +*/ +</#if> +<@generated/> +public interface ${meta.interface\.classname} { + +<#list service?keys as action> + <#assign returnType = service[action].post.responses["200"].schema.properties.output.$ref?keep_after_last("/")> + <#assign rpcName = service[action].post.operationId> + <#assign methodName = toJavaName(rpcName)> + <#assign methodInputType = service[action].post.parameters[0].schema.properties.input.$ref?keep_after_last("/")> + <#assign methodInputName = methodInputType?uncap_first> + <#assign description = service[action].post.description> + /** + * ${description} + * + * @param ${methodInputName} - RPC input object + */ + @RPC(name="${rpcName}", outputType=${returnType}.class) + ${returnType} ${methodName}(${methodInputType} ${methodInputName}) throws AppcClientException; + + /** + * ${description} + * + * @param ${methodInputName} - RPC input object + * @return listener - callback implementation + */ + @RPC(name="${rpcName}", outputType=${returnType}.class) + void ${methodName}(${methodInputType} ${methodInputName}, ResponseHandler<${returnType}> listener) throws AppcClientException; + +</#list> +} |