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)); }
public static Pair<SizeUnit, Double> autoConvert(long size, SizeUnit inUnit) { for (Pair<Long, SizeUnit> currentUnitPair : SizeUnit.weightToUnit) { if (size / Math.pow(CONVERT_FACTOR, currentUnitPair.getFirst() - inUnit.getUnitWeight()) >= 1) { return new Pair<>(currentUnitPair.getSecond(), SizeConverter.convert(size, inUnit, currentUnitPair.getSecond()).doubleValue()); } } return new Pair<>(SizeUnit.BYTES, (double) size); }
public static SizeUnit leastUnitInList(List<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; }
public static SizeUnit maxUnitInList(List<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; }