Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/util/Calendar/Koyomi.java
41149 views
1
/*
2
* Copyright (c) 2003, 2016, 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
import java.util.GregorianCalendar;
25
import java.util.Locale;
26
import java.util.TimeZone;
27
28
/**
29
* GregorianCalendar subclass for testing.
30
*/
31
@SuppressWarnings("serial")
32
public class Koyomi extends GregorianCalendar {
33
34
static final String[] FIELD_NAMES = {
35
"ERA", "YEAR", "MONTH", "WEEK_OF_YEAR", "WEEK_OF_MONTH", "DAY_OF_MONTH",
36
"DAY_OF_YEAR", "DAY_OF_WEEK", "DAY_OF_WEEK_IN_MONTH", "AM_PM", "HOUR",
37
"HOUR_OF_DAY", "MINUTE", "SECOND", "MILLISECOND", "ZONE_OFFSET",
38
"DST_OFFSET"
39
};
40
41
static final int ALL_FIELDS = (1 << FIELD_COUNT) - 1;
42
43
public Koyomi() {
44
}
45
46
public Koyomi(TimeZone tz) {
47
super(tz);
48
}
49
50
public Koyomi(Locale loc) {
51
super(loc);
52
}
53
54
public Koyomi(TimeZone tz, Locale loc) {
55
super(tz, loc);
56
}
57
58
@Override
59
public void computeTime() {
60
super.computeTime();
61
}
62
63
@Override
64
public void computeFields() {
65
super.computeFields();
66
}
67
68
@Override
69
public void complete() {
70
super.complete();
71
}
72
73
static String getFieldName(int field) {
74
return FIELD_NAMES[field];
75
}
76
77
String toDateString() {
78
StringBuilder sb = new StringBuilder();
79
sb.append(internalGet(ERA) == 0 ? "BCE " : "");
80
sb.append(internalGet(YEAR)).append('-');
81
sb.append(internalGet(MONTH) + 1).append('-');
82
sb.append(internalGet(DAY_OF_MONTH));
83
return sb.toString();
84
}
85
86
String toTimeString() {
87
StringBuilder sb = new StringBuilder();
88
sb.append(internalGet(HOUR_OF_DAY)).append(':');
89
sb.append(internalGet(MINUTE)).append(':');
90
sb.append(internalGet(SECOND)).append('.');
91
int ms = internalGet(MILLISECOND);
92
if (ms < 100) {
93
sb.append('0');
94
if (ms < 10) {
95
sb.append('0');
96
}
97
}
98
sb.append(ms);
99
int offset = internalGet(ZONE_OFFSET) + internalGet(DST_OFFSET);
100
offset /= 60000;
101
offset = (offset / 60) * 100 + (offset % 60);
102
if (offset >= 0) {
103
sb.append('+');
104
} else {
105
sb.append('-');
106
offset = -offset;
107
}
108
if (offset < 1000) {
109
sb.append('0');
110
if (offset < 100) {
111
sb.append('0');
112
}
113
}
114
sb.append(offset);
115
return sb.toString();
116
}
117
118
String toDateTimeString() {
119
return toDateString() + "T" + toTimeString();
120
}
121
122
StringBuilder msg = new StringBuilder();
123
124
void initTest() {
125
msg = new StringBuilder();
126
}
127
128
String getMessage() {
129
String s = msg.toString();
130
msg = new StringBuilder();
131
return " " + s;
132
}
133
134
void setMessage(String msg) {
135
this.msg = new StringBuilder(msg);
136
}
137
138
void appendMessage(String msg) {
139
this.msg.append(msg);
140
}
141
142
boolean getStatus() {
143
return msg.length() == 0;
144
}
145
146
int getSetStateFields() {
147
int mask = 0;
148
for (int i = 0; i < FIELD_COUNT; i++) {
149
if (isSet(i)) {
150
mask |= 1 << i;
151
}
152
}
153
return mask;
154
}
155
156
int[] getFields() {
157
int[] fds = new int[fields.length];
158
System.arraycopy(fields, 0, fds, 0, fds.length);
159
return fds;
160
}
161
162
boolean checkAllSet() {
163
initTest();
164
for (int i = 0; i < FIELD_COUNT; i++) {
165
checkFieldState(i, true);
166
}
167
return getStatus();
168
}
169
170
boolean checkInternalDate(int year, int month, int dayOfMonth) {
171
initTest();
172
checkInternalFieldValue(YEAR, year);
173
checkInternalFieldValue(MONTH, month);
174
checkInternalFieldValue(DAY_OF_MONTH, dayOfMonth);
175
return getStatus();
176
}
177
178
boolean checkInternalDate(int year, int month, int dayOfMonth, int dayOfWeek) {
179
initTest();
180
checkInternalFieldValue(YEAR, year);
181
checkInternalFieldValue(MONTH, month);
182
checkInternalFieldValue(DAY_OF_MONTH, dayOfMonth);
183
checkInternalFieldValue(DAY_OF_WEEK, dayOfWeek);
184
return getStatus();
185
}
186
187
boolean checkActualMaximum(int field, int expectedValue) {
188
int val;
189
if ((val = getActualMaximum(field)) != expectedValue) {
190
appendMessage("getActualMaximum(" + FIELD_NAMES[field] + "): got " + val
191
+ " expected " + expectedValue);
192
}
193
return getStatus();
194
}
195
196
boolean checkLeastMaximum(int field, int expectedValue) {
197
int val;
198
if ((val = getLeastMaximum(field)) != expectedValue) {
199
appendMessage("getLeastMaximum(" + FIELD_NAMES[field] + "): got " + val
200
+ " expected " + expectedValue);
201
}
202
return getStatus();
203
}
204
205
boolean checkActualMinimum(int field, int expectedValue) {
206
int val;
207
if ((val = getActualMinimum(field)) != expectedValue) {
208
appendMessage("getActualMinimum(" + FIELD_NAMES[field] + "): got " + val
209
+ " expected " + expectedValue);
210
}
211
return getStatus();
212
}
213
214
boolean checkGreatestMinimum(int field, int expectedValue) {
215
int val;
216
if ((val = getGreatestMinimum(field)) != expectedValue) {
217
appendMessage("getGreatestMinimum(" + FIELD_NAMES[field] + "): got " + val
218
+ " expected " + expectedValue);
219
}
220
return getStatus();
221
}
222
223
boolean checkDate(int year, int month, int dayOfMonth) {
224
initTest();
225
checkFieldValue(YEAR, year);
226
checkFieldValue(MONTH, month);
227
checkFieldValue(DAY_OF_MONTH, dayOfMonth);
228
return getStatus();
229
}
230
231
boolean checkDate(int year, int month, int dayOfMonth, int dayOfWeek) {
232
initTest();
233
checkFieldValue(YEAR, year);
234
checkFieldValue(MONTH, month);
235
checkFieldValue(DAY_OF_MONTH, dayOfMonth);
236
checkFieldValue(DAY_OF_WEEK, dayOfWeek);
237
return getStatus();
238
}
239
240
boolean checkDateTime(int year, int month, int dayOfMonth,
241
int hourOfDay, int minute, int second, int ms) {
242
initTest();
243
checkFieldValue(YEAR, year);
244
checkFieldValue(MONTH, month);
245
checkFieldValue(DAY_OF_MONTH, dayOfMonth);
246
checkFieldValue(HOUR_OF_DAY, hourOfDay);
247
checkFieldValue(MINUTE, minute);
248
checkFieldValue(SECOND, second);
249
checkFieldValue(MILLISECOND, ms);
250
return getStatus();
251
}
252
253
boolean checkTime(int hourOfDay, int minute, int second, int ms) {
254
initTest();
255
checkFieldValue(HOUR_OF_DAY, hourOfDay);
256
checkFieldValue(MINUTE, minute);
257
checkFieldValue(SECOND, second);
258
checkFieldValue(MILLISECOND, ms);
259
return getStatus();
260
}
261
262
boolean checkFieldState(int field, boolean expectedState) {
263
if (isSet(field) != expectedState) {
264
appendMessage(FIELD_NAMES[field] + " state is not " + expectedState + "; ");
265
return false;
266
}
267
return true;
268
}
269
270
boolean checkFieldValue(int field, int expectedValue) {
271
int val;
272
if ((val = get(field)) != expectedValue) {
273
appendMessage("get(" + FIELD_NAMES[field] + "): got " + val
274
+ ", expected " + expectedValue + "; ");
275
return false;
276
}
277
return true;
278
}
279
280
boolean checkInternalFieldValue(int field, int expectedValue) {
281
int val;
282
if ((val = internalGet(field)) != expectedValue) {
283
appendMessage("internalGet(" + FIELD_NAMES[field] + "): got " + val
284
+ ", expected " + expectedValue + "; ");
285
return false;
286
}
287
return true;
288
}
289
}
290
291