Package ru.bitel.bgbilling.kernel.directory.api.common.bean

# Interface Directory<K extends Id>

All Known Implementing Classes:
  `AbstractAddressDao`, `ru.bitel.bgbilling.common.dao.AbstractDirectoryIdDao`, `ru.bitel.common.dao.AbstractDirectoryIdDao`, `AreaDao`, `ChargeTypeDao`, `CityDao`, `ContractObjectTypeDao`, `ContractParameterGroupAttrDao`, `ContractParameterGroupDao`, `ContractParameterListItemDao`, `ContractParameterMultiListItemDao`, `CostMapManager`, `CountryDao`, `DeviceGroupDao`, `DeviceTypeDao`, `DocumentJournalDao`, `DocumentStatusDao`, `DocumentTypeDao`, `DomainDao`, `EntitySpecAttrDao`, `EntitySpecAttrListItemDao`, `EntitySpecDao`, `GroupRightDao`, `HouseDao`, `InetDeviceTypeDao`, `InetOptionDao`, `InetServTypeDao`, `ObjectParameterGroupAttrDao`, `PaymentTypeDao`, `ProductSpecDao`, `QuarterDao`, `RangeMapDao`, `ReserveTypeDao`, `ServiceDao`, `ServiceSpecDao`, `SmartHousePackageBaseDao`, `StreetDao`, `SubscriptionTypeDao`, `TariffGroupDao`, `TariffPlanDao`, `TrafficRangeSpecDao`, `TrafficTypeDao`, `TrafficTypeLinkDao`, `TvAccountSpecDao`, `TvChannelSpecDao`, `TvDeviceTypeDao`, `UserInfoDao`, `VoiceAccountTypeAbstractDao`, `VoiceAccountTypeDao`, `VoiceDeviceTypeDao`, `VoiceOperAccountTypeDao`, `VoiceOptionDao`, `VoiceZoneDao`

public interface Directory<K extends Id>
"Справочник" для бинов, которые изменяются редко, но используются в нескольких местах другими бинами.
Например, "тип" чего-то.
Такой бин должен быть аннотирован `DirectoryItem`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `deleteDirectoryItem(int id)`
  Удаление элемента по id
  `List<K>`
  `directoryItems()`
  Получение всего списка элементов из справочника
  `K`
  `getDirectoryItem(int id)`
  Получение элемента по id
  `K`
  `getDirectoryItem(String title)`
  Получение элемента по title(name)
  Может быть не имплементировано - в этом случае бросается `UnsupportedOperationException`
  `default Optional<K>`
  `optDirectoryItem(int id)`
  `K`
  `updateDirectoryItem(K k)`
  Изменение/добавление элемента справочника

- ## Method Details

  - ### getDirectoryItem

    K getDirectoryItem(int id) throws Exception
    Получение элемента по id
    Parameters:
      `id` -
    Returns:
    Throws:
      `Exception`

  - ### optDirectoryItem

    default Optional<K> optDirectoryItem(int id) throws Exception
    Throws:
      `Exception`

  - ### getDirectoryItem

    K getDirectoryItem(String title) throws Exception
    Получение элемента по title(name)
    Может быть не имплементировано - в этом случае бросается `UnsupportedOperationException`
    Parameters:
      `title` -
    Returns:
    Throws:
      `Exception`

  - ### directoryItems

    List<K> directoryItems() throws Exception
    Получение всего списка элементов из справочника
    Returns:
    Throws:
      `Exception`

  - ### updateDirectoryItem

    K updateDirectoryItem(K k) throws Exception
    Изменение/добавление элемента справочника
    Parameters:
      `k` -
    Throws:
      `Exception`

  - ### deleteDirectoryItem

    int deleteDirectoryItem(int id) throws Exception
    Удаление элемента по id
    Parameters:
      `id` -
    Returns:
    Throws:
      `Exception`