Juan Hernandez has uploaded a new change for review.

Change subject: restapi: Fix RSDL generation of DELETE methods
......................................................................

restapi: Fix RSDL generation of DELETE methods

The DELETE methods have beem moved from collection to entity methods in
previous patches. As a side effect they now have one parameter less, as
they don't receive the identifier of the entity. The RSDL generator
needs to be changed accordingly as it expects this parameter.

Change-Id: Ib6d008c46dd2c880479bc553c46578535304b7e7
Signed-off-by: Juan Hernandez <juan.hernan...@redhat.com>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
1 file changed, 10 insertions(+), 28 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/63/42263/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
index 4e99926..fb88590 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlBuilder.java
@@ -352,35 +352,17 @@
     }
 
     private void handleDelete(String prefix, Collection<DetailedLink> results, 
Method m) {
-        boolean collectionLevel = m.getAnnotation(Path.class) == null;
-        if (m.getParameterTypes().length>1) {
-            Class<?>[] parameterTypes = m.getParameterTypes();
-            Annotation[][] parameterAnnotations = m.getParameterAnnotations();
-            for (int i=0; i<parameterTypes.length; i++) {
-                //ignore the id parameter (string), that's annotated with 
@PathParam
-                if (!( parameterTypes[i].equals(String.class) && 
(!(parameterAnnotations[i].length==0)))) {
-                    DetailedLink link = new 
RsdlBuilder.LinkBuilder().url(prefix
-                            + (collectionLevel ? "" : "/{" + 
getSingleForm(prefix) + ":id}"))
-                            .rel(DELETE)
-                            
.requestParameter(parameterTypes[i].getSimpleName())
-                            .httpMethod(HttpMethod.DELETE)
-                            .build();
-                    addCommonActionParameters(link);
-                    addAsyncMatrixParameter(link);
-                    results.add(link);
-                    return; //we can break, because we excpect only one 
parameter.
-                }
-            }
-        } else {
-            DetailedLink link = new RsdlBuilder.LinkBuilder().url(prefix
-                    + (collectionLevel ? "" : "/{" + getSingleForm(prefix) + 
":id}"))
-                    .rel(DELETE)
-                    .httpMethod(HttpMethod.DELETE)
-                    .build();
-            addCommonActionParameters(link);
-            addAsyncMatrixParameter(link);
-            results.add(link);
+        DetailedLink link = new RsdlBuilder.LinkBuilder().url(prefix)
+            .rel(DELETE)
+            .httpMethod(HttpMethod.DELETE)
+            .build();
+        Class<?>[] parameterTypes = m.getParameterTypes();
+        if (parameterTypes.length > 0) {
+            
link.getRequest().getBody().setType(parameterTypes[0].getSimpleName());
         }
+        addCommonActionParameters(link);
+        addAsyncMatrixParameter(link);
+        results.add(link);
     }
 
     private void handlePut(String prefix, Collection<DetailedLink> results, 
Class<?> returnType) {


-- 
To view, visit https://gerrit.ovirt.org/42263
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib6d008c46dd2c880479bc553c46578535304b7e7
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Juan Hernandez <juan.hernan...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to