ru.bitel.bgbilling.kernel.event

## Class Event

- java.lang.Object
- - ru.bitel.bgbilling.kernel.event.Event

- All Implemented Interfaces:
    java.io.Serializable
  Direct Known Subclasses:
    ApplicationRunningEvent, CheckApplicationRunEvent, ContractModifiedEvent, ContractStatusChangedTopicEvent, ContractTariffChangedEvent, ContractTariffOptionChangedEvent, ru.bitel.bgbilling.kernel.directory.api.common.DirectoryItemModifiedEvent, EventScriptLinkDeletedEvent, EventScriptLinkModifiedEvent, InetAllTariffMaxTraffAndRangeUpdate, InetConnectionDeviceStateAndOptionsModifiedEvent, InetReloadEvent, InetServDeviceStateAndOptionsModifiedEvent, InetServModifiedEvent, InetServRestrictionModifiedEvent, IpResourceModifiedEvent, ModulesChangedEvent, NasListModifiedEvent, NewsModifiedEvent, PoolEvent, ProductModifiedEvent, ProductModifiedEvent, ProductPeriodModifiedEvent, QueueEvent, ScriptUpdatedEvent, ServiceLinkModifiedEvent, ServiceModifiedEvent, ServicesChangedEvent, TariffTreeModifiedEvent, TimeTypesChangedEvent, TvAccountDeviceStateAndOptionsModifiedEvent, TvAccountModifiedEvent, TvProductDeviceStateModifiedEvent, TvProductsDeviceStateModifiedEvent, TvReloadEvent

      public abstract class Event
      extends java.lang.Object
      implements java.io.Serializable

  Абстрактный супер класс для всех событий.
  Publisher-Subscriber событие. Может доставляться нескольким слушателям в отличие от `QueueEvent`
  Если слушатель был неактивен в момент отправки - он это событие не получит.
  Каждый расширяющий класс должен иметь сгенерированный serialVersionUID для совместимости с перекомпилянной версией.
  Также в каждом конечном классе события должна присутствовать аннотация `XmlRootElement` и пустой коструктор (protected).
  Для простых полей (например, int long String и т.п.) желательно указывать аннотацию `XmlAttribute`. Для событий которых может быть сразу несколько (например, событие изменения баланса)
  возможно стоит делать один объект-событие (также смотри `PoolEvent`).
  Author:
    amir
  See Also:
    `LocalEvent}, {@link QueueEvent}, {@link PoolEvent}`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static int` | `CONTRACT_GLOBAL`
    `protected static int` | `NO_MODULE`
    `protected static int` | `NO_PLUGIN`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Event()`
    `` | `Event(int moduleId, int contractId, int userId)` Конструктор события ядра или модуля.
    `` | `Event(int moduleId, int pluginId, int contractId, int userId)` Конструктор события плагина.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getContractId()` Код договора с которым произошло событие.
    `int` | `getContractID()` Deprecated. использовать `getContractId()`
    `protected java.lang.String` | `getDestination(java.lang.Class<?> clazz)`
    `java.util.Calendar` | `getGenerateTime()` Deprecated. use `getTime()`
    `int` | `getModuleId()` Код сгенерировашего событие модуля, 0 - ядро
    `int` | `getModuleID()` Deprecated. использовать `getModuleId()`
    `int` | `getPluginId()`
    `int` | `getSuperContractId()` Код супер договора для зависимого субдоговора.
    `java.util.Calendar` | `getTime()`
    `long` | `getTimestamp()`
    `int` | `getTypeId()` Deprecated.
    `int` | `getUserId()` Код пользователя биллинга, сформировавшего событие.
    `protected void` | `prepareMessage(javax.jms.Message message)`
    `java.lang.String` | `toString()`
    `protected void` | `toString(java.lang.StringBuilder sb)`

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

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

- - ### Field Detail

    - #### NO_MODULE

          protected static int NO_MODULE

    - #### NO_PLUGIN

          protected static int NO_PLUGIN

    - #### CONTRACT_GLOBAL

          protected static int CONTRACT_GLOBAL

  - ### Constructor Detail

    - #### Event

          protected Event()

    - #### Event

          public Event(int moduleId,
                       int pluginId,
                       int contractId,
                       int userId)

      Конструктор события плагина.
      Parameters:
        `moduleId` - NO_MODULE.
        `pluginId` - uid плагина.
        `contractId` - код договора, для глобальных событий должен быть = CONTRACT_GLOBAL.
        `userId` - код пользователя биллинга.

    - #### Event

          public Event(int moduleId,
                       int contractId,
                       int userId)

      Конструктор события ядра или модуля.
      Parameters:
        `moduleId` - 0 для ядра, либо код экземпляра модуля.
        `contractId` - код договора, для глобальных событий должен быть = -1.
        `userId` - код пользователя.

  - ### Method Detail

    - #### prepareMessage

          protected void prepareMessage(javax.jms.Message message)
                                 throws javax.jms.JMSException

      Throws:
        `javax.jms.JMSException`

    - #### getModuleId

          public int getModuleId()

      Код сгенерировашего событие модуля, 0 - ядро
      Returns:
        int

    - #### getModuleID

          @Deprecated
          public int getModuleID()

      Deprecated. использовать `getModuleId()`
      Код сгенерировашего событие модуля, 0 - ядро
      Returns:
        int

    - #### getContractId

          public int getContractId()

      Код договора с которым произошло событие. Для глобальных событий должен быть = -1 (CONTRACT_GLOBAL)
      Returns:
        int

    - #### getSuperContractId

          public int getSuperContractId()

      Код супер договора для зависимого субдоговора. В данный момент это поле постоянно равно -1 и нигде не используется.
      Returns:

    - #### getContractID

          @Deprecated
          public int getContractID()

      Deprecated. использовать `getContractId()`
      Код договора с которым произошло событие
      Returns:
        int

    - #### getUserId

          public int getUserId()

      Код пользователя биллинга, сформировавшего событие.
      Returns:
        код пользователя биллинга

    - #### getTypeId

          @Deprecated
          public int getTypeId()

      Deprecated.
      Для поддержки совместимости со старыми событиями с данным методом, который могли использовать скрипты. Использовать проверку instanceof.
      Returns:

    - #### getGenerateTime

          @Deprecated
          public java.util.Calendar getGenerateTime()

      Deprecated. use `getTime()`
      Время генерации события системой
      Returns:
        Calendar

    - #### getTime

          public java.util.Calendar getTime()

    - #### getTimestamp

          public long getTimestamp()

    - #### toString

          protected void toString(java.lang.StringBuilder sb)

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getPluginId

          public int getPluginId()

    - #### getDestination

          protected java.lang.String getDestination(java.lang.Class<?> clazz)