Change in vdsm[master]: java_bindings: Add function overloads

smizrahi at redhat.com smizrahi at redhat.com
Thu May 16 22:11:52 UTC 2013


Saggi Mizrahi has uploaded a new change for review.

Change subject: java_bindings: Add function overloads
......................................................................

java_bindings: Add function overloads

Change-Id: I40887a5fd2e3901efdcc9633c5858ae6b2445291
Signed-off-by: Saggi Mizrahi <smizrahi at redhat.com>
---
M client/java/vdsm-api/generate.py
M client/java/vdsm-json-rpc/src/main/java/org/ovirt/vdsm/jsonrpc/JsonRpcClient.java
2 files changed, 22 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/23/14823/1

diff --git a/client/java/vdsm-api/generate.py b/client/java/vdsm-api/generate.py
index fb03b60..ff9be96 100644
--- a/client/java/vdsm-api/generate.py
+++ b/client/java/vdsm-api/generate.py
@@ -230,9 +230,11 @@
     #for $nobj in $client.nestedObjects
     public class $nobj.name {
         #for $command in $nobj.commands
+        #set $params = $command.parameters
+        #while True
         #set $rtype = $command.returnType.genericTypeName
         public Future<VDSMResponse<${rtype}>> ${command.name} (
-            #for $param in $command.parameters
+            #for $param in $params
             ${param.type.typeName} ${param.name},
             #end for
             String id
@@ -243,13 +245,18 @@
 
             builder.id(id);
 
-            #for $param in $command.parameters
+            #for $param in $params
             builder.addParameter("${param.realName}", ${param.name});
             #end for
             return _call(builder,
                 new ${command.returnType.genericTypeAdapter.typeName}());
         }
 
+        #if len($params) == 0 or (not $params[-1].isOptional)
+        #break
+        #end if
+        #set $params = $params[:-1]
+        #end while
         #end for
     }
 
@@ -330,9 +337,6 @@
 def resolveType(typeName, typeCache):
     if isinstance(typeName, list):
         return ArrayDef(typeName[0], typeCache)
-
-    if typeName.startswith("*"):
-        typeName = typeName[1:]
 
     typedef = typeCache[typeName]
 
@@ -429,7 +433,9 @@
 
 class CommandParameterDef(object):
     def __init__(self, name, typeName, typeCache):
+        self.isOptional = False
         if name.startswith("*"):
+            self.isOptional = True
             name = name[1:]
 
         self.realName = name
diff --git a/client/java/vdsm-json-rpc/src/main/java/org/ovirt/vdsm/jsonrpc/JsonRpcClient.java b/client/java/vdsm-json-rpc/src/main/java/org/ovirt/vdsm/jsonrpc/JsonRpcClient.java
index 0d649af..818fb98 100644
--- a/client/java/vdsm-json-rpc/src/main/java/org/ovirt/vdsm/jsonrpc/JsonRpcClient.java
+++ b/client/java/vdsm-json-rpc/src/main/java/org/ovirt/vdsm/jsonrpc/JsonRpcClient.java
@@ -48,7 +48,7 @@
 				}
 				i++;
 			}
-			_responses = new ArrayList<JsonRpcResponse>(i);
+			_responses = new ArrayList<>(i);
 			if (i == 0) {
 				_latch = new CountDownLatch(1);
 				_latch.countDown();
@@ -153,16 +153,16 @@
 	public JsonRpcClient(ReactorClient client) {
 		_client = client;
 		_jfactory = new ObjectMapper().getJsonFactory();
-		_runningCalls = new HashMap<JsonNode, JsonRpcCall>();
+		_runningCalls = new HashMap<>();
 	}
 
 	public Future<JsonRpcResponse> call(JsonRpcRequest req) {
 		final JsonNode json = req.toJson();
 		final ByteArrayOutputStream os = new ByteArrayOutputStream();
 		try {
-			final JsonGenerator gen = _jfactory.createJsonGenerator(os);
-			gen.writeTree(json);
-			gen.close();
+			try (JsonGenerator gen = _jfactory.createJsonGenerator(os)) {
+				gen.writeTree(json);
+			}
 		} catch (IOException e) {
 			// Never happens
 		}
@@ -183,13 +183,13 @@
 	public Future<List<JsonRpcResponse>> batchCall(List<JsonRpcRequest> requests) {
 		final ByteArrayOutputStream os = new ByteArrayOutputStream();
 		try {
-			final JsonGenerator gen = _jfactory.createJsonGenerator(os);
-			gen.writeStartArray();
-			for (final JsonRpcRequest request : requests) {
-				gen.writeTree(request.toJson());
+			try (JsonGenerator gen = _jfactory.createJsonGenerator(os)) {
+				gen.writeStartArray();
+				for (final JsonRpcRequest request : requests) {
+					gen.writeTree(request.toJson());
+				}
+				gen.writeEndArray();
 			}
-			gen.writeEndArray();
-			gen.close();
 		} catch (IOException e) {
 			// Never happens
 		}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I40887a5fd2e3901efdcc9633c5858ae6b2445291
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Saggi Mizrahi <smizrahi at redhat.com>


More information about the vdsm-patches mailing list