44
44
public class DateLiteral extends Literal {
45
45
public static final String JAVA_DATE_FORMAT = "yyyy-MM-dd" ;
46
46
47
+ public static final Set <Character > punctuations = ImmutableSet .of ('!' , '@' , '#' , '$' , '%' , '^' , '&' , '*' , '(' , ')' ,
48
+ '-' , '+' , '=' , '_' , '{' , '}' , '[' , ']' , '|' , '\\' , ':' , ';' , '"' , '\'' , '<' , '>' , ',' , '.' , '?' , '/' , '~' ,
49
+ '`' );
50
+
47
51
// for cast datetime type to date type.
48
52
private static final LocalDateTime START_OF_A_DAY = LocalDateTime .of (0 , 1 , 1 , 0 , 0 , 0 );
49
53
private static final LocalDateTime END_OF_A_DAY = LocalDateTime .of (9999 , 12 , 31 , 23 , 59 , 59 , 999999000 );
50
54
private static final DateLiteral MIN_DATE = new DateLiteral (0 , 1 , 1 );
51
55
private static final DateLiteral MAX_DATE = new DateLiteral (9999 , 12 , 31 );
52
56
private static final int [] DAYS_IN_MONTH = new int [] {0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 };
53
57
54
- public static final Set <Character > punctuations = ImmutableSet .of ('!' , '@' , '#' , '$' , '%' , '^' , '&' , '*' , '(' , ')' ,
55
- '-' , '+' , '=' , '_' , '{' , '}' , '[' , ']' , '|' , '\\' , ':' , ';' , '"' , '\'' , '<' , '>' , ',' , '.' , '?' , '/' , '~' ,
56
- '`' );
57
-
58
58
protected long year ;
59
59
protected long month ;
60
60
protected long day ;
@@ -209,7 +209,9 @@ static Result<String, AnalysisException> normalize(String s) {
209
209
}
210
210
} else {
211
211
final String currentString = s ;
212
- return Result .err (() -> new AnalysisException ("date/datetime literal [" + currentString + "] is invalid" ));
212
+ return Result .err (
213
+ () -> new AnalysisException ("date/datetime literal [" + currentString + "] is invalid" )
214
+ );
213
215
}
214
216
i = j ;
215
217
partNumber += 1 ;
@@ -230,7 +232,9 @@ static Result<String, AnalysisException> normalize(String s) {
230
232
sb .append (':' );
231
233
} else {
232
234
final String currentString = s ;
233
- return Result .err (() -> new AnalysisException ("date/datetime literal [" + currentString + "] is invalid" ));
235
+ return Result .err (
236
+ () -> new AnalysisException ("date/datetime literal [" + currentString + "] is invalid" )
237
+ );
234
238
}
235
239
} else {
236
240
break ;
@@ -264,6 +268,7 @@ static Result<String, AnalysisException> normalize(String s) {
264
268
return Result .ok (sb .toString ());
265
269
}
266
270
271
+ /** parseDateLiteral */
267
272
public static Result <DateLiteral , AnalysisException > parseDateLiteral (String s ) {
268
273
Result <TemporalAccessor , AnalysisException > parseResult = parseDateTime (s );
269
274
if (parseResult .isError ()) {
@@ -280,6 +285,7 @@ public static Result<DateLiteral, AnalysisException> parseDateLiteral(String s)
280
285
return Result .ok (new DateLiteral (year , month , day ));
281
286
}
282
287
288
+ /** parseDateTime */
283
289
public static Result <TemporalAccessor , AnalysisException > parseDateTime (String s ) {
284
290
// fast parse '2022-01-01'
285
291
if (s .length () == 10 && s .charAt (4 ) == '-' && s .charAt (7 ) == '-' ) {
@@ -336,7 +342,9 @@ public static Result<TemporalAccessor, AnalysisException> parseDateTime(String s
336
342
337
343
// if Year is not present, throw exception
338
344
if (!dateTime .isSupported (ChronoField .YEAR )) {
339
- return Result .err (() -> new AnalysisException ("date/datetime literal [" + originalString + "] is invalid" ));
345
+ return Result .err (
346
+ () -> new AnalysisException ("date/datetime literal [" + originalString + "] is invalid" )
347
+ );
340
348
}
341
349
342
350
return Result .ok (dateTime );
0 commit comments