Making NewsModel a bit more null-safe.

pull/20/head
Jens Pelzetter 2022-02-26 14:54:36 +01:00
parent ae2d3b57ea
commit 6753d96ce2
1 changed files with 30 additions and 17 deletions

View File

@ -94,8 +94,8 @@ public class NewsModel implements ProcessesContentItem {
return releaseDateTime;
}
/**
* Returns the release date of the news represeted by this model formatted
/**
* Returns the release date of the news represented by this model formatted
* using the provided pattern. The pattern MUST be a valid pattern for
* {@link DateTimeFormatter#ofPattern(java.lang.String) }.
*
@ -104,16 +104,29 @@ public class NewsModel implements ProcessesContentItem {
* @return The formatted release date.
*/
public String getReleaseDate(final String pattern) {
return DateTimeFormatter
.ofPattern(pattern, globalizationHelper.getNegotiatedLocale())
.withZone(ZoneId.systemDefault())
.format(releaseDateTime);
return Optional
.ofNullable(releaseDateTime)
.map(
dateTime -> DateTimeFormatter
.ofPattern(
pattern,
globalizationHelper.getNegotiatedLocale()
)
.withZone(ZoneId.systemDefault())
.format(dateTime)
)
.orElse("");
}
public String getReleaseDateTimeAsString() {
return DateTimeFormatter.ISO_DATE_TIME
.withZone(ZoneId.systemDefault())
.format(releaseDateTime);
return Optional
.ofNullable(releaseDateTime)
.map(
dateTime -> DateTimeFormatter.ISO_DATE_TIME
.withZone(ZoneId.systemDefault())
.format(dateTime)
)
.orElse("");
}
@Transactional(Transactional.TxType.REQUIRED)
@ -145,14 +158,14 @@ public class NewsModel implements ProcessesContentItem {
.ofNullable(news.getText())
.map(globalizationHelper::getValueFromLocalizedString)
.orElse("");
releaseDateTime = LocalDateTime.from(
news.getReleaseDate().toInstant().atZone(ZoneId.systemDefault())
);
// releaseDateTime = Optional
// .ofNullable(news.getReleaseDate())
// .map(Date::toInstant)
// .map(isoDateTimeFormatter::format)
// .orElse("");
releaseDateTime = Optional
.ofNullable(news.getReleaseDate())
.map(
date -> LocalDateTime.from(
date.toInstant().atZone(ZoneId.systemDefault())
)
)
.orElse(null);
homepage = news.isHomepage();
}