protected class AbstractRemoteDataSource.RowHandleImpl extends DataSource.RowHandle<T>
Constructor and Description |
---|
RowHandleImpl(T row,
Object key) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
equalsExplicit(Object obj)
An explicit override for
Object.equals(Object) . |
T |
getRow()
Gets the most recent representation for the row this handle
represents.
|
protected int |
hashCodeExplicit()
An explicit override for
Object.hashCode() . |
boolean |
isPinned() |
void |
pin()
Marks this row as pinned.
|
void |
setRow(T row)
A method for the data source to update the row data.
|
void |
unpin()
Marks this row as unpinned.
|
void |
updateRow()
Informs the DataSource that the row data represented by this
RowHandle has been updated.
|
equals, hashCode
public void setRow(T row)
row
- the updated row objectpublic T getRow() throws IllegalStateException
DataSource.RowHandle
getRow
in class DataSource.RowHandle<T>
IllegalStateException
- if this row handle isn't currently pinnedDataSource.RowHandle.pin()
public boolean isPinned()
public void pin()
DataSource.RowHandle
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.
pin
in class DataSource.RowHandle<T>
DataSource.RowHandle.unpin()
public void unpin() throws IllegalStateException
DataSource.RowHandle
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.
unpin
in class DataSource.RowHandle<T>
IllegalStateException
- if this row handle has not been pinned beforeDataSource.RowHandle.pin()
protected boolean equalsExplicit(Object obj)
DataSource.RowHandle
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.
equalsExplicit
in class DataSource.RowHandle<T>
true
if this object is the same as the obj argument;
false
otherwise.protected int hashCodeExplicit()
DataSource.RowHandle
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.
hashCodeExplicit
in class DataSource.RowHandle<T>
public void updateRow()
DataSource.RowHandle
updateRow
in class DataSource.RowHandle<T>
DataChangeHandler.dataUpdated(int, int)
Copyright © 2016 Vaadin Ltd. All rights reserved.