Michael Pasternak has uploaded a new change for review.

Change subject: codegen: refactor DeleteMethodTemplate
......................................................................

codegen: refactor DeleteMethodTemplate

refactor DeleteMethodTemplate to include private use-case
of delete - DeleteMethodWithBodyTemplate.

Change-Id: I07d65aae848d2961cd1d11d14b2acb955444acb4
Signed-off-by: Michael Pasternak <[email protected]>
---
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
M 
ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodWithBodyTemplate.java
3 files changed, 55 insertions(+), 52 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine-sdk-java 
refs/changes/35/11535/1

diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
index aead0ff..fdffe46 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/rsdl/RsdlCodegen.java
@@ -35,7 +35,6 @@
 import org.ovirt.engine.sdk.codegen.templates.CollectionListMethodTemplate;
 import org.ovirt.engine.sdk.codegen.templates.CollectionTemplate;
 import org.ovirt.engine.sdk.codegen.templates.DeleteMethodTemplate;
-import org.ovirt.engine.sdk.codegen.templates.DeleteMethodWithBodyTemplate;
 import org.ovirt.engine.sdk.codegen.templates.ResourceActionMethodTemplate;
 import org.ovirt.engine.sdk.codegen.templates.SubCollectionAddMethodTemplate;
 import org.ovirt.engine.sdk.codegen.templates.SubCollectionGetterTemplate;
@@ -79,7 +78,6 @@
     private ResourceActionMethodTemplate resourceActionMethodTemplate;
     private CollectionActionMethodTemplate collectionActionMethodTemplate;
     private DeleteMethodTemplate deleteMethodTemplate;
-    private DeleteMethodWithBodyTemplate deleteMethodWithBodyTemplate;
     private UpdateMethodTemplate updateMethodTemplate;
     private CollectionAddMethodTemplate collectionAddMethodTemplate;
     private SubCollectionAddMethodTemplate subCollectionAddMethodTemplate;
@@ -124,7 +122,6 @@
         this.resourceActionMethodTemplate = new ResourceActionMethodTemplate();
         this.collectionActionMethodTemplate = new 
CollectionActionMethodTemplate();
         this.deleteMethodTemplate = new DeleteMethodTemplate();
-        this.deleteMethodWithBodyTemplate = new DeleteMethodWithBodyTemplate();
         this.updateMethodTemplate = new UpdateMethodTemplate();
         this.collectionAddMethodTemplate = new CollectionAddMethodTemplate();
         this.subCollectionAddMethodTemplate = new 
