1 /* 2 * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 final value class Value { 25 final char char_v; 26 final byte byte_v; 27 final boolean boolean_v; 28 final int int_v; 29 final short short_v; 30 final long long_v; 31 final double double_v; 32 final float float_v; 33 Value() { 34 char_v = 'z'; 35 boolean_v = true; 36 byte_v = 0; 37 int_v = 1; 38 short_v = 2; 39 long_v = 3; 40 float_v = 0.1f; 41 double_v = 0.2d; 42 } 43 static Value makeValue(char c, boolean z, byte b, int x, short y, long l, float f, double d) { 44 Value v = Value.default; 45 v = __WithField(v.char_v, c); 46 v = __WithField(v.byte_v, b); 47 v = __WithField(v.boolean_v, z); 48 v = __WithField(v.int_v, x); 49 v = __WithField(v.short_v, y); 50 v = __WithField(v.long_v, l); 51 v = __WithField(v.float_v, f); 52 v = __WithField(v.double_v, d); 53 return v; 54 } 55 56 static Value getInstance() { 57 return makeValue('\u0123', true, (byte)0x01, 0x01234567, (short)0x0123, 0x0123456789ABCDEFL, 1.0f, 1.0d); 58 } 59 60 }