Package: BundleUtilities
BundleUtilities
name | instruction | branch | complexity | line | method | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
getMessage(Class, Locale, String, Object[]) |
|
|
|
|
|
||||||||||||||||||||
getMessage(Class, String, Object[]) |
|
|
|
|
|
Coverage
1: /*
2: * *********************************************************************************************************************
3: *
4: * TheseFoolishThings: Miscellaneous utilities
5: * http://tidalwave.it/projects/thesefoolishthings
6: *
7: * Copyright (C) 2009 - 2024 by Tidalwave s.a.s. (http://tidalwave.it)
8: *
9: * *********************************************************************************************************************
10: *
11: * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
12: * the License. You may obtain a copy of the License at
13: *
14: * http://www.apache.org/licenses/LICENSE-2.0
15: *
16: * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
17: * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations under the License.
19: *
20: * *********************************************************************************************************************
21: *
22: * git clone https://bitbucket.org/tidalwave/thesefoolishthings-src
23: * git clone https://github.com/tidalwave-it/thesefoolishthings-src
24: *
25: * *********************************************************************************************************************
26: */
27: package it.tidalwave.util;
28:
29: import javax.annotation.Nonnull;
30: import java.util.Locale;
31: import java.util.ResourceBundle;
32: import lombok.AccessLevel;
33: import lombok.NoArgsConstructor;
34:
35: /***********************************************************************************************************************
36: *
37: * Facility class to manage resource bundles.
38: *
39: * @since 3.1-ALPHA-2
40: * @author Fabrizio Giudici
41: *
42: **********************************************************************************************************************/
43: @NoArgsConstructor(access = AccessLevel.PRIVATE)
44: public final class BundleUtilities
45: {
46: /*******************************************************************************************************************
47: *
48: * Returns a localised message.
49: *
50: * @param ownerClass the owner of the bundle
51: * @param resourceName the name of the resource inside the bundle
52: * @param params the parameters (used if the string in the bundle is a {@code String} format)
53: * @return the message
54: *
55: ******************************************************************************************************************/
56: @Nonnull
57: public static String getMessage (@Nonnull final Class<?> ownerClass,
58: @Nonnull final String resourceName,
59: @Nonnull final Object ... params)
60: {
61: return getMessage(ownerClass, Locale.getDefault(), resourceName, params);
62: }
63:
64: /*******************************************************************************************************************
65: *
66: * Returns a localised message.
67: *
68: * @since 3.1-ALPHA-4
69: * @param ownerClass the owner of the bundle
70: * @param locale the {@link Locale}
71: * @param resourceName the name of the resource inside the bundle
72: * @param params the parameters (used if the string in the bundle is a {@code String} format)
73: * @return the message
74: *
75: ******************************************************************************************************************/
76: @Nonnull
77: public static String getMessage (@Nonnull final Class<?> ownerClass,
78: @Nonnull final Locale locale,
79: @Nonnull final String resourceName,
80: @Nonnull final Object ... params)
81: {
82: final var packageName = ownerClass.getPackage().getName();
83: final var bundle = ResourceBundle.getBundle(packageName + ".Bundle", locale);
84: final var string = bundle.getString(resourceName);
85:
86:• return (params.length == 0) ? string : String.format(string, params);
87: }
88: }