SubCollectionAddMethodTemplate();
@@ -543,15 +540,8 @@
 
         if (rel.equals(DELETE_REL)) {
             if (!resourceHolder.hasMethod(DELETE_REL)) {
-                if (detailedLink.isSetRequest() && 
detailedLink.getRequest().isSetBody()
-                        && detailedLink.getRequest().getBody().isSetType() && !
-                        
detailedLink.getRequest().getBody().getType().equals("")) {
-                    resourceHolder.addMethod(DELETE_REL,
-                            
this.deleteMethodWithBodyTemplate.getTemplate(docParams, detailedLink));
-                } else {
-                    resourceHolder.addMethod(DELETE_REL,
-                            this.deleteMethodTemplate.getTemplate(docParams, 
detailedLink));
-                }
+                resourceHolder.addMethod(DELETE_REL,
+                        this.deleteMethodTemplate.getTemplate(docParams, 
detailedLink));
             }
         } else if (rel.equals(UPDATE_REL)) {
             if (!resourceHolder.hasMethod(UPDATE_REL)) {
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
index b21f731..0189edf 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodTemplate.java
@@ -24,12 +24,23 @@
 import org.ovirt.engine.sdk.entities.ParametersSet;
 
 /**
- * Provides Resource action templating services
+ * Provides Resource delete templating services
  */
 public class DeleteMethodTemplate extends AbstractOverloadableTemplate {
 
+    private static final String DOC_SEPARATOR = "     *";
+    private static DeleteMethodWithBodyTemplate deleteMethodWithBodyTemplate;
+
     public DeleteMethodTemplate() {
         super();
+        initStaticContext();
+    }
+
+    /**
+     * Initalises static context
+     */
+    private static synchronized void initStaticContext() {
+        deleteMethodWithBodyTemplate = new DeleteMethodWithBodyTemplate();
     }
 
     /**
@@ -39,7 +50,7 @@
      */
     @Override
     public String getTemplate() {
-        return getTemplate("     *", "", "", "");
+        return getTemplate(DOC_SEPARATOR, "", "", "");
     }
 
     /**
@@ -92,37 +103,54 @@
         StringBuffer urlParamsToBuild = new StringBuffer();
         StringBuffer templateBuff = new StringBuffer();
 
-        if (dl.isSetRequest() && dl.getRequest().isSetUrl() &&
-                dl.getRequest().getUrl().isSetParametersSets() &&
-                !dl.getRequest().getUrl().getParametersSets().isEmpty()) {
+        if (dl.isSetRequest() && dl.getRequest().isSetBody() && 
dl.getRequest().getBody().isSetType() && !
+                dl.getRequest().getBody().getType().equals("") && 
dl.getRequest().getBody().isRequired() != null
+                && dl.getRequest().getBody().isRequired()) {
+            // add delete() with body overload (body is mandatory)
+            
templateBuff.append(deleteMethodWithBodyTemplate.getTemplate(docParams, dl));
+        } else {
+            if (dl.isSetRequest() && dl.getRequest().isSetUrl() &&
+                    dl.getRequest().getUrl().isSetParametersSets() &&
+                    !dl.getRequest().getUrl().getParametersSets().isEmpty()) {
 
-            // add url params
-            for (ParametersSet parametersSet : 
dl.getRequest().getUrl().getParametersSets()) {
-                for (Parameter parameter : parametersSet.getParameters()) {
-                    addUrlParams(methodExtraParamsDef, urlParamsToBuild, 
parameter);
+                // add url params
+                for (ParametersSet parametersSet : 
dl.getRequest().getUrl().getParametersSets()) {
+                    for (Parameter parameter : parametersSet.getParameters()) {
+                        addUrlParams(methodExtraParamsDef, urlParamsToBuild, 
parameter);
+                    }
+                    // add header params
+                    methodExtraParamsDef =
+                            addHeaderParams(dl, methodExtraParamsDef,
+                                    headersToBuild, urlParamsToBuild, 
templateBuff);
                 }
+            } else {
                 // add header params
                 methodExtraParamsDef =
                         addHeaderParams(dl, methodExtraParamsDef,
                                 headersToBuild, urlParamsToBuild, 
templateBuff);
             }
-        } else {
-            // add header params
-            methodExtraParamsDef =
-                    addHeaderParams(dl, methodExtraParamsDef,
-                            headersToBuild, urlParamsToBuild, templateBuff);
-        }
 
-        // add default method
-        templateBuff.append(getTemplate());
+            // add default method
+            templateBuff.append(getTemplate());
 
-        // add method overload containing url/matrix params
-        if (methodExtraParamsDef.length() > 0) {
-            templateBuff.append(getTemplate(
-                    StringUtils.combine(docParams, 
DocsGen.generateUrlAndHeadersParams(dl)),
-                    methodExtraParamsDef.toString(),
-                    headersToBuild.toString(),
-                    urlParamsToBuild.toString()));
+            // add delete() overload with url/header params
+            if (methodExtraParamsDef.length() > 0) {
+                templateBuff.append(getTemplate(
+                        StringUtils.combine(DOC_SEPARATOR, 
DocsGen.generateUrlAndHeadersParams(dl)),
+                        methodExtraParamsDef.toString(),
+                        headersToBuild.toString(),
+                        urlParamsToBuild.toString()));
+            }
+
+            // add delete() with body overload (body is optional)
+            if (dl.isSetRequest() && dl.getRequest().isSetBody() && 
dl.getRequest().getBody().isSetType()
+                    && !dl.getRequest().getBody().getType().equals("")
+                    && ((dl.getRequest().getBody().isRequired() != null
+                    && !dl.getRequest().getBody().isRequired())
+                    ||
+                    dl.getRequest().getBody().isRequired() == null)) {
+                
templateBuff.append(deleteMethodWithBodyTemplate.getTemplate(docParams, dl));
+            }
         }
 
         return templateBuff.toString();
diff --git 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodWithBodyTemplate.java
 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodWithBodyTemplate.java
index 73ff970..bd6580e 100644
--- 
a/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodWithBodyTemplate.java
+++ 
b/ovirt-engine-sdk-java-codegen/src/main/java/org/ovirt/engine/sdk/codegen/templates/DeleteMethodWithBodyTemplate.java
@@ -24,22 +24,12 @@
 import org.ovirt.engine.sdk.entities.ParametersSet;
 
 /**
- * Provides Resource action templating services
+ * Provides Resource delete with body templating services
  */
 public class DeleteMethodWithBodyTemplate extends AbstractOverloadableTemplate 
{
 
-    private static DeleteMethodTemplate deleteMethodTemplate;
-
     public DeleteMethodWithBodyTemplate() {
         super();
-        initStaticContext();
-    }
-
-    /**
-     * Initalises static context
-     */
-    private static synchronized void initStaticContext() {
-        deleteMethodTemplate = new DeleteMethodTemplate();
     }
 
     /**
@@ -110,11 +100,6 @@
                     addHeaderParams(detailedLink, methodExtraParamsDef,
                             headersToBuild, urlParamsToBuild, templateBuff);
         }
-
-        // add default method
-        templateBuff.append(deleteMethodTemplate.getTemplate(
-                "     *",
-                detailedLink));
 
         // add method overload containing url/matrix params
         if (methodExtraParamsDef.length() > 0) {


--
To view, visit http://gerrit.ovirt.org/11535
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I07d65aae848d2961cd1d11d14b2acb955444acb4
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine-sdk-java
Gerrit-Branch: master
Gerrit-Owner: Michael Pasternak <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to