es.prodevelop.gvsig.mobile.fmap.layer
Class SelectableDataSource

java.lang.Object
  extended byes.prodevelop.gvsig.mobile.fmap.layer.SelectableDataSource
All Implemented Interfaces:
com.hardcode.gdbms.engine.data.DataSource, com.hardcode.gdbms.engine.data.driver.ReadAccess, Selectable

public class SelectableDataSource
extends java.lang.Object
implements com.hardcode.gdbms.engine.data.DataSource, Selectable

DataSource seleccionable.

Author:
Fernando González Cortés, jldominguez

Field Summary
 
Fields inherited from interface com.hardcode.gdbms.engine.data.driver.ReadAccess
FIELD_TYPE_BOOLEAN, FIELD_TYPE_DOUBLE, FIELD_TYPE_FLOAT, FIELD_TYPE_INT, FIELD_TYPE_LONGINT, FIELD_TYPE_STRING
 
Constructor Summary
SelectableDataSource(com.hardcode.gdbms.engine.data.DataSource ds)
          Crea un nuevo SelectableDataSource.
 
Method Summary
 void addDataSourceListener(com.hardcode.gdbms.engine.data.IDataSourceListener listener)
           
 void addSelectionListener(SelectionListener listener)
          Añade un nuevo Listener al SelectionSupport.
 boolean clearSelection(boolean fire_events)
          Borra la selección.
static SelectableDataSource createDbfSelectableDataSource(java.io.File dbFile, boolean inmemory)
           
 void fireSelectionEvents()
          Cuando ocurre un evento de cambio en la selección, éste puede ser uno de una gran cantidad de eventos.
 java.lang.String getAsString()
           
 com.hardcode.gdbms.engine.data.DataSourceFactory getDataSourceFactory()
           
 com.hardcode.gdbms.engine.data.edition.DataWare getDataWare(int arg0)
           
 com.hardcode.driverManager.Driver getDriver()
           
 int getFieldCount()
          Devuelve el número de campos.
 int getFieldIndexByName(java.lang.String arg0)
          Return index field searching by its name
 java.lang.String getFieldName(int arg0)
          Devuelve el nombre del campo a partir del índice.
 java.lang.String[] getFieldNames()
           
 FieldDescription[] getFieldsDescription()
          Useful to writers, to know the field definitions.
 int getFieldType(int i)
           
 com.hardcode.gdbms.engine.values.Value getFieldValue(long arg0, int arg1)
          Devuelve el valor a partir del númro de fila y columna.
 int getFieldWidth(int i)
           
 com.hardcode.gdbms.engine.data.persistence.Memento getMemento()
           
 java.lang.String getName()
          Devuelve el nombre del DataSource.
 int getPKCardinality()
           
 java.lang.String getPKName(int fieldId)
           
 java.lang.String[] getPKNames()
           
 int getPKType(int i)
           
 com.hardcode.gdbms.engine.values.ValueCollection getPKValue(long rowIndex)
           
 int[] getPrimaryKeys()
           
 com.hardcode.gdbms.engine.values.Value[] getRow(long rowIndex)
           
 long getRowCount()
          Devuelve el número de filas en total.
 FBitSet getSelection()
          Develve un FBitSet con los índices de los elementos seleccionados.
 SelectionSupport getSelectionSupport()
          Devuelve el SelectionSupport.
 com.hardcode.gdbms.engine.data.SourceInfo getSourceInfo()
           
 long[] getWhereFilter()
           
 boolean isSelected(int recordIndex)
          Devuelve true si el elemento está seleccionado.
 boolean isVirtualField(int fieldId)
           
 void mapExternalFields()
          Maps real fields or "external" fields.
 void reload()
           
 void remove()
           
 void removeDataSourceListener(com.hardcode.gdbms.engine.data.IDataSourceListener listener)
           
 void removeSelectionListener(SelectionListener listener)
          Borra un Listener al SelectionSupport.
 void setDataSourceFactory(com.hardcode.gdbms.engine.data.DataSourceFactory dsf)
           
 void setSelection(FBitSet selection)
          Inserta una nueva selección.
 void setSelectionSupport(SelectionSupport selectionSupport)
          Añade el soporte para la selección.
 void setSourceInfo(com.hardcode.gdbms.engine.data.SourceInfo sourceInfo)
           
 void start()
          Inicializa el dataSource.
 void stop()
          Finaliza el DataSource.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SelectableDataSource

public SelectableDataSource(com.hardcode.gdbms.engine.data.DataSource ds)
                     throws com.hardcode.gdbms.engine.data.driver.DriverException
Crea un nuevo SelectableDataSource.

Parameters:
ds -
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException
Method Detail

