public class AbstractCLEntry extends Object implements ScnChanged<AbstractCLEntry,Long>, SetSync
| Modifier and Type | Field and Description |
|---|---|
protected String |
label
Указывает отображаемую метку
|
protected LongScnChangedSupport<AbstractCLEntry> |
scnChangedSupport
Поддержка SCN номеров
|
protected Object |
sync
Объект для синхронизации
|
| Constructor and Description |
|---|
AbstractCLEntry()
Конструктор по умолчанию
|
AbstractCLEntry(AbstractCLEntry sample)
Конструктор копирования
|
| Modifier and Type | Method and Description |
|---|---|
void |
addScnChangedEvent(ScnChangedEvent<AbstractCLEntry,Long> ev)
Добавляет уведомление в очередь
|
Closeable |
addScnChangedListener(ScnChanedListener<AbstractCLEntry,Long> listener)
Добавляет подписчика на изменения
|
Closeable |
addScnChangedListener(ScnChanedListener<AbstractCLEntry,Long> listener,
boolean weakLink)
Добавляет подписчика на изменения
|
Object |
compareAndSetSync(Object cmp,
Object newSyncObj)
Указывает объект для синхронизации, если текущее значение совпадает с указанным
|
void |
fireScnChanged(Long old,
Long cur)
Уведомляет подписчиков о измении SCN минуя очередь уведомлений
|
void |
fireScnChangedEvent(ScnChangedEvent<AbstractCLEntry,Long> event) |
void |
fireScnChangedEvents()
Рассылает уведомления из очереди
|
String |
getLabel()
Указывает отображаемую метку
|
ConcurrentLinkedQueue<ScnChangedEvent<AbstractCLEntry,Long>> |
getScnChangedEventQueue()
Возвращает очередь уведомлений
|
Set<ScnChanedListener<AbstractCLEntry,Long>> |
getScnChangedListeners()
Возвращает активных подписчиков
|
Object |
getSync()
Возвращает объект синхроназции
|
boolean |
hasScnChangedListener(ScnChanedListener<AbstractCLEntry,Long> listener)
Проверяет что указанный подписчик имеется в списках рассылки
|
Pair<Long,Long> |
nextscn()
Генерирует новый номер SCN.
|
Pair<Long,Long> |
nextscn(boolean addEvent,
boolean fireEvent)
Генерирует новый номер SCN
|
void |
removeAllScnChangedListeners()
Удаляет всех подписчиков
|
void |
removeScnChangedListener(ScnChanedListener<AbstractCLEntry,Long> listener)
Удаляет подписчика от уведомлений
|
Long |
scn()
Возвращает текущий номер изменений
|
void |
setLabel(String path)
Указывает отображаемую метку
Если указан sync объект, то он используется в блоке synchronized()
|
void |
setSync(Object sync)
Указывает объект для синхронизации
|
protected final LongScnChangedSupport<AbstractCLEntry> scnChangedSupport
protected volatile Object sync
protected String label
public AbstractCLEntry()
public AbstractCLEntry(AbstractCLEntry sample)
sample - образец для копированияpublic Long scn()
ScnChangedscn in interface ScnChanged<AbstractCLEntry,Long>public Pair<Long,Long> nextscn(boolean addEvent, boolean fireEvent)
addEvent - true - добавляет извещение в очередьfireEvent - true - рассылает накопленные собщения из очередиpublic Pair<Long,Long> nextscn()
Если уровень вложенности scn( Runnable ) - нулевой (нет вложенных блоков), то рассылает накопленные собщения из очереди.
Если уровень вложенности scn( Runnable ) - больше нуля, то просто добавляет извещения в очередь.
public boolean hasScnChangedListener(ScnChanedListener<AbstractCLEntry,Long> listener)
ScnChangedhasScnChangedListener in interface ScnChanged<AbstractCLEntry,Long>listener - подписчикpublic Set<ScnChanedListener<AbstractCLEntry,Long>> getScnChangedListeners()
ScnChangedgetScnChangedListeners in interface ScnChanged<AbstractCLEntry,Long>public Closeable addScnChangedListener(ScnChanedListener<AbstractCLEntry,Long> listener)
ScnChangedaddScnChangedListener in interface ScnChanged<AbstractCLEntry,Long>listener - подписчикpublic Closeable addScnChangedListener(ScnChanedListener<AbstractCLEntry,Long> listener, boolean weakLink)
ScnChangedaddScnChangedListener in interface ScnChanged<AbstractCLEntry,Long>listener - подписчикweakLink - true - добавить подписчика на weak ссылку / false - как hard ссылкуpublic void removeScnChangedListener(ScnChanedListener<AbstractCLEntry,Long> listener)
ScnChangedremoveScnChangedListener in interface ScnChanged<AbstractCLEntry,Long>listener - подписчикpublic void removeAllScnChangedListeners()
ScnChangedremoveAllScnChangedListeners in interface ScnChanged<AbstractCLEntry,Long>public void fireScnChangedEvent(ScnChangedEvent<AbstractCLEntry,Long> event)
public ConcurrentLinkedQueue<ScnChangedEvent<AbstractCLEntry,Long>> getScnChangedEventQueue()
public void addScnChangedEvent(ScnChangedEvent<AbstractCLEntry,Long> ev)
ev - уведомлениеpublic void fireScnChangedEvents()
public void fireScnChanged(Long old, Long cur)
old - предыдущее значение SCNcur - текущее значение SCNpublic void setSync(Object sync)
public Object compareAndSetSync(Object cmp, Object newSyncObj)
compareAndSetSync in interface SetSynccmp - Объект для сравненияnewSyncObj - новый объект синхронизации, если cmp совпадает с текущим значениемpublic Object getSync()
public String getLabel()
public void setLabel(String path)
path - меткаCopyright © 2018. All rights reserved.