anmolbabu has uploaded a new change for review. Change subject: engine : Math operations on SizeConverter converted sizes ......................................................................
engine : Math operations on SizeConverter converted sizes Facilitate Math operations on SizeConverter converted sizes Change-Id: Ie9fd4e7b7b9411cf17d66037e6424a979c2d037f Signed-off-by: Anmol Babu <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/SizeConverter.java 1 file changed, 46 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/15/36315/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/SizeConverter.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/SizeConverter.java index d081064..00194c0 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/SizeConverter.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/SizeConverter.java @@ -12,6 +12,7 @@ public static final long BYTES_IN_KB = 1024L; public static final long BYTES_IN_MB = 1024L * 1024L; public static final long BYTES_IN_GB = 1024L * 1024L * 1024L; + public static final long BYTES_IN_TB = 1024L * 1024L * 1024L * 1024L; public SizeConverter() { @@ -49,14 +50,22 @@ } public SizeUnit getUnit(long weight) { - return (SizeUnit) weightToUnit.get((int) weight).getSecond(); + return weightToUnit.get((int) weight).getSecond(); + } + + public static SizeUnit getMaxHandledUnit() { + return weightToUnit.get(weightToUnit.size() -1).getSecond(); + } + + public static SizeUnit getMinHandledUnit() { + return weightToUnit.get(0).getSecond(); } }; public static Number convert(long size, SizeUnit fromUnit, SizeUnit toUnit) { long fromType = fromUnit.getUnitWeight(); long toType = toUnit.getUnitWeight(); - return (size) * ((Math.pow(CONVERT_FACTOR, fromType)) / (Math.pow(CONVERT_FACTOR, toType))); + return size * (Math.pow(CONVERT_FACTOR, fromType) / Math.pow(CONVERT_FACTOR, toType)); } public static Pair<SizeUnit, Double> autoConvert(long size, SizeUnit inUnit) { @@ -68,4 +77,39 @@ } return new Pair<SizeConverter.SizeUnit, Double>(SizeUnit.BYTES, (double)size); } + + @SafeVarargs + public static SizeUnit leastUnitInList(Pair<SizeUnit, Double>... operands) { + SizeUnit leastUnit = SizeUnit.getMaxHandledUnit(); + for(Pair<SizeUnit, Double> operand : operands) { + if(operand.getFirst().getUnitWeight() < leastUnit.getUnitWeight()) { + leastUnit = operand.getFirst(); + } + } + return leastUnit; + } + + @SafeVarargs + public static SizeUnit maxUnitInList(Pair<SizeUnit, Double>... operands) { + SizeUnit maxUnit = SizeUnit.getMinHandledUnit(); + for(Pair<SizeUnit, Double> operand : operands) { + if(operand.getFirst().getUnitWeight() > maxUnit.getUnitWeight()) { + maxUnit = operand.getFirst(); + } + } + return maxUnit; + } + + @SafeVarargs + public static List<Pair<SizeUnit, Double>> getMathOperationSafeOperands(Pair<SizeUnit, Double>... operands) { + List<Pair<SizeUnit, Double>> operatoinReadyOperands = new ArrayList<>(); + SizeUnit finalUnit = leastUnitInList(operands); + for(Pair<SizeUnit, Double> operand : operands) { + if(operand.getFirst() != finalUnit) { + operand.setSecond(convert(operand.getSecond().longValue(), operand.getFirst(), finalUnit).doubleValue()); + operand.setFirst(finalUnit); + } + } + return operatoinReadyOperands; + } } -- To view, visit http://gerrit.ovirt.org/36315 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie9fd4e7b7b9411cf17d66037e6424a979c2d037f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: anmolbabu <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
