21
21
22
22
public final class I18nMessagePackBuilder {
23
23
private final AggregatedI18nLoader loader = new AggregatedI18nLoader ();
24
- private final List <I18nPath > referenceFallbackPaths = new ArrayList <>();
25
- private final List <I18nPath > messageFallbackPaths = new ArrayList <>();
26
24
private final List <I18nArgTransformer <?>> argTransformers = new ArrayList <>();
27
25
private I18nMissingMessageHandler missingMessageHandler = I18nMissingMessageHandler .errorThrowingHandler ();
28
26
private Locale defaultLocale ;
29
27
private boolean transformJava8TimeTypes = true ;
30
28
private boolean normalizeWhitespaces = false ;
31
29
private boolean resolveReferences = true ;
30
+ private List <I18nPath > referencePrefixes = new ArrayList <>();
31
+ private List <I18nPath > queryPrefixes = new ArrayList <>();
32
32
private I18nMissingMessagesDetector missingMessagesDetector ;
33
33
34
34
I18nMessagePackBuilder () {
@@ -38,8 +38,8 @@ public final class I18nMessagePackBuilder {
38
38
private I18nMessagePackBuilder copy () {
39
39
I18nMessagePackBuilder builder = new I18nMessagePackBuilder ();
40
40
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 );
43
43
builder .argTransformers .addAll (argTransformers );
44
44
builder .missingMessageHandler = missingMessageHandler ;
45
45
builder .defaultLocale = defaultLocale ;
@@ -251,71 +251,43 @@ public I18nMessagePackBuilder setDefaultLocale(@NotNull Locale defaultLocale) {
251
251
}
252
252
253
253
@ 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 );
257
257
return this ;
258
258
}
259
259
260
260
@ 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 ));
287
264
}
288
265
289
266
@ 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 );
295
271
}
296
272
297
273
@ 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 );
302
277
return this ;
303
278
}
304
279
305
280
@ 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 );
311
285
}
312
286
313
287
@ 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 ));
319
291
}
320
292
321
293
@ NotNull
@@ -349,14 +321,14 @@ private I18nMessagePack build(List<I18nMessageBundle> bundles) {
349
321
bundles = TemplatesBundlePrefixes .prefix (bundles );
350
322
detectMissingMessages (bundles );
351
323
LocaleResolver localeResolver = LocaleResolver .of (defaultLocale , bundles );
352
- I18nKeyGenerator messageKeyGenerator = new I18nKeyGenerator (defaultLocale , messageFallbackPaths , localeResolver );
324
+ I18nKeyGenerator messageKeyGenerator = new I18nKeyGenerator (defaultLocale , queryPrefixes , localeResolver );
353
325
MessageTemplateParser parser = buildMessageTemplateParser (bundles , localeResolver );
354
326
Map <I18nKey , MessageTemplate > templates = parser .parseTemplates (bundles );
355
327
return new ImmutableI18nMessagePack (templates , parser , missingMessageHandler , messageKeyGenerator );
356
328
}
357
329
358
330
private MessageTemplateParser buildMessageTemplateParser (List <I18nMessageBundle > bundles , LocaleResolver localeResolver ) {
359
- I18nKeyGenerator referenceKeyGenerator = new I18nKeyGenerator (defaultLocale , referenceFallbackPaths , localeResolver );
331
+ I18nKeyGenerator referenceKeyGenerator = new I18nKeyGenerator (defaultLocale , referencePrefixes , localeResolver );
360
332
ReferenceResolver referenceResolver = new ReferenceResolver (bundles , referenceKeyGenerator , resolveReferences );
361
333
ArgumentResolver argumentResolver = buildArgumentResolver ();
362
334
MessageTemplateNormalizer messageTemplateNormalizer = new MessageTemplateNormalizer (normalizeWhitespaces );
0 commit comments