com.ricebridge.xmlman
Class TableModelRecordProvider

java.lang.Object
  extended bycom.ricebridge.xmlman.RecordProviderSupport
      extended bycom.ricebridge.xmlman.TableModelRecordProvider
All Implemented Interfaces:
RecordProvider

public class TableModelRecordProvider
extends RecordProviderSupport

An implementation of RecordProvider that provides data records for saving from a TableModel object.

This class is used to implement the saveTableModel(*,RecordSpec,TableModel) methods in XmlManager. It simply reads the next data record from the specified TableModel, maintaining an internal index of the current record.

TableModelRecordProvider is designed to be subclassed. You can change the default implementation by calling the setTableModelRecordProviderClass method of XmlManagerStore, and providing a subclass of TableModelRecordProvider. XmlManagerStore can be accessed using XmlManager.getXmlManagerStore().

The Source Code of this Java class is available under a BSD-style license.


Field Summary
protected  int iFieldCount
          Number of data fields in record, determined by number of columns in table.
protected  boolean iFirstRecord
          Indicate that internal state is at the first record.
protected  String[] iHeaders
          Table headers.
protected  long iRecordIndex
          Index of current record.
protected  boolean iSaveHeaders
          Save the table headers as first data record.
protected  TableModel iTableModel
          TableModel containing source data.
static String PROP_TableModel_saveHeaders
          Output headers as first data record (name for XmlSpec.setProperty: TableModel.saveHeaders).
 
Fields inherited from class com.ricebridge.xmlman.RecordProviderSupport
iFieldNames
 
Constructor Summary
TableModelRecordProvider()
          Create uninitialised for use with setTableModel.
TableModelRecordProvider(TableModel pTableModel)
          Create initialised.
 
Method Summary
protected  boolean hasNextRecordImpl()
          Check if there are any more records.
protected  String[] nextRecordImpl()
          Return next data record as a String[] array.
 void setTableModel(TableModel pTableModel)
          Set the TableModel providing data to save.
protected  void setXmlSpecImpl(XmlSpec pXmlSpec)
          Handle property settings for saving TableModels.
protected  void startProcessImpl()
          Start the saving process.
 
Methods inherited from class com.ricebridge.xmlman.RecordProviderSupport
endProcess, endProcessImpl, hasNextRecord, nextRecord, setFieldNames, setFieldNamesImpl, setXmlSpec, startProcess
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROP_TableModel_saveHeaders

public static final String PROP_TableModel_saveHeaders
Output headers as first data record (name for XmlSpec.setProperty: TableModel.saveHeaders).

See Also:
Constant Field Values

iTableModel

protected TableModel iTableModel
TableModel containing source data.


iSaveHeaders

protected boolean iSaveHeaders
Save the table headers as first data record. See setXmlSpecImpl.


iHeaders

protected String[] iHeaders
Table headers.


iFirstRecord

protected boolean iFirstRecord
Indicate that internal state is at the first record.


iFieldCount

protected int iFieldCount
Number of data fields in record, determined by number of columns in table.


iRecordIndex

protected long iRecordIndex
Index of current record.

Constructor Detail

TableModelRecordProvider

public TableModelRecordProvider()
Create uninitialised for use with setTableModel.


TableModelRecordProvider

public TableModelRecordProvider(TableModel pTableModel)
Create initialised. See setTableModel for details.

Parameters:
pTableModel - TableModel providing data
Method Detail

setTableModel

public void setTableModel(TableModel pTableModel)
Set the TableModel providing data to save.

The default number of fields per record is taken from TableModel.getColumnCount() and the headers (output as the first record when the TableModel.saveHeaders property is true), are taken from TableModel.getColumnName(int).

Parameters:
pTableModel - TableModel providing data

setXmlSpecImpl

protected void setXmlSpecImpl(XmlSpec pXmlSpec)
Handle property settings for saving TableModels.

You can change these using XmlSpec.

Overrides:
setXmlSpecImpl in class RecordProviderSupport
Parameters:
pXmlSpec - XML specification
See Also:
RecordListener.setXmlSpec(com.ricebridge.xmlman.XmlSpec), PROP_TableModel_saveHeaders

startProcessImpl

protected void startProcessImpl()
Start the saving process.

Overrides:
startProcessImpl in class RecordProviderSupport
See Also:
RecordProviderSupport.startProcess(), RecordProvider.startProcess()

hasNextRecordImpl

protected boolean hasNextRecordImpl()
Check if there are any more records.

Specified by:
hasNextRecordImpl in class RecordProviderSupport
See Also:
RecordProviderSupport.hasNextRecord(), RecordProvider.hasNextRecord()

nextRecordImpl

protected String[] nextRecordImpl()
Return next data record as a String[] array.

Specified by:
nextRecordImpl in class RecordProviderSupport
See Also:
RecordProviderSupport.nextRecord(), RecordProvider.nextRecord()


Copyright © 2004-2005 Ricebridge