# Interface Namer<T>

Type Parameters:
  `T` - The type of object that the namer can name

All Known Implementing Classes:
  `Named.Namer`

public interface Namer<T>
A namer is capable of providing a name based on some inherent characteristic of an object.

Since:
  1.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static class`
  `Namer.Comparator<T>`
  A comparator implementation based on the names returned by the given namer.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `determineName(T object)`
  Determines the name of the given object.

- ## Method Details

  - ### determineName

    String determineName(T object)
    Determines the name of the given object.
    Parameters:
      `object` - The object to determine the name of
    Returns:
      The object's inherent name. Never null.
    Throws:
      `RuntimeException` - If the name cannot be determined or is null
    Since:
      1.0