summaryrefslogtreecommitdiffstats
path: root/appc-client/code-generator/src/main/resources/templates/client-kit
diff options
context:
space:
mode:
Diffstat (limited to 'appc-client/code-generator/src/main/resources/templates/client-kit')
-rw-r--r--appc-client/code-generator/src/main/resources/templates/client-kit/common.ftl49
-rw-r--r--appc-client/code-generator/src/main/resources/templates/client-kit/enum.ftl65
-rw-r--r--appc-client/code-generator/src/main/resources/templates/client-kit/open-api-to-java.ftl41
-rw-r--r--appc-client/code-generator/src/main/resources/templates/client-kit/pojo.ftl109
-rw-r--r--appc-client/code-generator/src/main/resources/templates/client-kit/primitive-wrapper-pojo.ftl59
-rw-r--r--appc-client/code-generator/src/main/resources/templates/client-kit/service.ftl72
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>
+}