Class DataRow

java.lang.Object
xyz.cofe.data.table.DataRow
All Implemented Interfaces:
java.io.Closeable, java.io.Serializable, java.lang.AutoCloseable

public class DataRow
extends java.lang.Object
implements java.io.Closeable, java.io.Serializable
Строка данных таблицы, с поддержкой отката изменений.
  • Строка может пренадлежать таблице или нет (свойство table).
  • Строка хранит счетчик изменений changeCount
  • Строка хранит в себе два набора:
    origin - оригинальные данные
    data - текущие данные
  • Оба набора данных задаются в конструкторе, счетчик измений устанавливается в 0.
  • Изменения вносятся в текущий набор, при каждом изменении увеличивается счетчик changeCount.
  • Отличия текущих данных от оргинальных, можно получить методом: getChangedValues()
  • метод fixChanges() - сохраняет внесенные изменения в оригинальные данные, счетчик сбрасывает в 0
  • метод cancelChanges() - откатывает измененияЮ счетчик сбрасывает в 0
В зависимости от состояния таблицы, строка может находится в следующих состояниях:
  • Detached - Строка не присоединена к таблице
  • Fixed - Строка присоединена к таблице и счетчик изменений 0
  • Updated - Строка присоединена к таблице и счетчик изменений более 0 (содержит измененные данные)
  • Inserted - Строка присоединена к таблице, и помечена для добавления
  • Deleted - Строка присоединена к таблице, и помечена для удаления
