2 * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.common;
10 import org.eclipse.jdt.annotation.NonNullByDefault;
13 * Conversion constants for all scales supported by Decimal64.
16 enum Decimal64Conversion {
17 SCALE_1(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
18 -922337203685477580L, 922337203685477580L,
19 -922337203685477580.8F, 922337203685477580.7F,
20 -922337203685477580.8D, 922337203685477580.7D),
21 SCALE_2(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
22 -92233720368547758L, 92233720368547758L,
23 -92233720368547758.08F, 92233720368547758.07F,
24 -92233720368547758.08F, 92233720368547758.07D),
25 SCALE_3(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
26 -9223372036854775L, 9223372036854775L,
27 -9223372036854775.808F, 9223372036854775.807F,
28 -9223372036854775.808D, 9223372036854775.807D),
29 SCALE_4(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
30 -922337203685477L, 922337203685477L,
31 -922337203685477.5808F, 922337203685477.5807F,
32 -922337203685477.5808D, 922337203685477.5807D),
33 SCALE_5(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
34 -92233720368547L, 92233720368547L,
35 -92233720368547.75808F, 92233720368547.75807F,
36 -92233720368547.75808D, 92233720368547.75807D),
37 SCALE_6(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
38 -9223372036854L, 9223372036854L,
39 -9223372036854.775808F, 9223372036854.775807F,
40 -9223372036854.775808D, 9223372036854.775807D),
41 SCALE_7(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
42 -922337203685L, 922337203685L,
43 -922337203685.4775808F, 922337203685.4775807F,
44 -922337203685.4775808D, 922337203685.4775807D),
45 SCALE_8(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
46 -92233720368L, 92233720368L,
47 -92233720368.54775808F, 92233720368.54775807F,
48 -92233720368.54775808D, 92233720368.54775807D),
49 SCALE_9(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE,
50 -9223372036L, 9223372036L,
51 -9223372036.854775808F, 9223372036.854775807F,
52 -9223372036.854775808D, 9223372036.854775807D),
53 SCALE_10(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, -922337203, 922337203,
54 -922337203L, 922337203L,
55 -922337203.6854775808F, 922337203.6854775807F,
56 -922337203.6854775808D, 922337203.6854775807D),
57 SCALE_11(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, -92233720, 92233720,
58 -92233720L, 92233720L,
59 -92233720.36854775808F, 92233720.36854775807F,
60 -92233720.36854775808D, 92233720.36854775807D),
61 SCALE_12(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, -9223372, 9223372, -9223372L, 9223372L,
62 -9223372.036854775808F, 9223372.036854775807F,
63 -9223372.036854775808D, 9223372.036854775807D),
64 SCALE_13(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, -922337, 922337, -922337L, 922337L,
65 -922337.2036854775808F, 922337.2036854775807F,
66 -922337.2036854775808D, 922337.2036854775807D),
67 SCALE_14(Byte.MIN_VALUE, Byte.MAX_VALUE, Short.MIN_VALUE, Short.MAX_VALUE, -92233, 92233, -92233L, 92233L,
68 -92233.72036854775808F, 92233.72036854775807F,
69 -92233.72036854775808D, 92233.72036854775807D),
70 SCALE_15(Byte.MIN_VALUE, Byte.MAX_VALUE, (short) -9223, (short) 9223, -9223, 9223, -9223L, 9223L,
71 -9223.372036854775808F, 9223.372036854775807F,
72 -9223.372036854775808D, 9223.372036854775807D),
73 SCALE_16(Byte.MIN_VALUE, Byte.MAX_VALUE, (short) -922, (short) 922, -922, 922, -922L, 922L,
74 -922.3372036854775808F, 922.3372036854775807F,
75 -922.3372036854775808D, 922.3372036854775807D),
76 SCALE_17((byte) -92, (byte)92, (short) -92, (short) 92, -92, 92, -92L, 92L,
77 -92.23372036854775808F, 92.23372036854775807F,
78 -92.23372036854775808D, 92.23372036854775807D),
79 SCALE_18((byte) -9, (byte)9, (short) -9, (short) 9, -9, 9, -9L, 9L,
80 -9.223372036854775808F, 9.223372036854775807F,
81 -9.223372036854775808D, 9.223372036854775807D);
98 final double minDouble;
99 final double maxDouble;
102 final byte minByte, final byte maxByte,
103 final short minShort, final short maxShort,
104 final int minInt, final int maxInt,
105 final long minLong, final long maxLong,
106 final float minFloat, final float maxFloat,
107 final double minDouble, final double maxDouble) {
108 this.minByte = minByte;
109 this.maxByte = maxByte;
110 this.minShort = minShort;
111 this.maxShort = maxShort;
112 this.minInt = minInt;
113 this.maxInt = maxInt;
114 this.minLong = minLong;
115 this.maxLong = maxLong;
116 this.minFloat = minFloat;
117 this.maxFloat = maxFloat;
118 this.minDouble = minDouble;
119 this.maxDouble = maxDouble;