Lior Vernia has uploaded a new change for review. Change subject: core: Create PairQueryable ID without UUID serialization ......................................................................
core: Create PairQueryable ID without UUID serialization As it turns out, serializing a UUID is a resource-consuming operation, and is not in fact required to compute a unique ID for a PairQueryable object. The mechanism is therefore swapped for a more efficient one, while maintaining the form of the serialized ID (in case it is needed somewhere, though that does not seem to be the case). Change-Id: Ibf0776567c5ef7f20830c70617dc69806cce3a6b Bug-Url: https://bugzilla.redhat.com/1123396 Signed-off-by: Lior Vernia <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java 2 files changed, 29 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/98/35198/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java index d79b7e3..27a35ca 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/Pair.java @@ -2,7 +2,7 @@ import java.io.Serializable; -public final class Pair<T, K> implements Serializable { +public class Pair<T, K> implements Serializable { private static final long serialVersionUID = -6761191157220811690L; private T first; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java index aacbf45..15bb464 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/PairQueryable.java @@ -19,7 +19,7 @@ private Pair<T, K> getPair() { if (pair == null) { - pair = new Pair<T, K>(null, null); + pair = new Pair<>(null, null); } return pair; } @@ -66,14 +66,37 @@ return true; } - public Object getQueryableId() { - return getMemberId(getFirst()) + '.' + getMemberId(getSecond()); + @Override + public PairQueryableId getQueryableId() { + return new PairQueryableId(getMemberId(getFirst()), getMemberId(getSecond())); } - private String getMemberId(IVdcQueryable member) { + private Object getMemberId(IVdcQueryable member) { if (member != null) { - return member.getQueryableId().toString(); + return member.getQueryableId(); } return null; } + + private static class PairQueryableId extends Pair<Object, Object> { + + private static final long serialVersionUID = 3430689533159779008L; + + public PairQueryableId() { + this(null, null); + } + + public PairQueryableId(Object first, Object second) { + super(first, second); + } + + @Override + public String toString() { + return serializeId(getFirst()) + '.' + serializeId(getSecond()); + } + + private String serializeId(Object id) { + return (id == null) ? null : id.toString(); + } + } } -- To view, visit http://gerrit.ovirt.org/35198 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibf0776567c5ef7f20830c70617dc69806cce3a6b Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
