Package org.apache.tapestry5.ioc.util

# Class LocalizedNameGenerator

java.lang.Object
org.apache.tapestry5.ioc.util.LocalizedNameGenerator

All Implemented Interfaces:
  `Iterable<String>`, `Iterator<String>`

public class LocalizedNameGenerator extends Object implements Iterator<String>, Iterable<String>
Generates name variations for a given file name or path and a locale. The name variations are provided in most-specific to least-specific order, so for a path of "Base.ext" and a Locale of "en_US", the generated names would be "Base_en_US.ext", "Base_en.ext", "Base.ext". Implements Iterable, so a LocalizedNameGenerator may be used directly in a for loop. This class is not threadsafe.

Since:
  5.3

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LocalizedNameGenerator(String path, Locale locale)`
  Creates a new generator for the given path and locale.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Locale`
  `getCurrentLocale()`
  `boolean`
  `hasNext()`
  Returns true if there are more name variants to be returned, false otherwise.
  `Iterator<String>`
  `iterator()`
  So that LNG may be used with the for loop.
  `String`
  `next()`
  Returns the next localized variant.
  `void`
  `remove()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface java.lang.Iterable

  `forEach, spliterator`

  ### Methods inherited from interface java.util.Iterator

  `forEachRemaining`

- ## Constructor Details

  - ### LocalizedNameGenerator

    public LocalizedNameGenerator(String path, Locale locale)
    Creates a new generator for the given path and locale.
    Parameters:
      `path` - non-blank path
      `locale` - non-null locale

- ## Method Details

  - ### hasNext

    public boolean hasNext()
    Returns true if there are more name variants to be returned, false otherwise.
    Specified by:
      `hasNext` in interface `Iterator<String>`

  - ### next

    public String next()
    Returns the next localized variant.
    Specified by:
      `next` in interface `Iterator<String>`
    Throws:
      `NoSuchElementException` - if all variants have been returned.

  - ### getCurrentLocale

    public Locale getCurrentLocale()

  - ### remove

    public void remove()
    Specified by:
      `remove` in interface `Iterator<String>`
    Throws:
      `UnsupportedOperationException`

  - ### iterator

    public Iterator<String> iterator()
    So that LNG may be used with the for loop.
    Specified by:
      `iterator` in interface `Iterable<String>`