Martin Mucha has uploaded a new change for review.

Change subject: restapi: added ….Mapper#mapAll for mapping multiple insntaces.
......................................................................

restapi: added ….Mapper#mapAll for mapping multiple insntaces.

Change-Id: Ie3ad21acf9327541a6ef162e22a7a0e2930f3e81
Signed-off-by: Martin Mucha <[email protected]>
---
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/Mapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
2 files changed, 23 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/19/34919/1

diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/Mapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/Mapper.java
index fc4a7d9..b873ea1 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/Mapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/Mapper.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.api.restapi.types;
 
+import java.util.Collection;
+
 public interface Mapper<F, T> {
 
     /**
@@ -13,4 +15,15 @@
      */
     T map(F from, T template);
 
+    /**
+     * Map from one type to another; applied to each instance of given 
collection and function result is stored in
+     * given target collection. This methods does not support 'template' as 
{@link #map(Object, Object)} does, since
+     * such template cannot be reused and there's no enforced support for 
creating deep copies.
+     *
+     * @param from iterable collection of source instances
+     * @param to collection for storing transformed instances.
+     * @param <COL> type of collection to which transformed result should be 
stored.
+     * @return collections containing transformed results
+     */
+    <COL extends Collection<T>> COL mapAll(Iterable<F> from, COL to);
 }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
index 5b40601..779bce5 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/MappingLocator.java
@@ -18,6 +18,7 @@
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -159,6 +160,15 @@
             }
         }
 
+        @Override
+        public <COL extends Collection<Object>> COL mapAll(Iterable<Object> 
from, COL to) {
+            for (Object o : from) {
+                to.add(map(from, null));
+            }
+
+            return to;
+        }
+
         public String toString() {
             return "map to: " + to + " via " + method;
         }


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

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

Reply via email to