public class DataTable extends Object
Каждая строка таблицы может находится в нескольких состояниях:
Fixed, Updated - содержится в коллекции рабочих строк (getWorkedRows())
Inserted - содержится в коллекции рабочих строк и коллекции новых строк (getWorkedRows())
DataRow| Modifier and Type | Class and Description |
|---|---|
static interface |
DataTable.InternalRun
Выполенеие внутреннего кода
|
class |
DataTable.NullRowsDisabler
Запрещает вставлять null ссылки в качестве строк
|
class |
DataTable.ReadonlyColumnsConstraint
Ограничение на операции с колонками.
|
class |
DataTable.WorkedRowsOnDeletedTacking
Слушает изменения рабочего набора и
при добавлении новой строки в WorkedRows отмечает ее как новую (getInsertedRows().add())
при удалении из рабочего набора строки, удаляет ее так же из (getInsertedRows)
|
class |
DataTable.WorkedRowsOnUpdateInsertTracking
Слушает изменения рабочего набора и
при добавлении новой строки в WorkedRows отмечает ее как новую (getInsertedRows().add())
при удалении из рабочего набора строки, удаляет ее так же из (getInsertedRows)
|
| Modifier and Type | Field and Description |
|---|---|
protected AtomicInteger |
dropCallLevel |
protected AtomicInteger |
eventLockLevel |
protected LinkedBlockingQueue<DataEvent> |
eventQueue |
protected DataEventSupport |
listeners |
| Constructor and Description |
|---|
DataTable()
Конструктор по умолчанию
|
DataTable(DataColumn[] columns)
Конструктор
|
DataTable(DataColumn[] columns,
Iterable<DataRow> rows,
Iterable<DataRow> inserted,
Iterable<DataRow> deleted)
Конструктор де сериализации
|
DataTable(DataColumn[] columns,
Iterable<Object[]> initialData)
Конструктор
|
| Modifier and Type | Method and Description |
|---|---|
void |
addColumn(DataColumn dc)
Добавляет колонку к таблице
|
void |
addDataEvent(DataEvent ev)
Добавляет событие в очередь
|
Closeable |
addDataEventListener(DataEventListener ls)
Добавляет подписчика на события
|
Closeable |
addDataEventListener(DataEventListener ls,
boolean weak)
Добавляет подписчика на события
|
protected DataTable.InternalRun |
createInternalRun()
Создаение объекта для доступа к внутренним объектам
|
void |
delete(DataRow row)
Удаляет строку
|
void |
drop()
Удаление всех данны, включая изменения и удаление структуры
|
void |
dropColumns()
Удаляет все колонки
|
void |
fireEvent(DataEvent event)
Уведомляет подписчиков о событии
|
void |
fireEventQueue()
Рассылает события из очереди подписчикам
|
void |
fixed()
Зафиксировать все строки.
|
void |
fixed(DataRow row)
Фиксация изменений
|
void |
fixed(DataRow row,
boolean addEvents)
Фиксация изменений
|
DataColumn |
getColumn(int cidx)
Возвращает колонку по ее индексу
|
DataColumn[] |
getColumns()
Возвращает массив колонок
|
int |
getColumnsCount()
Возвращает кол-во колонок в таблице
|
DataEventListener[] |
getDataEventListeners()
Возвращает список подписчиков
|
DataRow |
getRow(int row)
Возвращает строку по индексу из рабочего набора
|
int |
getRowsCount()
Возвращает кол-во строк в рабочем наборе
|
Iterable<DataRow> |
getRowsIterable()
Итератор по рабочему набору строк
|
Iterable<DataRow> |
getRowsIterable(DataRowState... states)
Итератор по строкам
|
Iterable<DataRow> |
getRowsIterableAll()
Возвращает все строки включая удаленные
|
Iterator<DataRow> |
getRowsIterator()
Итератор по рабочему набору строк
|
long |
getScn()
Возвращает еткущий номер изенений
|
boolean |
hasDataEventListener(DataEventListener ls)
Проверка наличия подписчика
|
int |
indexOf(DataRow mrow)
Возвращает индекст строки в таблице
|
void |
insert(DataRow row)
Производит вставку строки
|
DataTableInserting |
insert(Object... values)
Производит вставку строки
|
boolean |
isDeleted(DataRow row)
Возвращает true если строка отмечена как удаленная
|
boolean |
isInserted(DataRow row)
Возвращает true если строка отмечена как новая (inserted)
|
boolean |
isTrackChanges()
Указывает отслеживать изменения
|
boolean |
isUpdated(DataRow row)
Возвращает true если строка быда обновлена, но не фиксированна
|
<T extends DataEvent> |
listen(Class<T> evnType,
boolean weakRef,
Reciver<T> listener)
Подписка на события определенного типа
|
<T extends DataEvent> |
listen(Class<T> evnType,
Reciver<T> listener)
Подписка на события определенного типа
|
Object |
lockRun(Func0 run)
Выполнение кода в режиме блокировки таблицы и последующим уведомлением о событии
|
void |
lockRun(Runnable run)
Выполнение кода в режиме блокировки таблицы и последующим уведомлением о событии
|
protected Object |
lockRunInternal(Func1<Object,DataTable.InternalRun> run)
Выполнение внутреннего кода
|
protected long |
nextScn()
Указывает текущий номер изменений
|
Closeable |
onColumnAdded(boolean weak,
Reciver<DataColumnAdded> listener)
Добавление на событие добавления колонки
|
Closeable |
onColumnAdded(Reciver<DataColumnAdded> listener)
Добавление на событие добавления колонки
|
Closeable |
onColumnRemoved(boolean weak,
Reciver<DataColumnAdded> listener)
Добавление на событие - колонка удалена
|
Closeable |
onColumnRemoved(Reciver<DataColumnRemoved> listener)
Добавление на событие - колонка удалена
|
Closeable |
onDataTableDropped(boolean weak,
Reciver<DataTableDropped> listener)
Добавление на событие полного удаления таблицы, включая структуры
|
Closeable |
onDataTableDropped(Reciver<DataTableDropped> listener)
Добавление на событие полного удаления таблицы, включая структуры
|
Closeable |
onRowDeleted(boolean weak,
Reciver<DataRowDeleted> listener)
Добавление на событие: строка почена под удаление
|
Closeable |
onRowDeleted(Reciver<DataRowDeleted> listener)
Добавление на событие: строка почена под удаление
|
Closeable |
onRowErased(boolean weak,
Reciver<DataRowErased> listener)
Добавление на событие окончательного удаляения строки
|
Closeable |
onRowErased(Reciver<DataRowErased> listener)
Добавление на событие окончательного удаляения строки
|
Closeable |
onRowUndeleted(boolean weak,
Reciver<DataRowUndeleted> listener)
Добавление на событие отката удаляения строки
|
Closeable |
onRowUndeleted(Reciver<DataRowUndeleted> listener)
Добавление на событие отката удаляения строки
|
void |
removeColumn(DataColumn dc)
Удаляет колонку из таблицы
|
void |
removeColumnByIndex(int colIdx)
Удаляет колонку по ее индексу
|
void |
removeDataEventListener(DataEventListener ls)
Удаляет подписчика
|
void |
rollback()
Откат изменений таблицы
|
void |
rollback(boolean addEvents)
Откат изменений таблицы
|
void |
rollback(DataRow row)
Откат изменений строки
|
void |
rollback(DataRow row,
boolean addEvents)
Откат изменений строки
|
List<DataRow> |
rowsList(DataRowState... states)
Возвращает строки ввиде списка
|
void |
setTrackChanges(boolean track)
Указывает отслеживать изменения
|
DataRowState |
stateOf(DataRow row)
Возвращает состояние строки
|
protected final transient DataEventSupport listeners
protected final LinkedBlockingQueue<DataEvent> eventQueue
protected final transient AtomicInteger eventLockLevel
protected final transient AtomicInteger dropCallLevel
public DataTable()
public DataTable(DataColumn[] columns)
columns - Описания колонок таблицыpublic DataTable(DataColumn[] columns, Iterable<Object[]> initialData)
columns - Описания колонок таблицыinitialData - Начальные данныеpublic DataTable(DataColumn[] columns, Iterable<DataRow> rows, Iterable<DataRow> inserted, Iterable<DataRow> deleted)
columns - Набор колонокrows - Фиксированные/Модифицированные строкиinserted - Добавленные, но не фиксированные строкиdeleted - Удаленные, но не фиксированные строкиpublic Closeable addDataEventListener(DataEventListener ls, boolean weak)
ls - Подписчикweak - true - добавить как weak ссылкуpublic Closeable addDataEventListener(DataEventListener ls)
ls - Подписчикpublic void removeDataEventListener(DataEventListener ls)
ls - подписчикpublic boolean hasDataEventListener(DataEventListener ls)
ls - подписчикpublic DataEventListener[] getDataEventListeners()
public void fireEvent(DataEvent event)
event - событиеpublic void addDataEvent(DataEvent ev)
ev - событиеpublic void fireEventQueue()
public void lockRun(Runnable run)
run - кодfireEventQueue()public Object lockRun(Func0 run)
run - кодfireEventQueue()protected DataTable.InternalRun createInternalRun()
protected Object lockRunInternal(Func1<Object,DataTable.InternalRun> run)
run - внутренний кодpublic <T extends DataEvent> Closeable listen(Class<T> evnType, boolean weakRef, Reciver<T> listener)
T - Тип событияevnType - Тип событияweakRef - Добавить подписчика как weak ссылкуlistener - Подписчикpublic <T extends DataEvent> Closeable listen(Class<T> evnType, Reciver<T> listener)
T - Тип событияevnType - Тип событияlistener - Подписчикpublic Closeable onColumnAdded(boolean weak, Reciver<DataColumnAdded> listener)
weak - Добавить подписчика как weak ссылкуlistener - Подписчикpublic Closeable onColumnAdded(Reciver<DataColumnAdded> listener)
listener - Подписчикpublic Closeable onColumnRemoved(boolean weak, Reciver<DataColumnAdded> listener)
weak - Добавить подписчика как weak ссылкуlistener - Подписчикpublic Closeable onColumnRemoved(Reciver<DataColumnRemoved> listener)
listener - Подписчикpublic Closeable onRowDeleted(boolean weak, Reciver<DataRowDeleted> listener)
weak - Добавить подписчика как weak ссылкуlistener - Подписчикpublic Closeable onRowDeleted(Reciver<DataRowDeleted> listener)
listener - Подписчикpublic Closeable onRowUndeleted(boolean weak, Reciver<DataRowUndeleted> listener)
weak - Добавить подписчика как weak ссылкуlistener - Подписчикpublic Closeable onRowUndeleted(Reciver<DataRowUndeleted> listener)
listener - Подписчикpublic Closeable onRowErased(boolean weak, Reciver<DataRowErased> listener)
weak - Добавить подписчика как weak ссылкуlistener - Подписчикpublic Closeable onRowErased(Reciver<DataRowErased> listener)
listener - Подписчикpublic Closeable onDataTableDropped(boolean weak, Reciver<DataTableDropped> listener)
weak - Добавить подписчика как weak ссылкуlistener - Подписчикpublic Closeable onDataTableDropped(Reciver<DataTableDropped> listener)
listener - Подписчикpublic boolean isTrackChanges()
public void setTrackChanges(boolean track)
track - true - Отслеживатьpublic long getScn()
protected long nextScn()
public DataColumn[] getColumns()
public int getColumnsCount()
public DataColumn getColumn(int cidx)
cidx - индексpublic void addColumn(DataColumn dc)
dc - колонкаpublic void removeColumn(DataColumn dc)
dc - колонкаpublic void removeColumnByIndex(int colIdx)
colIdx - индекс колонкиpublic void dropColumns()
public int getRowsCount()
public DataRow getRow(int row)
row - индекс строкиpublic int indexOf(DataRow mrow)
mrow - строкаpublic Iterator<DataRow> getRowsIterator()
public Iterable<DataRow> getRowsIterable()
public Iterable<DataRow> getRowsIterable(DataRowState... states)
states - Указывает по строкам с каким состоянием производить поискpublic List<DataRow> rowsList(DataRowState... states)
states - строки с указаным состоянием будут возвращеныpublic Iterable<DataRow> getRowsIterableAll()
public void fixed()
public void fixed(DataRow row)
row - Строка которую требуется зафиксироватьpublic void fixed(DataRow row, boolean addEvents)
row - Строка которую требуется зафиксироватьaddEvents - true - добавить события в очередьpublic void rollback()
public void rollback(boolean addEvents)
addEvents - Добавлять события в очередьpublic void rollback(DataRow row)
row - Строкаpublic void rollback(DataRow row, boolean addEvents)
row - СтрокаaddEvents - Добавлять события в очередьpublic void drop()
public boolean isDeleted(DataRow row)
row - строкаpublic boolean isInserted(DataRow row)
row - стокаpublic boolean isUpdated(DataRow row)
row - строкаpublic DataRowState stateOf(DataRow row)
row - строкаpublic DataTableInserting insert(Object... values)
values - значнияpublic void insert(DataRow row)
row - строкаpublic void delete(DataRow row)
row - строкаCopyright © 2019. All rights reserved.