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
