1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.mylasta.direction.sponsor;
17
18 import java.util.Locale;
19
20 import org.apache.commons.lang3.LocaleUtils;
21 import org.apache.logging.log4j.LogManager;
22 import org.apache.logging.log4j.Logger;
23 import org.codelibs.core.lang.StringUtil;
24 import org.codelibs.fess.mylasta.direction.FessConfig;
25 import org.codelibs.fess.util.ComponentUtil;
26 import org.dbflute.optional.OptionalObject;
27 import org.dbflute.optional.OptionalThing;
28 import org.dbflute.util.DfTypeUtil;
29 import org.lastaflute.web.ruts.process.ActionRuntime;
30 import org.lastaflute.web.servlet.request.RequestManager;
31 import org.lastaflute.web.servlet.request.UserLocaleProcessProvider;
32
33
34
35
36 public class FessUserLocaleProcessProvider implements UserLocaleProcessProvider {
37 private static final Logger logger = LogManager.getLogger(FessUserLocaleProcessProvider.class);
38
39 @Override
40 public boolean isAcceptCookieLocale() {
41 return false;
42 }
43
44 @Override
45 public OptionalThing<Locale> findBusinessLocale(final ActionRuntime runtimeMeta, final RequestManager requestManager) {
46 final FessConfig fessConfig = ComponentUtil.getFessConfig();
47 final String name = fessConfig.getQueryBrowserLangParameterName();
48 if (StringUtil.isNotBlank(name)) {
49 try {
50 return requestManager.getParameter(name).filter(StringUtil::isNotBlank).map(LocaleUtils::toLocale);
51 } catch (final Exception e) {
52 logger.debug("Failed to parse a value of {}.", name, e);
53 }
54 }
55 return OptionalObject.empty();
56 }
57
58 @Override
59 public OptionalThing<Locale> getRequestedLocale(final RequestManager requestManager) {
60 return OptionalObject.empty();
61 }
62
63
64
65
66 @Override
67 public String toString() {
68 final String hash = Integer.toHexString(hashCode());
69 return DfTypeUtil.toClassTitle(this) + ":{acceptCookieLocale=" + isAcceptCookieLocale() + "}@" + hash;
70 }
71 }