com.vaadin.client.data
Class AbstractRemoteDataSource.RowHandleImpl

java.lang.Object
  extended by com.vaadin.client.data.DataSource.RowHandle<T>
      extended by com.vaadin.client.data.AbstractRemoteDataSource.RowHandleImpl
Enclosing class:
AbstractRemoteDataSource<T>

protected class AbstractRemoteDataSource.RowHandleImpl
extends DataSource.RowHandle<T>


Constructor Summary
AbstractRemoteDataSource.RowHandleImpl(T row, java.lang.Object key)
           
 
Method Summary
protected  boolean equalsExplicit(java.lang.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.
 
Methods inherited from class com.vaadin.client.data.DataSource.RowHandle
equals, hashCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractRemoteDataSource.RowHandleImpl

public AbstractRemoteDataSource.RowHandleImpl(T row,
                                              java.lang.Object key)
Method Detail

setRow

public void setRow(T row)
A method for the data source to update the row data.

Parameters:
row - the updated row object

getRow

public T getRow()
         throws java.lang.IllegalStateException
Description copied from class: DataSource.RowHandle
Gets the most recent representation for the row this handle represents.

Specified by:
getRow in class DataSource.RowHandle<T>
Returns:
the most recent representation for the row this handle represents
Throws:
java.lang.IllegalStateException - if this row handle isn't currently pinned
See Also:
DataSource.RowHandle.pin()

isPinned

public boolean isPinned()

pin

public void pin()
Description copied from class: DataSource.RowHandle
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.

Specified by:
pin in class DataSource.RowHandle<T>
See Also:
DataSource.RowHandle.unpin()

unpin

public void unpin()
           throws java.lang.IllegalStateException
Description copied from class: DataSource.RowHandle
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.

Specified by:
unpin in class DataSource.RowHandle<T>
Throws:
java.lang.IllegalStateException - if this row handle has not been pinned before
See Also:
DataSource.RowHandle.pin()

equalsExplicit

protected boolean equalsExplicit(java.lang.Object obj)
Description copied from class: DataSource.RowHandle
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.

Specified by:
equalsExplicit in class DataSource.RowHandle<T>
Returns:
true if this object is the same as the obj argument; false otherwise.

hashCodeExplicit

protected int hashCodeExplicit()
Description copied from class: DataSource.RowHandle
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.

Specified by:
hashCodeExplicit in class DataSource.RowHandle<T>
Returns:
a hash code value for this object

updateRow

public void updateRow()
Description copied from class: DataSource.RowHandle
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.

Specified by:
updateRow in class DataSource.RowHandle<T>
See Also:
DataChangeHandler.dataUpdated(int, int)


Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.