1 #
 2 # Copyright (c) 2023, 2024, 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.  Oracle designates this
 8 # particular file as subject to the "Classpath" exception as provided
 9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
25 
26 ################################################################################
27 # Generate the value class replacements for selected java.base source files
28 
29 java.base-VALUE_CLASS-REPLACEMENTS := \
30     java/lang/Byte.java \
31     java/lang/Short.java \
32     java/lang/Integer.java \
33     java/lang/Long.java \
34     java/lang/Float.java \
35     java/lang/Double.java \
36     java/lang/Boolean.java \
37     java/lang/Character.java \
38     java/lang/Number.java \
39     java/lang/Record.java \
40     java/util/Optional.java \
41     java/util/OptionalInt.java \
42     java/util/OptionalLong.java \
43     java/util/OptionalDouble.java \
44     java/time/LocalDate.java \
45     java/time/LocalDateTime.java \
46     java/time/LocalTime.java \
47     java/time/Duration.java \
48     java/time/Instant.java \
49     java/time/MonthDay.java \
50     java/time/ZonedDateTime.java \
51     java/time/OffsetDateTime.java \
52     java/time/OffsetTime.java \
53     java/time/YearMonth.java \
54     java/time/Year.java \
55     java/time/Period.java \
56     java/time/chrono/ChronoLocalDateImpl.java \
57     java/time/chrono/MinguoDate.java \
58     java/time/chrono/HijrahDate.java \
59     java/time/chrono/JapaneseDate.java \
60     java/time/chrono/ThaiBuddhistDate.java \
61     #
62 
63 java.base-VALUE-CLASS-FILES := \
64     $(foreach f, $(java.base-VALUE_CLASS-REPLACEMENTS), $(addprefix $(TOPDIR)/src/java.base/share/classes/, $(f)))
65 
66 $(eval $(call SetupTextFileProcessing, JAVA_BASE_VALUECLASS_REPLACEMENTS, \
67     SOURCE_FILES := $(java.base-VALUE-CLASS-FILES), \
68     SOURCE_BASE_DIR := $(TOPDIR)/src/java.base/share/classes, \
69     OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/gensrc-valueclasses/java.base/, \
70     REPLACEMENTS := \
71         public final class => public final value class ; \
72         public abstract class => public abstract value class ; \
73         abstract class ChronoLocalDateImpl => abstract value class ChronoLocalDateImpl, \
74 ))
75 
76 TARGETS += $(JAVA_BASE_VALUECLASS_REPLACEMENTS)