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