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