diff options
Diffstat (limited to 'ncomp-sirius-manager-generator/src/main/templates/Client.java')
-rw-r--r-- | ncomp-sirius-manager-generator/src/main/templates/Client.java | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/ncomp-sirius-manager-generator/src/main/templates/Client.java b/ncomp-sirius-manager-generator/src/main/templates/Client.java new file mode 100644 index 0000000..4b38e94 --- /dev/null +++ b/ncomp-sirius-manager-generator/src/main/templates/Client.java @@ -0,0 +1,125 @@ + +/*- + * ============LICENSE_START========================================== + * OPENECOMP - DCAE + * =================================================================== + * Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * 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. + * ============LICENSE_END============================================ + */ + +<% +import org.openecomp.ncomp.utils.StringUtil +%>// Autogenerated +// Do not edit. No need to extend this class. +package $packageName; + +import org.openecomp.ncomp.sirius.manager.AbstractClient; +import org.openecomp.ncomp.sirius.manager.HighAvailabilityClient; +import org.openecomp.ncomp.sirius.manager.GenericHttpClient; + +import org.apache.log4j.Logger; + +import org.openecomp.logger.EcompLogger; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import ${p.nsURI}.impl.${name}Impl; +import ${p.nsURI}.${g.packageName2()}; +import ${packageName}.logging.${name}OperationEnum; +import ${packageName}.logging.${name}MessageEnum; + +<% if (sPackage != "") { %> +import ${sPackage}.${prefix}${g.root.o.eClass().name}; <% } %> + + + + +@SuppressWarnings("unchecked") +public class ${cName} extends ${name}Impl { + public static final Logger logger = Logger.getLogger(${cName}.class); + static final EcompLogger ecomplogger = EcompLogger.getEcompLogger(); + public AbstractClient client; + + public ${cName}(String file, String name) { + ${prefix}${g.root.o.eClass().name}.ecoreSetup(); + client = new GenericHttpClient(file,name); + client.add("/$path", this); + } + + public ${cName}(String file, String name1, String name2) { + HighAvailabilityClient client1 = new HighAvailabilityClient(file,name1,name2); + client = client1.all; // requests should be forwarded to all. + client.add("/$path", this); + } + + public ${cName}(AbstractClient c) { + client = c; + client.add("/resources", this); + } + + +<% g.operations().each { op -> + def decl = [] + def vars = [] + def timeout = "null" + if (op.getEParameters().find { it.name == "cx" }) { + decl += "org.json.JSONObject cx" + vars += "cx" + timeout = 'cx != null && cx.has("timeout") ? cx.getLong("timeout") : null' + } + def override = "@Override" + def path1 = g.subName == null ? "\"/$path\"" : "\"/$g.subName\"" + if (g.root != g && g.root.o.eClass().EPackage == o.eClass().EPackage) { + decl += "String path" + override = "" + path1 = "path" + } + op.getEParameters().each { p -> + if (p.name == "cx") return + vars += p.name + if (p.isMany()) + decl += "EList<${p.getEType().getInstanceClassName()}> $p.name" + else { + if (p.getEType()==null) System.err.println "$op.name $p.name $p" + decl += "${p.getEType().getInstanceClassName()} $p.name" + } + } + + + def rType = op.getEType() == null ? "void" : op.getEType().getInstanceClassName() + if (op.isMany()) rType = "EList<$rType>" + def ret = rType == "void" ? "" : "return res;" + def decl1 = rType == "void" ? "" : "${rType} res;" + def decl2 = rType == "void" ? "" : "res = ($rType) " +%> + $override + public ${rType} ${op.name}(${StringUtil.join(decl, ", ")}) { + EClass c = ${g.packageName2()}.eINSTANCE.get${g.o.eClass().name}(); //foo + ecomplogger.recordMetricEventStart(); + ecomplogger.setOperation(${name}OperationEnum.REMOTE_${op.name}); + $decl1 + try { + ${decl2}client.operationPath($path1, c, "${op.name}", $timeout<% if (vars.size()>0) {%>, <%}%>${StringUtil.join(vars,",")}); + } + catch (Exception e) { + ecomplogger.warn(${name}MessageEnum.REMOTE_${op.name}, e.toString()); + throw new RuntimeException("remote call failed: " + client.getRemote() + "@$op.name: " + e); + } + ecomplogger.recordMetricEventEnd(); + ${ret} + } +<% } %> +} |