2121
2222public final class I18nMessagePackBuilder {
2323 private final AggregatedI18nLoader loader = new AggregatedI18nLoader ();
24- private final List <I18nPath > referenceFallbackPaths = new ArrayList <>();
25- private final List <I18nPath > messageFallbackPaths = new ArrayList <>();
2624 private final List <I18nArgTransformer <?>> argTransformers = new ArrayList <>();
2725 private I18nMissingMessageHandler missingMessageHandler = I18nMissingMessageHandler .errorThrowingHandler ();
2826 private Locale defaultLocale ;
2927 private boolean transformJava8TimeTypes = true ;
3028 private boolean normalizeWhitespaces = false ;
3129 private boolean resolveReferences = true ;
30+ private List <I18nPath > referencePrefixes = new ArrayList <>();
31+ private List <I18nPath > queryPrefixes = new ArrayList <>();
3232 private I18nMissingMessagesDetector missingMessagesDetector ;
3333
3434 I18nMessagePackBuilder () {
@@ -38,8 +38,8 @@ public final class I18nMessagePackBuilder {
3838 private I18nMessagePackBuilder copy () {
3939 I18nMessagePackBuilder builder = new I18nMessagePackBuilder ();
4040 builder .loader .addLoader (loader .copy ());
41- builder .referenceFallbackPaths .addAll (referenceFallbackPaths );
42- builder .messageFallbackPaths .addAll (messageFallbackPaths );
41+ builder .referencePrefixes .addAll (referencePrefixes );
42+ builder .queryPrefixes .addAll (queryPrefixes );
4343 builder .argTransformers .addAll (argTransformers );
4444 builder .missingMessageHandler = missingMessageHandler ;
4545 builder .defaultLocale = defaultLocale ;
@@ -251,71 +251,43 @@ public I18nMessagePackBuilder setDefaultLocale(@NotNull Locale defaultLocale) {
251251 }
252252
253253 @ NotNull
254- public I18nMessagePackBuilder addReferenceFallbackKeyPrefixes (@ NotNull List <String > keyPrefixes ) {
255- expectNonNull (keyPrefixes , "keyPrefixes " );
256- keyPrefixes . forEach ( this :: addReferenceFallbackKeyPrefix );
254+ public I18nMessagePackBuilder prefixReferenceQueries (@ NotNull List <I18nPath > prefixes ) {
255+ expectNonNull (prefixes , "prefixes " );
256+ this . referencePrefixes = List . copyOf ( prefixes );
257257 return this ;
258258 }
259259
260260 @ NotNull
261- public I18nMessagePackBuilder addReferenceFallbackKeyPrefixes (@ NotNull String ... keyPrefixes ) {
262- expectNonNull (keyPrefixes , "keyPrefixes" );
263- Arrays .stream (keyPrefixes ).forEach (this ::addReferenceFallbackKeyPrefix );
264- return this ;
265- }
266-
267- @ NotNull
268- public I18nMessagePackBuilder addReferenceFallbackKeyPrefix (@ NotNull String keyPrefix ) {
269- expectNonBlank (keyPrefix , "keyPrefix" );
270- I18nPath i18nPath = I18nPath .of (keyPrefix );
271- this .referenceFallbackPaths .add (i18nPath );
272- return this ;
273- }
274-
275- @ NotNull
276- public I18nMessagePackBuilder addMessageFallbackKeyPrefixes (@ NotNull List <String > keyPrefixes ) {
277- expectNonNull (keyPrefixes , "keyPrefixes" );
278- keyPrefixes .forEach (this ::addMessageFallbackKeyPrefix );
279- return this ;
280- }
281-
282- @ NotNull
283- public I18nMessagePackBuilder addMessageFallbackKeyPrefixes (@ NotNull String ... keyPrefixes ) {
284- expectNonNull (keyPrefixes , "keyPrefixes" );
285- Arrays .stream (keyPrefixes ).forEach (this ::addMessageFallbackKeyPrefix );
286- return this ;
261+ public I18nMessagePackBuilder prefixReferenceQueries (@ NotNull I18nPath ... prefixes ) {
262+ expectNonNull (prefixes , "prefixes" );
263+ return prefixReferenceQueries (List .of (prefixes ));
287264 }
288265
289266 @ NotNull
290- public I18nMessagePackBuilder addMessageFallbackKeyPrefix (@ NotNull String keyPrefix ) {
291- expectNonBlank (keyPrefix , "keyPrefix" );
292- I18nPath i18nPath = I18nPath .of (keyPrefix );
293- this .messageFallbackPaths .add (i18nPath );
294- return this ;
267+ public I18nMessagePackBuilder prefixReferenceQueries (@ NotNull String ... prefixes ) {
268+ expectNonNull (prefixes , "prefixes" );
269+ List <I18nPath > mapped = Arrays .stream (prefixes ).map (I18nPath ::of ).toList ();
270+ return prefixReferenceQueries (mapped );
295271 }
296272
297273 @ NotNull
298- public I18nMessagePackBuilder addFallbackKeyPrefixes (@ NotNull List <String > keyPrefixes ) {
299- expectNonNull (keyPrefixes , "keyPrefixes" );
300- addMessageFallbackKeyPrefixes (keyPrefixes );
301- addReferenceFallbackKeyPrefixes (keyPrefixes );
274+ public I18nMessagePackBuilder prefixQueries (@ NotNull List <I18nPath > prefixes ) {
275+ expectNonNull (prefixes , "prefixes" );
276+ this .queryPrefixes = List .copyOf (prefixes );
302277 return this ;
303278 }
304279
305280 @ NotNull
306- public I18nMessagePackBuilder addFallbackKeyPrefixes (@ NotNull String ... keyPrefixes ) {
307- expectNonNull (keyPrefixes , "keyPrefixes" );
308- addMessageFallbackKeyPrefixes (keyPrefixes );
309- addReferenceFallbackKeyPrefixes (keyPrefixes );
310- return this ;
281+ public I18nMessagePackBuilder prefixQueries (@ NotNull String ... prefixes ) {
282+ expectNonNull (prefixes , "prefixes" );
283+ List <I18nPath > mapped = Arrays .stream (prefixes ).map (I18nPath ::of ).toList ();
284+ return prefixQueries (mapped );
311285 }
312286
313287 @ NotNull
314- public I18nMessagePackBuilder addFallbackKeyPrefix (@ NotNull String keyPrefix ) {
315- expectNonBlank (keyPrefix , "keyPrefix" );
316- addMessageFallbackKeyPrefix (keyPrefix );
317- addReferenceFallbackKeyPrefix (keyPrefix );
318- return this ;
288+ public I18nMessagePackBuilder prefixQueries (@ NotNull I18nPath ... prefixes ) {
289+ expectNonNull (prefixes , "prefixes" );
290+ return prefixQueries (List .of (prefixes ));
319291 }
320292
321293 @ NotNull
@@ -349,14 +321,14 @@ private I18nMessagePack build(List<I18nMessageBundle> bundles) {
349321 bundles = TemplatesBundlePrefixes .prefix (bundles );
350322 detectMissingMessages (bundles );
351323 LocaleResolver localeResolver = LocaleResolver .of (defaultLocale , bundles );
352- I18nKeyGenerator messageKeyGenerator = new I18nKeyGenerator (defaultLocale , messageFallbackPaths , localeResolver );
324+ I18nKeyGenerator messageKeyGenerator = new I18nKeyGenerator (defaultLocale , queryPrefixes , localeResolver );
353325 MessageTemplateParser parser = buildMessageTemplateParser (bundles , localeResolver );
354326 Map <I18nKey , MessageTemplate > templates = parser .parseTemplates (bundles );
355327 return new ImmutableI18nMessagePack (templates , parser , missingMessageHandler , messageKeyGenerator );
356328 }
357329
358330 private MessageTemplateParser buildMessageTemplateParser (List <I18nMessageBundle > bundles , LocaleResolver localeResolver ) {
359- I18nKeyGenerator referenceKeyGenerator = new I18nKeyGenerator (defaultLocale , referenceFallbackPaths , localeResolver );
331+ I18nKeyGenerator referenceKeyGenerator = new I18nKeyGenerator (defaultLocale , referencePrefixes , localeResolver );
360332 ReferenceResolver referenceResolver = new ReferenceResolver (bundles , referenceKeyGenerator , resolveReferences );
361333 ArgumentResolver argumentResolver = buildArgumentResolver ();
362334 MessageTemplateNormalizer messageTemplateNormalizer = new MessageTemplateNormalizer (normalizeWhitespaces );
0 commit comments