Skip to content

Commit c2f39f1

Browse files
committed
Refactor: Extract duplicate Locale logic and use Optional for null checks
1 parent d89983d commit c2f39f1

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.web.servlet.i18n;
1818

1919
import java.util.Locale;
20+
import java.util.Optional;
2021
import java.util.TimeZone;
2122
import java.util.function.Function;
2223

@@ -57,6 +58,7 @@
5758
*
5859
* @author Juergen Hoeller
5960
* @author Vedran Pavic
61+
* @author Sungbin Yang
6062
* @since 27.02.2003
6163
* @see #setDefaultLocale
6264
* @see #setDefaultTimeZone
@@ -93,6 +95,11 @@ public class SessionLocaleResolver extends AbstractLocaleContextResolver {
9395
return (defaultLocale != null ? defaultLocale : request.getLocale());
9496
};
9597

98+
private Locale getLocaleFromRequest(HttpServletRequest request) {
99+
return Optional.ofNullable((Locale) WebUtils.getSessionAttribute(request, this.localeAttributeName))
100+
.orElse(defaultLocaleFunction.apply(request));
101+
}
102+
96103
private Function<HttpServletRequest, TimeZone> defaultTimeZoneFunction = request -> getDefaultTimeZone();
97104

98105
/**
@@ -148,32 +155,21 @@ public void setDefaultTimeZoneFunction(Function<HttpServletRequest, TimeZone> de
148155

149156
@Override
150157
public Locale resolveLocale(HttpServletRequest request) {
151-
Locale locale = (Locale) WebUtils.getSessionAttribute(request, this.localeAttributeName);
152-
if (locale == null) {
153-
locale = this.defaultLocaleFunction.apply(request);
154-
}
155-
return locale;
158+
return getLocaleFromRequest(request);
156159
}
157160

158161
@Override
159162
public LocaleContext resolveLocaleContext(final HttpServletRequest request) {
160163
return new TimeZoneAwareLocaleContext() {
161164
@Override
162165
public Locale getLocale() {
163-
Locale locale = (Locale) WebUtils.getSessionAttribute(request, localeAttributeName);
164-
if (locale == null) {
165-
locale = defaultLocaleFunction.apply(request);
166-
}
167-
return locale;
166+
return getLocaleFromRequest(request);
168167
}
169168
@Override
170169
@Nullable
171170
public TimeZone getTimeZone() {
172-
TimeZone timeZone = (TimeZone) WebUtils.getSessionAttribute(request, timeZoneAttributeName);
173-
if (timeZone == null) {
174-
timeZone = defaultTimeZoneFunction.apply(request);
175-
}
176-
return timeZone;
171+
return Optional.ofNullable((TimeZone) WebUtils.getSessionAttribute(request, timeZoneAttributeName))
172+
.orElse(defaultTimeZoneFunction.apply(request));
177173
}
178174
};
179175
}

0 commit comments

Comments
 (0)