public final class JDataRow extends java.lang.Object implements java.io.Serializable, RowContainer
Gemäß der definierten Struktur des DataSet kann eine DataRow Child - und Parent Rows haben.
JDataValue,
Serialized Form| Constructor and Description |
|---|
JDataRow()
Deprecated.
For serialization purpose only.
|
JDataRow(JDataTable tbl,
java.util.ArrayList<JDataValue> dataValues)
Erzeugt eine neue DataRow für die angegebene Tabelle mit den angegebenen Werten.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addChildRow(JDataRow row)
Fügt eine ChildRow hinzu.
|
void |
addChildRow(JDataRow row,
int index)
Fügt eine ChildRow an dem entsprechenden Index ein.
|
void |
addDataValue(JDataValue val) |
JDataRow |
addNewChildRow(java.lang.String refname)
Deprecated.
|
void |
addParentRow(JDataRow row)
Fügt eine Parent Row hinzu.
|
JDataRow |
cloneRow(JDataTable myTbl)
Erzeugt einen Clone dieser Row.
|
void |
commitChanges()
Alle Kennzeichnungen inserted, deleted, modified werden auf false gesetzt.
|
void |
copyValues(JDataRow srcRow) |
JDataRow |
createChildRow()
Fügt eine neue leere Child Row hinzu.
|
JDataRow |
createChildRow(java.lang.String refname)
Fügt einen neue leere Child Row hinzu unter Angabe des Child Reference Namens.
|
java.lang.String |
getActionType()
Liefert ja nach Zustand inserted, delete, modified, modified_child oder unmodified
|
void |
getBean(java.lang.Object bean)
Überträgt alle Felder aus dieser DataRow in das übergebene Objekt, wenn das Objekt über
entsprechende setter oder public Members verfügt.
|
JDataRow |
getChanges()
Liefert diese DataRow, wenn sie verändert wurde (inserted, deleted, modified).
|
JDataRow |
getChangesPersistent() |
JDataRow |
getChildRow(java.lang.String refname,
int index)
Liefert die Child Row zu der angegebenen Tabelle mit dem angegegeben Index (0-relativ).
|
JDataRow |
getChildRow(java.lang.String refname,
java.lang.String arg)
Findet die ChildRow bei der die angegebene Spalte den angegebenen Wert hat
(im Format name=value)
|
int |
getChildRowCount(java.lang.String refname)
Liefert die Anzahl der Zeilen zu der angegebenen Tabelle Reference.
|
java.util.Iterator<JDataRow> |
getChildRows()
Liefert den Iterator für die Child Rows.
|
java.util.Collection<JDataRow> |
getChildRows(DataView view)
Liefert eine unmodifiable Collection von DataRows,
die durch den DataView entsprechend gefiltert und/oder sortiert sind.
|
java.util.Iterator<JDataRow> |
getChildRows(java.lang.String refname)
Liefert einen Iterator über alle ChildRows zu der angegebenen Child Reference.
|
java.util.Iterator<JDataRow> |
getChildRows(java.lang.String refname,
NVPair condition)
Deprecated.
Liefert einen Iterator über alle Child Rows der angebenen Child Reference, bei
denen der Wert eines Feldes der angegebenen Bedingung entspricht.
|
int |
getColumnCount()
Liefert die Zahl der Spalten dieser Zeile.
|
JDataColumn |
getDataColumn(java.lang.String columnName)
Liefert die Spaltendefinition zu der angegebenen Column.
|
JDataTable |
getDataTable()
Liefert die DataTable zu dieser Row.
|
JDataValue |
getDataValue(int colIndex)
Liefert den DataValue der angegebenen Spalten-Nummer (0-relativ);
|
JDataValue |
getDataValue(java.lang.String columnName)
Liefert den DataValue zu dem angegebenen Spaltennamen.
|
java.util.Iterator<JDataValue> |
getDataValues()
Liefert den Iterator für DataValues
|
java.util.ArrayList<JDataValue> |
getFKValues(java.lang.String fk)
Liefert eine ArrayList von DataValues, die den Foreign Key zu den angegebenen Spalten bilden.
|
JDataRow |
getParentRow()
Liefert die übergeordnete Row dieser Row oder null, wenn dieses eine Root Row ist.
|
JDataRow |
getParentRow(java.lang.String refname)
Liefert die Parent Row zu der angegebenen Tabelle.
|
java.util.Iterator<JDataRow> |
getParentRows()
Liefert den Iterator für alle Parent Rows
|
java.util.Iterator<JDataRow> |
getParentRows(java.lang.String refname) |
java.util.ArrayList<JDataValue> |
getPrimaryKeyValues()
Liefert eine ArrayList von JDataValues die den Primary Key bilden.
|
int |
getRowState()
Liefert den RowState aus den Zuständen INSERTED (1), DELETED (2), MODIFIED (4) bzw.
|
java.lang.String |
getValue(int colIndex)
Liefert den Wert der angegebenen Spalten-Nummer (0-relativ);
|
java.lang.String |
getValue(java.lang.String columnName)
Liefert den Wert der angegebenen Spalte.
|
java.math.BigDecimal |
getValueBigDecimal(java.lang.String columnName)
Liefert den Wert der Spalte als BigDecimal
|
boolean |
getValueBool(java.lang.String columnName) |
java.util.Date |
getValueDate(java.lang.String columnName) |
double |
getValueDouble(java.lang.String columnName) |
int |
getValueInt(java.lang.String columnName)
Liefert den Inhalt der angegebenen Spalte als int.
|
long |
getValueLong(java.lang.String columnName) |
java.sql.Timestamp |
getValueTimestamp(java.lang.String columnName) |
int |
getVirtualChilds(java.lang.String colName,
java.lang.String childReference)
Verwandelt einen *flachen* DataValue in eine Unterstruktur von ChildRows.
|
boolean |
hasChanges()
Liefert 'true', wenn sich irgendeine DataRow (auch eine Child Row!)
|
boolean |
hasChangesPersistent() |
boolean |
hasColumn(java.lang.String columnName)
Liefert true zurück, falls eine Spalte mit dem übergebenen Namen exisitiert
|
boolean |
isDeleted()
Liefert true, wenn diese Zeile als zu löschen markiert ist.
|
boolean |
isInserted()
Liefert 'true', wenn diese Zeile als neu markiert ist.
|
boolean |
isModified()
Liefert 'true', wenn einer der Werte dieser Zeile geändert wurde.
|
boolean |
isModified(java.lang.String columnName)
Liefert 'true', wenn sich der Wert mit dem angegebenen Name geändert hat.
|
boolean |
isModifiedChild()
Liefert true, wenn sich diese Row oder eine ihrer ChildRows geändert haben
|
boolean |
isModifiedChildPersistent()
Liefert nur dann true, wenn sich eine für die Persistenz relevante Änderung ergeben hat.
|
boolean |
isModifiedPersistent()
Liefert nur dann true, wenn sich eine persistente Spalte geändert hat.
|
void |
resetErrorState()
Setzt den Fehlercode der Werte dieser Zeile sowie alle Child und Parent Rows zurück
|
void |
rollbackChanges()
Alle Kennzeichnungen deleted, modified werden auf false gesetzt, inserted Rows werden
gelöscht.
|
void |
rollbackVersion(java.lang.String fieldName) |
void |
setBean(java.lang.Object bean)
Überträgt alle Attribute aus der Bean in diesen DataRow, wenn die Bean über entsprechende
getter (auch is...) oder public Member verfügt.
|
void |
setDataValue(JDataValue val)
Setzt den Wert eine Spalte neu.
|
void |
setDeleted(boolean b)
Die Zeile wird hier nicht wirklich gelöscht, sondern nur als gelöscht markiert.
|
void |
setInserted(boolean b)
Bewirkt einen INSERT in die Datenbank, wenn 'true'
|
void |
setValue(int colIndex,
java.lang.String value)
Setzt den Wert der angegebenen Spaltennummer (0-relativ);
|
java.lang.String |
setValue(java.lang.String columnName,
java.math.BigDecimal value)
Setzt den Wert der angegebenen Spalte neu.
|
java.lang.String |
setValue(java.lang.String columnName,
boolean value)
Setzt den Wert der angegebenen Spalte neu.
|
java.lang.String |
setValue(java.lang.String columnName,
java.util.Date value)
Setzt den Wert der angegebenen Spalte neu.
|
java.lang.String |
setValue(java.lang.String columnName,
double value)
Setzt den Wert der angegebenen Spalte neu.
|
java.lang.String |
setValue(java.lang.String columnName,
int value)
Setzt den Wert der angegebenen Spalte neu.
|
java.lang.String |
setValue(java.lang.String columnName,
long value)
Setzt den Wert der angegebenen Spalte neu.
|
java.lang.String |
setValue(java.lang.String columnName,
java.lang.Object value)
Setzt den Wert der angegebenen Spalte neu.
|
java.lang.String |
setValue(java.lang.String columnName,
java.lang.String value)
Setzt den Wert der angegebenen Spalte neu.
|
java.lang.String |
setValue(java.lang.String columnName,
java.sql.Timestamp value) |
int |
setVirtualChilds(java.lang.String colName,
java.lang.String childReference)
Tütet eine Liste von ChildRows in eine DataValue der ParentRow um.
|
java.lang.String |
toSQL() |
java.lang.String |
toString() |
java.lang.String |
toStringModifiedOnly() |
boolean |
verify()
Überprüft die Werte dieser Zeile sowie alle Child und Parent Rows
|
public JDataRow()
public JDataRow(JDataTable tbl, java.util.ArrayList<JDataValue> dataValues)
Es wird eine ArrayList von DataValues erwartet. Die DataTable darf nicht null sein.
public void addDataValue(JDataValue val)
public void setDeleted(boolean b)
Bewirkt einen DELETE in der Datenbank, wenn true.
Die Row wird erst wirklich gelöscht, wenn im DataSet commitChanges() aufgerufen wird.
TODO : Neue Zeilen, denen nach einem Insert in der Oberfläche weiterhin der Primärschlüssel fehlt, dürfen so nicht gelöscht werden!
Es kann bei ChildTables eine delete-Rule definiert werden (OnDelete="..."):
b - JDataSet.commitChanges()public boolean isDeleted()
public void setInserted(boolean b)
b - public boolean isInserted()
public int getRowState()
DataViewpublic JDataColumn getDataColumn(java.lang.String columnName)
columnName - public boolean hasColumn(java.lang.String columnName)
columnName - Name der gesuchten Spaltepublic JDataValue getDataValue(java.lang.String columnName)
columnName - public JDataValue getDataValue(int colIndex)
colIndex - public java.lang.String getValue(java.lang.String columnName)
Wirft eine IllegalArgumentException, wenn columnName ungültig ist.
columnName - public int getValueInt(java.lang.String columnName)
columnName - JDataValue.getValueInt()public long getValueLong(java.lang.String columnName)
columnName - JDataValue.getValueLong()public boolean getValueBool(java.lang.String columnName)
columnName - JDataValue.getValueBool()public double getValueDouble(java.lang.String columnName)
columnName - JDataValue.getValueDouble()public java.math.BigDecimal getValueBigDecimal(java.lang.String columnName)
columnName - JDataValue.getValueBigDecimal()public java.util.Date getValueDate(java.lang.String columnName)
columnName - JDataValue.getValueDate()public java.sql.Timestamp getValueTimestamp(java.lang.String columnName)
public java.lang.String setValue(java.lang.String columnName,
java.lang.String value)
columnName - value - public java.lang.String setValue(java.lang.String columnName,
long value)
columnName - value - public java.lang.String setValue(java.lang.String columnName,
int value)
columnName - value - public java.lang.String setValue(java.lang.String columnName,
boolean value)
columnName - value - public java.lang.String setValue(java.lang.String columnName,
double value)
columnName - value - public java.lang.String setValue(java.lang.String columnName,
java.math.BigDecimal value)
columnName - value - public java.lang.String setValue(java.lang.String columnName,
java.util.Date value)
columnName - value - public java.lang.String setValue(java.lang.String columnName,
java.sql.Timestamp value)
public java.lang.String setValue(java.lang.String columnName,
java.lang.Object value)
columnName - value - public int getColumnCount()
public java.lang.String getValue(int colIndex)
colIndex - public void setValue(int colIndex,
java.lang.String value)
colIndex - value - public boolean isModified()
JDataValue.isModified()public boolean isModifiedPersistent()
JDataValue.isModifiedPersistent()public boolean isModified(java.lang.String columnName)
columnName - public boolean isModifiedChild()
public boolean isModifiedChildPersistent()
public void addChildRow(JDataRow row)
RowContainerEs dürfen nur Rows von den Tabellen hinzugefügt werden, die auch als Child-Table aufgeführt sind. Ansonsten wird eine IllegalArgumentException geworfen.
addChildRow in interface RowContainerpublic void addChildRow(JDataRow row, int index)
RowContainerWirft eine IllegalArgumentException, wenn der Index außerhalb des definierten Bereichs ist.
addChildRow in interface RowContainerpublic JDataRow addNewChildRow(java.lang.String refname)
createChildRowpublic JDataRow createChildRow(java.lang.String refname)
Um die Zuweisung der Werte von Foreign und Primary Keys braucht man sich hier nicht zu kümmern; dieses erledigt der Persistenz-Layer automatisch. Naturgemäß sind diese Felder aber erst dann gefüllt, wenn sie wieder neu aus der Datenbank eingelesen werden.
createChildRow in interface RowContainerrefname - Der Name der Child Table Referencepublic JDataRow createChildRow()
Wirft eine IllegalStateException, wenn nicht genau eine ChildTable definiert ist.
createChildRow in interface RowContainerpublic int getChildRowCount(java.lang.String refname)
refname - Der Name der Child Table Referencepublic void addParentRow(JDataRow row)
Es dürfen nur Rows von den Tabellen hinzugefügt werden, die auch als Parent-Table aufgeführt sind. Ansonsten wird eine IllegalArgumentException geworfen.
Je Parent Table Reference ist nur eine Parent Row zuzulassen.
row - public JDataTable getDataTable()
getDataTable in interface RowContainerpublic java.util.Iterator<JDataRow> getChildRows()
Vorsicht!
Es werden alle abhängigen Daten geliefert, egal aus welcher Tabelle.
getChildRows in interface RowContainerpublic java.util.Iterator<JDataRow> getChildRows(java.lang.String refname)
getChildRows in interface RowContainerrefname - public java.util.Collection<JDataRow> getChildRows(DataView view)
RowContainergetChildRows in interface RowContainerpublic java.util.Iterator<JDataRow> getChildRows(java.lang.String refname, NVPair condition)
refname - condition - FieldName, FieldValuepublic JDataRow getChildRow(java.lang.String refname, int index)
Wirft eine IllegalArgumentException, wenn Index out of Range.
getChildRow in interface RowContainerrefname - index - public JDataRow getChildRow(java.lang.String refname, java.lang.String arg)
refname - arg - SpaltenName=SpaltenWertpublic java.util.Iterator<JDataRow> getParentRows()
public java.util.Iterator<JDataRow> getParentRows(java.lang.String refname)
public JDataRow getParentRow(java.lang.String refname)
Wirft eine IllegalState- oder ArgumentException, wenn keine Parents vorhanden, oder angegebenen Tabelle nicht als Parent definiert ist.
refname - Der Name der Parent Table Referencepublic java.util.Iterator<JDataValue> getDataValues()
public void setDataValue(JDataValue val)
val - Die Column muß Bestandteil der Tabelle sein.public void rollbackChanges()
public void commitChanges()
commitChanges in interface RowContainerpublic JDataRow getChanges()
Alle Child Rows werden mitgeliefert, wenn sie sich geändert haben; dabei können auch "Zwischen"-Rows entstehen, die mitgeliefert werden, weil von ihnen abhängige Child Rows sich geändert haben.
public JDataRow getChangesPersistent()
public boolean hasChanges()
hasChanges in interface RowContainerpublic boolean hasChangesPersistent()
public java.util.ArrayList<JDataValue> getFKValues(java.lang.String fk)
public JDataRow getParentRow()
Wird letztendlich nur benötigt, um beim Insert von ChildRows den Foreign Key zu ermitteln.
public java.util.ArrayList<JDataValue> getPrimaryKeyValues()
Es wird eine IllegalStateException geworden, wenn die Tabelle keine Primary Key Columns hat.
JDataColumn.isPrimaryKeypublic int getVirtualChilds(java.lang.String colName,
java.lang.String childReference)
throws electric.xml.ParseException
Für virtual ChildRows
row - fk - childReference - electric.xml.ParseExceptionpublic int setVirtualChilds(java.lang.String colName,
java.lang.String childReference)
Für virtual ChildRows
fk - childReference - public void rollbackVersion(java.lang.String fieldName)
public java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.String toStringModifiedOnly()
public JDataRow cloneRow(JDataTable myTbl)
Alle Child und Parent Rows werden mit geclont. Es ist eine DataTable anzugeben, deren Name mit der Tabelle der zu clonenden Row identisch sein muß; ansonsten wird eine IllegalArgumentException geworfen.
myTbl - JDataTable.cloneTable(boolean)public void copyValues(JDataRow srcRow)
public boolean verify()
JDataValue.verify(boolean)public void resetErrorState()
public void getBean(java.lang.Object bean)
public void setBean(java.lang.Object bean)
Die von Object geerbte Methode getClass() wird dabei weggelassen.
bean - public java.lang.String getActionType()
public java.lang.String toSQL()