Move the aai-schema, annotations and
[aai/schema-service.git] / aai-schema-gen / src / main / java / org / onap / aai / schemagen / genxsd / DeleteOperation.java
diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java
new file mode 100644 (file)
index 0000000..e1d993f
--- /dev/null
@@ -0,0 +1,106 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 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=========================================================
+ */
+package org.onap.aai.schemagen.genxsd;
+
+import org.apache.commons.lang3.StringUtils;
+import org.onap.aai.schemagen.GenerateXsd;
+
+import java.util.HashMap;
+import java.util.StringTokenizer;
+
+public class DeleteOperation {
+       private String useOpId;
+       private String xmlRootElementName;
+       private String tag;
+       private String path;
+       private String pathParams;
+
+       public static HashMap<String, String> deletePaths = new HashMap<String, String>();
+               public DeleteOperation(String useOpId, String xmlRootElementName, String tag, String path, String pathParams) {
+                       super();
+                       this.useOpId = useOpId;
+                       this.xmlRootElementName = xmlRootElementName;
+                       this.tag = tag;
+                       this.path = path;
+                       this.pathParams = pathParams;
+               }
+               @Override
+               public String toString() {
+                       StringTokenizer st;
+                       st = new StringTokenizer(path, "/");
+                       //a valid tag is necessary
+                       if ( StringUtils.isEmpty(tag) ) {
+                               return "";
+                       }
+                       if ( path.contains("/relationship/") ) { // filter paths with relationship-list
+                               return "";
+                       }
+                       if ( path.endsWith("/relationship-list")) {
+                               return "";
+                       }
+                       if ( path.startsWith("/search")) {
+                               return "";
+                       }
+                       //All Delete operation paths end with "relationship"
+                       //or there is a parameter at the end of the path
+                       //and there is a parameter in the path
+
+                       if ( !path.endsWith("/relationship")  &&  !path.endsWith("}") ) {
+                               return "";
+                       }
+                       StringBuffer pathSb = new StringBuffer();
+                       pathSb.append("    delete:\n");
+                       pathSb.append("      tags:\n");
+                       pathSb.append("        - " + tag + "\n");
+                       pathSb.append("      summary: delete an existing " + xmlRootElementName + "\n");
+
+                       pathSb.append("      description: delete an existing " + xmlRootElementName + "\n");
+
+                       pathSb.append("      operationId: delete" + useOpId + "\n");
+                       pathSb.append("      consumes:\n");
+                       pathSb.append("        - application/json\n");
+                       pathSb.append("        - application/xml\n");
+                       pathSb.append("      produces:\n");
+                       pathSb.append("        - application/json\n");
+                       pathSb.append("        - application/xml\n");
+                       pathSb.append("      responses:\n");
+                       pathSb.append("        \"default\":\n");
+                       pathSb.append("          " + GenerateXsd.getResponsesUrl());
+                       pathSb.append("      parameters:\n");
+
+                       pathSb.append(pathParams); // for nesting
+                       if ( !path.endsWith("/relationship") ) {
+                               pathSb.append("        - name: resource-version\n");
+
+                               pathSb.append("          in: query\n");
+                               pathSb.append("          description: resource-version for concurrency\n");
+                               pathSb.append("          required: true\n");
+                               pathSb.append("          type: string\n");
+                       }
+                       this.objectPathMapEntry();
+                       return pathSb.toString();
+               }
+               public String objectPathMapEntry() {
+                       if (! path.endsWith("/relationship") ) {
+                               deletePaths.put(path, xmlRootElementName);
+                       }
+                       return (xmlRootElementName+":"+path);
+               }
+       }