mapExternalFields

public void mapExternalFields()
                       throws com.hardcode.gdbms.engine.data.driver.DriverException
Maps real fields or "external" fields. We don't want to see virtual fields.

Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException

createDbfSelectableDataSource

public static SelectableDataSource createDbfSelectableDataSource(java.io.File dbFile,
                                                                 boolean inmemory)
                                                          throws com.hardcode.gdbms.engine.data.driver.DriverException
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException

setDataSourceFactory

public void setDataSourceFactory(com.hardcode.gdbms.engine.data.DataSourceFactory dsf)
Specified by:
setDataSourceFactory in interface com.hardcode.gdbms.engine.data.DataSource

setSourceInfo

public void setSourceInfo(com.hardcode.gdbms.engine.data.SourceInfo sourceInfo)
Specified by:
setSourceInfo in interface com.hardcode.gdbms.engine.data.DataSource

setSelectionSupport

public void setSelectionSupport(SelectionSupport selectionSupport)
Añade el soporte para la selección.

Parameters:
selectionSupport -

getFieldCount

public int getFieldCount()
                  throws com.hardcode.gdbms.engine.data.driver.DriverException
Devuelve el número de campos.

Specified by:
getFieldCount in interface com.hardcode.gdbms.engine.data.driver.ReadAccess
Returns:
Número de campos.
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException

getFieldIndexByName

public int getFieldIndexByName(java.lang.String arg0)
                        throws com.hardcode.gdbms.engine.data.driver.DriverException
Return index field searching by its name

Specified by:
getFieldIndexByName in interface com.hardcode.gdbms.engine.data.DataSource
Parameters:
arg0 - field name.
Returns:
field index. -1 if not found
Throws:
FMapDriverException
com.hardcode.gdbms.engine.instruction.FieldNotFoundException
com.hardcode.gdbms.engine.data.driver.DriverException

getFieldName

public java.lang.String getFieldName(int arg0)
                              throws com.hardcode.gdbms.engine.data.driver.DriverException
Devuelve el nombre del campo a partir del índice.

Specified by:
getFieldName in interface com.hardcode.gdbms.engine.data.driver.ReadAccess
Parameters:
arg0 - índice.
Returns:
nombre del campo.
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException

getFieldValue

public com.hardcode.gdbms.engine.values.Value getFieldValue(long arg0,
                                                            int arg1)
                                                     throws com.hardcode.gdbms.engine.data.driver.DriverException
Devuelve el valor a partir del númro de fila y columna.

Specified by:
getFieldValue in interface com.hardcode.gdbms.engine.data.driver.ReadAccess
Parameters:
arg0 - número de registro.
arg1 - número de campo.
Returns:
Valor.
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException

getName

public java.lang.String getName()
Devuelve el nombre del DataSource.

Specified by:
getName in interface com.hardcode.gdbms.engine.data.DataSource
Returns:
Nombre.

getRowCount

public long getRowCount()
                 throws com.hardcode.gdbms.engine.data.driver.DriverException
Devuelve el número de filas en total.

Specified by:
getRowCount in interface com.hardcode.gdbms.engine.data.driver.ReadAccess
Returns:
número de filas.
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException

start

public void start()
           throws com.hardcode.gdbms.engine.data.driver.DriverException
Inicializa el dataSource.

Specified by:
start in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException

stop

public void stop()
          throws com.hardcode.gdbms.engine.data.driver.DriverException
Finaliza el DataSource.

Specified by:
stop in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException

fireSelectionEvents

public void fireSelectionEvents()
Cuando ocurre un evento de cambio en la selección, éste puede ser uno de una gran cantidad de eventos. Con el fin de no propagar todos estos eventos, se realiza la propagación de manera manual al final de la "ráfaga" de eventos

Specified by:
fireSelectionEvents in interface Selectable

addSelectionListener

public void addSelectionListener(SelectionListener listener)
Añade un nuevo Listener al SelectionSupport.

Specified by:
addSelectionListener in interface Selectable
Parameters:
listener - SelectionListener.

removeSelectionListener

public void removeSelectionListener(SelectionListener listener)
Borra un Listener al SelectionSupport.

Specified by:
removeSelectionListener in interface Selectable
Parameters:
listener - Listener a borrar.

clearSelection

public boolean clearSelection(boolean fire_events)
Borra la selección.

Specified by:
clearSelection in interface Selectable

getSelection

public FBitSet getSelection()
Develve un FBitSet con los índices de los elementos seleccionados.

Specified by:
getSelection in interface Selectable
Returns:
FBitset con los elementos seleccionados.

getSelectionSupport

