Skip to content

Commit 3806e18

Browse files
authored
Merge pull request #35 from gessi-chatbots/datasets-hf
date hotfix
2 parents 67fde78 + 2302d31 commit 3806e18

File tree

1 file changed

+43
-19
lines changed

1 file changed

+43
-19
lines changed

src/main/java/upc/edu/gessi/repo/repository/impl/ReviewRepositoryImpl.java

Lines changed: 43 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -425,51 +425,75 @@ private ReviewFeatureResponseDTO getReviewFeatureDTO(final BindingSet bindings)
425425

426426

427427
private ReviewDTO getReviewDTO(final BindingSet bindings) {
428-
ReviewDTO ReviewDTO = new ReviewDTO();
428+
ReviewDTO reviewDTO = new ReviewDTO();
429+
429430
if (existsShortReviewBinding(bindings)) {
430431
if (bindings.getBinding("id") != null && bindings.getBinding("id").getValue() != null) {
431432
String idValue = bindings.getBinding("id").getValue().stringValue();
432-
ReviewDTO.setId(idValue);
433+
reviewDTO.setId(idValue);
433434
}
434435

435436
if (bindings.getBinding("text") != null && bindings.getBinding("text").getValue() != null) {
436437
String textValue = bindings.getBinding("text").getValue().stringValue();
437-
ReviewDTO.setReviewText(textValue);
438+
reviewDTO.setReviewText(textValue);
438439
}
439440

440441
if (bindings.getBinding("app_identifier") != null && bindings.getBinding("app_identifier").getValue() != null) {
441442
String appValue = bindings.getBinding("app_identifier").getValue().stringValue();
442-
ReviewDTO.setApplicationId(appValue);
443-
443+
reviewDTO.setApplicationId(appValue);
444444
}
445445

446446
if (bindings.getBinding("date") != null && bindings.getBinding("date").getValue() != null) {
447447
String dateString = bindings.getBinding("date").getValue().stringValue();
448-
try {
449-
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
450-
Date date = dateFormat.parse(dateString);
451-
ReviewDTO.setDate(date);
452-
} catch (ParseException e) {
453-
e.printStackTrace();
448+
449+
Date date = parseDate(dateString);
450+
if (date != null) {
451+
reviewDTO.setDate(date);
452+
} else {
453+
System.err.println("Failed to parse date: " + dateString);
454454
}
455455
}
456456
}
457-
ReviewDTO.setSentences(new ArrayList<>());
458-
TupleQueryResult sentencesResult =
459-
runSparqlQuery(reviewQueryBuilder.findReviewSentencesEmotions(new ArrayList<>(Collections.singleton(ReviewDTO.getId()))));
457+
458+
reviewDTO.setSentences(new ArrayList<>());
459+
TupleQueryResult sentencesResult = runSparqlQuery(
460+
reviewQueryBuilder.findReviewSentencesEmotions(new ArrayList<>(Collections.singleton(reviewDTO.getId())))
461+
);
462+
460463
if (sentencesResult.hasNext()) {
461464
while (sentencesResult.hasNext()) {
462-
ReviewDTO
463-
.getSentences()
464-
.add(getSentenceDTO(sentencesResult));
465+
reviewDTO.getSentences().add(getSentenceDTO(sentencesResult));
465466
}
466467
} else {
467-
ReviewDTO.setSentences(new ArrayList<>());
468+
reviewDTO.setSentences(new ArrayList<>());
468469
}
469470

470-
return ReviewDTO;
471+
return reviewDTO;
471472
}
472473

474+
private Date parseDate(String dateString) {
475+
List<String> dateFormats = Arrays.asList(
476+
"yyyy-MM-dd",
477+
"EEE MMM dd HH:mm:ss z yyyy",
478+
"MM/dd/yyyy",
479+
"dd/MM/yyyy",
480+
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
481+
"yyyy-MM-dd'T'HH:mm:ss'Z'",
482+
"yyyy-MM-dd HH:mm:ss"
483+
);
484+
485+
for (String format : dateFormats) {
486+
try {
487+
SimpleDateFormat dateFormat = new SimpleDateFormat(format, Locale.ENGLISH);
488+
dateFormat.setLenient(false);
489+
return dateFormat.parse(dateString);
490+
} catch (ParseException ignored) {
491+
}
492+
}
493+
494+
System.err.println("Failed to parse date: " + dateString);
495+
return null; // If no formats match
496+
}
473497
private boolean existsShortReviewBinding(BindingSet bindings) {
474498
return bindings.getBinding("id") != null
475499
&& bindings.getBinding("id").getValue() != null

0 commit comments

Comments
 (0)