com.vaadin.client.data.
Class DataSource.RowHandle<T>
- java.lang.Object
-
- com.vaadin.client.data.DataSource.RowHandle<T>
-
Type Parameters:
T
- the row typeDirect Known Subclasses:
Enclosing interface:
public abstract static class DataSource.RowHandle<T> extends Object
A handle that contains information on whether a row should be
pinned
orunpinned
, and also always the most recent representation for that particular row.
-
-
Constructor Summary
Constructors Constructor Description RowHandle()
-
Method Summary
All Methods Modifier and Type Method Description boolean
equals(Object obj)
protected abstract boolean
equalsExplicit(Object obj)
An explicit override for
Object.equals(Object)
.abstract T
getRow()
Gets the most recent representation for the row this handle represents.
int
hashCode()
protected abstract int
hashCodeExplicit()
An explicit override for
Object.hashCode()
.abstract void
pin()
Marks this row as pinned.
abstract void
unpin()
Marks this row as unpinned.
abstract void
updateRow()
Informs the DataSource that the row data represented by this RowHandle has been updated.
-
-
-
Method Detail
-
getRow
public abstract T getRow() throws IllegalStateException
Gets the most recent representation for the row this handle represents.
Returns:
the most recent representation for the row this handle represents
Throws:
IllegalStateException
- if this row handle isn't currently pinnedSee Also:
-
pin
public abstract void pin()
Marks this row as pinned.
Note: Pinning a row multiple times requires an equal amount of unpins to free the row from the "pinned" status.
Technical Note: Pinning a row makes sure that the row object for a particular set of data is always kept as up to date as the data source is able to. Since the DataSource might create a new instance of an object, object references aren't necessarily kept up-to-date. This is a technical work-around for that.
See Also:
-
unpin
public abstract void unpin() throws IllegalStateException
Marks this row as unpinned.
Note: Pinning a row multiple times requires an equal amount of unpins to free the row from the "pinned" status.
Technical Note: Pinning a row makes sure that the row object for a particular set of data is always kept as up to date as the data source is able to. Since the DataSource might create a new instance of an object, object references aren't necessarily kept up-to-date. This is a technical work-around for that.
Throws:
IllegalStateException
- if this row handle has not been pinned beforeSee Also:
-
updateRow
public abstract void updateRow()
Informs the DataSource that the row data represented by this RowHandle has been updated. DataChangeHandler for the DataSource should be informed that parts of data have been updated.
See Also:
-
equalsExplicit
protected abstract boolean equalsExplicit(Object obj)
An explicit override for
Object.equals(Object)
. This method should be functionally equivalent to a properly implemented equals method.Having a properly implemented equals method is imperative for RowHandle to function. Because Java has no mechanism to force an override of an existing method, we're defining a new method for that instead.
Parameters:
rowHandle
- the reference object with which to compareReturns:
true
if this object is the same as the obj argument;false
otherwise.
-
hashCodeExplicit
protected abstract int hashCodeExplicit()
An explicit override for
Object.hashCode()
. This method should be functionally equivalent to a properly implemented hashCode method.Having a properly implemented hashCode method is imperative for RowHandle to function. Because Java has no mechanism to force an override of an existing method, we're defining a new method for that instead.
Returns:
a hash code value for this object
-
-