Module org.hdfgroup.hdfview
Package hdf.view.TableView

# Class DataProviderFactory.HDFDataProvider

Object
hdf.view.TableView.DataProviderFactory.HDFDataProvider

All Implemented Interfaces:
  `org.eclipse.nebula.widgets.nattable.data.IDataProvider`

Enclosing class:
  `DataProviderFactory`

public static class DataProviderFactory.HDFDataProvider extends Object implements org.eclipse.nebula.widgets.nattable.data.IDataProvider
The base DataProvider which pulls data from a given Array object using direct indices.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected long`
  `colCount`
  the column
  `protected Object`
  `dataBuf`
  In order to support 3-dimensional datasets, which may need to update the data buffer object after flipping through a 'page', this field is not marked as final.
  `protected final boolean`
  `isContainerType`
  the type of the parent
  `protected final boolean`
  `isDataTransposed`
  if the data is transposed
  `protected final boolean`
  `isNaturalOrder`
  if the data is in original order
  `protected boolean`
  `isValueChanged`
  if the data value has changed
  `protected final Class`
  `originalFormatClass`
  the data format class
  `protected final int`
  `rank`
  the rank
  `protected long`
  `rowCount`
  the row
  `protected Object`
  `theValue`
  the data value

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HDFDataProvider(Datatype dtype, Object dataBuf, boolean dataTransposed)`
  Create the HDF extended Data Display Provider for the supplied data object

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getColumnCount()`
  `Object`
  `getDataValue(int columnIndex, int rowIndex)`
  `Object`
  `getDataValue(Object obj, int index)`
  When a parent HDFDataProvider (such as an ArrayDataProvider) wants to retrieve a data value by routing the operation through its base HDFDataProvider, the parent HDFDataProvider will generally know the direct index to have the base provider use.
  `Object`
  `getDataValue(Object obj, int columnIndex, int rowIndex)`
  When a CompoundDataProvider wants to pass a List of data down to a nested CompoundDataProvider, or when a top-level container DataProvider (such as an ArrayDataProvider) wants to hand data down to a base CompoundDataProvider, we need to pass down a List of data, plus a field and row index.
  `final boolean`
  `getIsValueChanged()`
  `int`
  `getRowCount()`
  `int`
  `physicalLocationToBufIndex(int rowIndex, int columnIndex)`
  A utility method used to translate a set of physical table coordinates to an index into a data buffer.
  `void`
  `setDataValue(int columnIndex, int rowIndex, Object newValue)`
  update the data value of a compound type.
  `void`
  `setDataValue(int columnIndex, int rowIndex, Object bufObject, Object newValue)`
  When a CompoundDataProvider wants to pass a List of data down to a nested CompoundDataProvider, or when a top-level container DataProvider (such as an ArrayDataProvider) wants to hand data down to a base CompoundDataProvider, we need to pass down a List of data and the new value, plus a field and row index.
  `void`
  `setDataValue(int index, Object bufObject, Object newValue)`
  When a parent HDFDataProvider (such as an ArrayDataProvider) wants to set a data value by routing the operation through its base HDFDataProvider, the parent HDFDataProvider will generally know the direct index to have the base provider use.
  `final void`
  `setIsValueChanged(boolean isChanged)`
  set if the data value has changed
  `final void`
  `updateDataBuffer(Object newBuf)`
  Update the data buffer for this HDFDataProvider.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### dataBuf

    protected Object dataBuf
    In order to support 3-dimensional datasets, which may need to update the data buffer object after flipping through a 'page', this field is not marked as final. However, it is important that subclasses DO NOT override this field.

  - ### theValue

    protected Object theValue
    the data value

  - ### originalFormatClass

    protected final Class originalFormatClass
    the data format class

  - ### isValueChanged

    protected boolean isValueChanged
    if the data value has changed

  - ### isContainerType

    protected final boolean isContainerType
    the type of the parent

  - ### rank

    protected final int rank
    the rank

  - ### isNaturalOrder

    protected final boolean isNaturalOrder
    if the data is in original order

  - ### isDataTransposed

    protected final boolean isDataTransposed
    if the data is transposed

  - ### colCount

    protected long colCount
    the column

  - ### rowCount

    protected long rowCount
    the row

- ## Constructor Details

  - ### HDFDataProvider

    HDFDataProvider(Datatype dtype, Object dataBuf, boolean dataTransposed) throws Exception
    Create the HDF extended Data Display Provider for the supplied data object
    Parameters:
      `dtype` - the datatype object
      `dataBuf` - the data buffer to use
      `dataTransposed` - if the data should be transposed
    Throws:
      `Exception` - if a failure occurred

- ## Method Details

  - ### physicalLocationToBufIndex

    public int physicalLocationToBufIndex(int rowIndex, int columnIndex)
    A utility method used to translate a set of physical table coordinates to an index into a data buffer.
    Parameters:
      `rowIndex` - the row
      `columnIndex` - the column
    Returns:
      physical location in 1D notation

  - ### getDataValue

    public Object getDataValue(int columnIndex, int rowIndex)
    Specified by:
      `getDataValue` in interface `org.eclipse.nebula.widgets.nattable.data.IDataProvider`

  - ### getDataValue

    public Object getDataValue(Object obj, int columnIndex, int rowIndex)
    When a CompoundDataProvider wants to pass a List of data down to a nested CompoundDataProvider, or when a top-level container DataProvider (such as an ArrayDataProvider) wants to hand data down to a base CompoundDataProvider, we need to pass down a List of data, plus a field and row index. This method is for facilitating this behavior. In general, all "container" DataProviders that have a "container" base DataProvider should call down into their base DataProvider(s) using this method, in order to ensure that buried CompoundDataProviders get handled correctly. When their base DataProvider is not a "container" type, the method getDataValue(Object, index) should be used instead. For atomic type DataProviders, we treat this method as directly calling into getDataValue(Object, index) using the passed rowIndex. However, this method should, in general, not be called by atomic type DataProviders.
    Parameters:
      `obj` - the data object
      `columnIndex` - the column
      `rowIndex` - the row
    Returns:
      value of the data

  - ### getDataValue

    public Object getDataValue(Object obj, int index)
    When a parent HDFDataProvider (such as an ArrayDataProvider) wants to retrieve a data value by routing the operation through its base HDFDataProvider, the parent HDFDataProvider will generally know the direct index to have the base provider use. This method is to facilitate this kind of behavior. Note that this method takes an Object parameter, which is the object that the method should pull its data from. This is to be able to nicely support nested compound DataProviders.
    Parameters:
      `obj` - the data object
      `index` - the index into the data array
    Returns:
      the data object

  - ### setDataValue

    public void setDataValue(int columnIndex, int rowIndex, Object newValue)
    update the data value of a compound type.
    Specified by:
      `setDataValue` in interface `org.eclipse.nebula.widgets.nattable.data.IDataProvider`
    Parameters:
      `columnIndex` - the column
      `rowIndex` - the row
      `newValue` - the new data value object

  - ### setDataValue

    public void setDataValue(int columnIndex, int rowIndex, Object bufObject, Object newValue)
    When a CompoundDataProvider wants to pass a List of data down to a nested CompoundDataProvider, or when a top-level container DataProvider (such as an ArrayDataProvider) wants to hand data down to a base CompoundDataProvider, we need to pass down a List of data and the new value, plus a field and row index. This method is for facilitating this behavior. In general, all "container" DataProviders that have a "container" base DataProvider should call down into their base DataProvider(s) using this{}, method, in order to ensure that buried CompoundDataProviders get handled correctly. When their base DataProvider is not a "container" type, the method setDataValue(index, Object, Object) should be used instead. For atomic type DataProviders, we treat this method as directly calling into setDataValue(index, Object, Object) using the passed rowIndex. However, this method should, in general, not be called by atomic type DataProviders.
    Parameters:
      `columnIndex` - the column
      `rowIndex` - the row
      `bufObject` - the data object
      `newValue` - the new data object

  - ### setDataValue

    public void setDataValue(int index, Object bufObject, Object newValue)
    When a parent HDFDataProvider (such as an ArrayDataProvider) wants to set a data value by routing the operation through its base HDFDataProvider, the parent HDFDataProvider will generally know the direct index to have the base provider use. This method is to facilitate this kind of behavior. Note that this method takes two Object parameters, one which is the object that the method should set its data inside of and one which is the new value to set. This is to be able to nicely support nested compound DataProviders.
    Parameters:
      `index` - the index into the data array
      `bufObject` - the data object
      `newValue` - the new data object

  - ### getColumnCount

    public int getColumnCount()
    Specified by:
      `getColumnCount` in interface `org.eclipse.nebula.widgets.nattable.data.IDataProvider`

  - ### getRowCount

    public int getRowCount()
    Specified by:
      `getRowCount` in interface `org.eclipse.nebula.widgets.nattable.data.IDataProvider`

  - ### setIsValueChanged

    public final void setIsValueChanged(boolean isChanged)
    set if the data value has changed
    Parameters:
      `isChanged` - if the data value is changed

  - ### getIsValueChanged

    public final boolean getIsValueChanged()
    Returns:
      if the datavalue has chaged

  - ### updateDataBuffer

    public final void updateDataBuffer(Object newBuf)
    Update the data buffer for this HDFDataProvider. This is necessary for when the data that has been read is invalidated, such as when flipping through 'pages' in a > 2-dimensional dataset.
    Parameters:
      `newBuf` - the new data buffer