Author:
Kamnev Georgiy
See Also:
Serialized Form
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  DataRow.ChangedValue
    Описывает изенеия строки
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.util.Set<java.lang.Integer> changed
    Номера (от 0) измененных колонок
    protected int changes
    Счетчик изменений
    protected java.lang.Object[] data  
    protected java.lang.Object[] origin  
    protected DataTable table  
  • Constructor Summary

    Constructors 
    Constructor Description
    DataRow​(DataRow sample)
    Конструктор копирования
    DataRow​(DataTable table, java.lang.Object... data)
    Создает строку таблицы
    DataRow​(DataTable dataTable, java.lang.Object[] data, java.lang.Object[] origin, int changes)
    Конструктор десиариализации
  • Method Summary

    Modifier and Type Method Description
    void cancelChanges()
    Откатывает изменения
    void cancelChanges​(boolean addEvents)
    Откатывает изменения и добавляет событие в очередь
    void close()
    Закрывает строку и освобождает ссылки
    void fixChanges()
    Фиксировать изменения
    void fixChanges​(boolean addEvents)
    Фиксировать изменения
    java.lang.Object get​(int column)
    Возвращает данные из указанной колонки
    int getChangeCount()
    Возвращает кол-во изменений с последней фиксации
    java.lang.Integer[] getChangedColumn()
    Возвращает индексы измененных колонок
    java.util.List<DataRow.ChangedValue> getChangedValues()
    Возвращает список изменений
    java.lang.Object[] getData()
    Возвращает рабочие данные строки
    java.lang.Object[] getOrigin()
    Возвращает зафиксированные данные
    DataRowState getState()
    Возвращает состояние строки
    DataTable getTable()
    Указывает таблицу строки
    boolean isChanged()
    Возвращает факт наличия не зафиксированных данных
    boolean isDeleted()
    Возвращает true если строка отмечена как удаленная
    boolean isDetached()
    Указывает присоединена ли строка к таблице
    boolean isInserted()
    Возвращает true если строка отмечена как новая (inserted)
    boolean isUpdated()
    Возвращает true если строка быда обновлена, но не фиксированна
    void set​(int column, java.lang.Object value)
    Указывает значение колонки
    void set​(int column, java.lang.Object value, boolean addEvents)
    Указывает значение колонки
    void setTable​(DataTable table)
    Указывает таблицу сторки

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • changes

      protected int changes
      Счетчик изменений
    • changed

      protected final java.util.Set<java.lang.Integer> changed
      Номера (от 0) измененных колонок
    • data

      protected java.lang.Object[] data
    • origin

      protected java.lang.Object[] origin
    • table

      protected transient volatile DataTable table
  • Constructor Details

    • DataRow

      public DataRow​(DataTable table, java.lang.Object... data)
      Создает строку таблицы
      Parameters:
      table - таблица
      data - данные строки
    • DataRow

      public DataRow​(DataTable dataTable, java.lang.Object[] data, java.lang.Object[] origin, int changes)
      Конструктор десиариализации
      Parameters:
      dataTable - Таблица к которой относится строка
      data - Текущие данные
      origin - Оригинальные данные
      changes - Кол-во изменений
    • DataRow

      public DataRow​(DataRow sample)
      Конструктор копирования
      Parameters:
      sample - Образец для копирования
  • Method Details

    • getData

      public java.lang.Object[] getData()
      Возвращает рабочие данные строки
      Returns:
      данные
    • getOrigin

      public java.lang.Object[] getOrigin()
      Возвращает зафиксированные данные
      Returns:
      зафиксированные данные
    • getChangedColumn

      public java.lang.Integer[] getChangedColumn()
      Возвращает индексы измененных колонок
      Returns:
      индексы
    • isChanged

      public boolean isChanged()
      Возвращает факт наличия не зафиксированных данных
      Returns:
      true - если незафиксированные данные
    • getChangeCount

      public int getChangeCount()
      Возвращает кол-во изменений с последней фиксации
      Returns:
      кол-во изменений
    • getChangedValues

      public java.util.List<DataRow.ChangedValue> getChangedValues()
      Возвращает список изменений
      Returns:
      список изменений
    • cancelChanges

      public void cancelChanges()
      Откатывает изменения
    • cancelChanges

      public void cancelChanges​(boolean addEvents)
      Откатывает изменения и добавляет событие в очередь
      Parameters:
      addEvents - добавить событие в очередь таблицы
    • fixChanges

      public void fixChanges()
      Фиксировать изменения
    • fixChanges

      public void fixChanges​(boolean addEvents)
      Фиксировать изменения
      Parameters:
      addEvents - добавить событие в очередь таблицы
    • close

      public void close() throws java.io.IOException
      Закрывает строку и освобождает ссылки
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface java.io.Closeable
      Throws:
      java.io.IOException - Ошибка клонирования
    • get

      public java.lang.Object get​(int column)
      Возвращает данные из указанной колонки
      Parameters:
      column - колонка
      Returns:
      данные
    • set

      public void set​(int column, java.lang.Object value)
      Указывает значение колонки
      Parameters:
      column - колонка
      value - значение
    • set

      public void set​(int column, java.lang.Object value, boolean addEvents)
      Указывает значение колонки
      Parameters:
      column - колонка
      value - значение
      addEvents - true - добавляет событие в очередь таблицы
    • getTable

      public DataTable getTable()
      Указывает таблицу строки
      Returns:
      таблица
    • setTable

      public void setTable​(DataTable table)
      Указывает таблицу сторки
      Parameters:
      table - таблица
    • isDetached

      public boolean isDetached()
      Указывает присоединена ли строка к таблице
      Returns:
      true - есть ссылка на таблицу
    • isDeleted

      public boolean isDeleted()
      Возвращает true если строка отмечена как удаленная
      Returns:
      true - отмечена под удаление
    • isInserted

      public boolean isInserted()
      Возвращает true если строка отмечена как новая (inserted)
      Returns:
      true - строка добавлена но не фиксирована
    • isUpdated

      public boolean isUpdated()
      Возвращает true если строка быда обновлена, но не фиксированна
      Returns:
      true - строка была обновлена, но не фиксированна
    • getState

      public DataRowState getState()
      Возвращает состояние строки
      Returns:
      состояние строки