Make ValueFormat.toFormat safe to call with any noOfDecimals value 86/3286/1
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Thu, 26 Sep 2019 13:02:39 +0000 (16:02 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Thu, 26 Sep 2019 13:11:45 +0000 (13:11 +0000)
noOfDecimals is now capped between [0,16].

gitlab #391

Change-Id: Id24752a908b65c261f02964ec18cdb8e759ea0d0
(cherry picked from commit 83249a1e50b8ea706fde5e3074856fbf5f9eb1ac)

bundles/org.simantics.utils/src/org/simantics/utils/format/ValueFormat.java

index 9734d3c569b219b5a0cdd72618186d0c03ebbfb3..1cc1c94a7071ada5b497dbe3158e26d25674f96b 100644 (file)
@@ -35,10 +35,10 @@ public enum ValueFormat {
        public Format toFormat( int noOfDecimals ) 
        {
                switch ( this ) {
-                       case Currency: return noOfDecimals>decimalFormats.length||noOfDecimals<0 ? decimalFormats[decimalFormats.length-1] : decimalFormats[noOfDecimals]; 
+                       case Currency: return noOfDecimals>decimalFormats.length||noOfDecimals<0 ? decimalFormats[decimalFormats.length-1] : decimalFormats[Math.min(noOfDecimals, 16)]; 
                        case Scientific: return format;
                        case Engineering: return format;
-                       case Default: return noOfDecimals>defaultFormats.length||noOfDecimals<0 ? defaultFormats[defaultFormats.length-1] : defaultFormats[noOfDecimals];
+                       case Default: return noOfDecimals>defaultFormats.length||noOfDecimals<0 ? defaultFormats[defaultFormats.length-1] : defaultFormats[Math.min(noOfDecimals, 16)];
                        default: return format;
                }
        }