public SelectionSupport getSelectionSupport()
Devuelve el SelectionSupport.

Returns:
SelectinSuport.

isSelected

public boolean isSelected(int recordIndex)
Devuelve true si el elemento está seleccionado.

Specified by:
isSelected in interface Selectable
Parameters:
recordIndex - índice del registro.
Returns:
True si el registro está seleccionado.

setSelection

public void setSelection(FBitSet selection)
Inserta una nueva selección.

Specified by:
setSelection in interface Selectable
Parameters:
selection - FBitSet.

getWhereFilter

public long[] getWhereFilter()
                      throws java.io.IOException
Specified by:
getWhereFilter in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
java.io.IOException
See Also:
DataSource.getWhereFilter()

getFieldType

public int getFieldType(int i)
                 throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getFieldType in interface com.hardcode.gdbms.engine.data.driver.ReadAccess
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
com.hardcode.gdbms.engine.data.ReadDriver#getFieldType(int)

getDataSourceFactory

public com.hardcode.gdbms.engine.data.DataSourceFactory getDataSourceFactory()
Specified by:
getDataSourceFactory in interface com.hardcode.gdbms.engine.data.DataSource
See Also:
DataSource.getDataSourceFactory()

getAsString

public java.lang.String getAsString()
                             throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getAsString in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getAsString()

remove

public void remove()
            throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
remove in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.remove()

getMemento

public com.hardcode.gdbms.engine.data.persistence.Memento getMemento()
                                                              throws com.hardcode.gdbms.engine.data.persistence.MementoException
Specified by:
getMemento in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.persistence.MementoException
See Also:
DataSource.getMemento()

getSourceInfo

public com.hardcode.gdbms.engine.data.SourceInfo getSourceInfo()
Specified by:
getSourceInfo in interface com.hardcode.gdbms.engine.data.DataSource
See Also:
DataSource.getSourceInfo()

getPrimaryKeys

public int[] getPrimaryKeys()
                     throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getPrimaryKeys in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getPrimaryKeys()

getPKValue

public com.hardcode.gdbms.engine.values.ValueCollection getPKValue(long rowIndex)
                                                            throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getPKValue in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getPKValue(long)

getPKName

public java.lang.String getPKName(int fieldId)
                           throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getPKName in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getPKName(int)

getPKType

public int getPKType(int i)
              throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getPKType in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getPKType(int)

getPKCardinality

public int getPKCardinality()
                     throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getPKCardinality in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getPKCardinality()

getRow

public com.hardcode.gdbms.engine.values.Value[] getRow(long rowIndex)
                                                throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getRow in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getRow(long)

getFieldNames

public java.lang.String[] getFieldNames()
                                 throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getFieldNames in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getFieldNames()

getPKNames

public java.lang.String[] getPKNames()
                              throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getPKNames in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getPKNames()

getDataWare

public com.hardcode.gdbms.engine.data.edition.DataWare getDataWare(int arg0)
                                                            throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getDataWare in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException
See Also:
DataSource.getDataWare(int)

getFieldWidth

public int getFieldWidth(int i)
                  throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
getFieldWidth in interface com.hardcode.gdbms.engine.data.driver.ReadAccess
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException

isVirtualField

public boolean isVirtualField(int fieldId)
                       throws com.hardcode.gdbms.engine.data.driver.DriverException
Specified by:
isVirtualField in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException

getFieldsDescription

public FieldDescription[] getFieldsDescription()
                                        throws com.hardcode.gdbms.engine.data.driver.DriverException
Useful to writers, to know the field definitions. NOTE: Maximun precision: 6 decimals. (We may need to change this)

Returns:
Description of non virtual fields
Throws:
FMapDriverException
com.hardcode.gdbms.engine.data.driver.DriverException

getDriver

public com.hardcode.driverManager.Driver getDriver()
Specified by:
getDriver in interface com.hardcode.gdbms.engine.data.DataSource

reload

public void reload()
            throws com.hardcode.gdbms.engine.data.driver.DriverException,
                   java.io.IOException
Specified by:
reload in interface com.hardcode.gdbms.engine.data.DataSource
Throws:
com.hardcode.gdbms.engine.data.driver.DriverException
java.io.IOException

addDataSourceListener

public void addDataSourceListener(com.hardcode.gdbms.engine.data.IDataSourceListener listener)
Specified by:
addDataSourceListener in interface com.hardcode.gdbms.engine.data.DataSource

removeDataSourceListener

public void removeDataSourceListener(com.hardcode.gdbms.engine.data.IDataSourceListener listener)
Specified by:
removeDataSourceListener in interface com.hardcode.gdbms.engine.data.DataSource