Package adams.db

Class SampleDataF

  • All Implemented Interfaces:
    adams.core.logging.LoggingSupporter, adams.core.SizeOfHandler, adams.db.BulkReportUpdater<SampleData>, adams.db.DatabaseConnectionProvider, adams.db.DatabaseConnectionUser, adams.db.FieldProvider<adams.data.report.Field>, adams.db.InstrumentProvider, adams.db.ReportProvider<SampleData,​String>, adams.db.ReportProviderByID<SampleData>, SampleDataIntf, adams.db.TableInterface, Serializable

    public class SampleDataF
    extends adams.db.AbstractTableFacade
    implements SampleDataIntf
    Facade for sample data.
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected SampleDataIntf m_DB
      the backend.
      protected static adams.db.FacadeManager<SampleDataF> m_TableManager
      the facade manager.
      • Fields inherited from class adams.db.AbstractTableFacade

        m_DatabaseConnection, m_Debug, m_TableName
      • Fields inherited from class adams.core.logging.LoggingObject

        m_Logger, m_LoggingIsEnabled, m_LoggingLevel
    • Constructor Summary

      Constructors 
      Constructor Description
      SampleDataF​(adams.db.AbstractDatabaseConnection dbcon, String tableName)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean bulkStore​(SampleData[] records, adams.data.report.DataType[] types, String skipFields, int batchSize, boolean autoCommit, boolean newConnection)
      Stores the records.
      boolean exists​(String id)
      Checks whether the report exists in the database.
      List<Integer> getDBIDs​(adams.db.AbstractConditions conditions)
      Return a list of database IDs of data containers that match the defined conditions.
      List<adams.data.report.Field> getFields()
      Returns all available fields.
      List<adams.data.report.Field> getFields​(adams.data.report.DataType dtype)
      Returns all available fields.
      List<String> getIDs​(adams.db.AbstractConditions cond)
      Return a list of IDs of spectra that match the defined conditions.
      List<String> getIDs​(String[] columns, adams.db.AbstractConditions cond)
      Return a list of IDs of spectra that match the defined conditions.
      List<String> getInstruments()
      Returns all the various instruments.
      List<String> getOrphanedIDs​(OrphanedSampleDataConditions conditions)
      Returns a list of sample IDs of of sample data without associated spectra.
      static SampleDataF getSingleton​(adams.db.AbstractDatabaseConnection dbcon)
      Returns the singleton of the facade.
      SpectrumIntf getSpectrumHandler()
      Returns the corresponding Spectrum handler.
      boolean init()
      Initialise table & sub-tables.
      SampleData load​(String id)
      Get params.
      boolean remove​(String id)
      Removes the report from the database.
      boolean remove​(String id, adams.data.report.AbstractField field)
      Removes the report field from the database.
      void stopBulkStore()
      Interrupts a currently running bulk store, if possible.
      boolean store​(String id, SampleData report)
      Stores the report.
      boolean store​(String id, SampleData report, boolean removeExisting, boolean merge, adams.data.report.Field[] overwrite)
      Stores the report.
      • Methods inherited from class adams.db.AbstractTableFacade

        getDatabaseConnection, getDebug, getTableName, reload, setDebug, updatePrefix
      • Methods inherited from class adams.core.logging.LoggingObject

        configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
      • Methods inherited from interface adams.db.DatabaseConnectionProvider

        getDatabaseConnection
      • Methods inherited from interface adams.db.TableInterface

        getTableName
    • Field Detail

      • m_TableManager

        protected static adams.db.FacadeManager<SampleDataF> m_TableManager
        the facade manager.
    • Constructor Detail

      • SampleDataF

        public SampleDataF​(adams.db.AbstractDatabaseConnection dbcon,
                           String tableName)
        Constructor.
        Parameters:
        dbcon - the database context to use
        tableName - the name of the table
    • Method Detail

      • init

        public boolean init()
        Initialise table & sub-tables.
        Specified by:
        init in interface SampleDataIntf
        Returns:
        success?
      • getFields

        public List<adams.data.report.Field> getFields()
        Returns all available fields.
        Specified by:
        getFields in interface adams.db.FieldProvider<adams.data.report.Field>
        Returns:
        the list of fields
      • getFields

        public List<adams.data.report.Field> getFields​(adams.data.report.DataType dtype)
        Returns all available fields.
        Specified by:
        getFields in interface adams.db.FieldProvider<adams.data.report.Field>
        Specified by:
        getFields in interface SampleDataIntf
        Parameters:
        dtype - the type to limit the search to, use "null" for all
        Returns:
        the list of fields
      • exists

        public boolean exists​(String id)
        Checks whether the report exists in the database.
        Specified by:
        exists in interface adams.db.ReportProvider<SampleData,​String>
        Specified by:
        exists in interface adams.db.ReportProviderByID<SampleData>
        Specified by:
        exists in interface SampleDataIntf
        Parameters:
        id - the ID of parent data container
        Returns:
        true if the report exists
      • remove

        public boolean remove​(String id)
        Removes the report from the database.
        Specified by:
        remove in interface adams.db.ReportProvider<SampleData,​String>
        Specified by:
        remove in interface adams.db.ReportProviderByID<SampleData>
        Parameters:
        id - the ID of the parent data container
        Returns:
        true if successfully removed
      • remove

        public boolean remove​(String id,
                              adams.data.report.AbstractField field)
        Removes the report field from the database.
        Specified by:
        remove in interface adams.db.ReportProviderByID<SampleData>
        Parameters:
        id - the ID of the parent data container
        field - the field to remove
        Returns:
        true if successfully removed
      • store

        public boolean store​(String id,
                             SampleData report)
        Stores the report. Removes a previously existing report.
        Specified by:
        store in interface adams.db.ReportProvider<SampleData,​String>
        Specified by:
        store in interface adams.db.ReportProviderByID<SampleData>
        Parameters:
        id - the id of the report
        report - the report
        Returns:
        true if successfully inserted/updated
      • store

        public boolean store​(String id,
                             SampleData report,
                             boolean removeExisting,
                             boolean merge,
                             adams.data.report.Field[] overwrite)
        Stores the report. Either updates or inserts the fields.
        Specified by:
        store in interface adams.db.ReportProvider<SampleData,​String>
        Specified by:
        store in interface adams.db.ReportProviderByID<SampleData>
        Parameters:
        id - the id of the report
        report - the report
        removeExisting - whether to remove existing an already existing report before storing it (has precedence over "merge")
        merge - whether to merge the existing and the current
        overwrite - fields to overwrite if in "merge" mode
        Returns:
        true if successfully inserted/updated
      • load

        public SampleData load​(String id)
        Get params.
        Specified by:
        load in interface adams.db.ReportProvider<SampleData,​String>
        Specified by:
        load in interface adams.db.ReportProviderByID<SampleData>
        Specified by:
        load in interface SampleDataIntf
        Parameters:
        id - sample ID of spectrum
        Returns:
        the hashtable
      • getIDs

        public List<String> getIDs​(adams.db.AbstractConditions cond)
        Return a list of IDs of spectra that match the defined conditions. Since the alphanumeric IDs can be of numeric nature as well, we're returning them surrounded with double quotes to avoid them being interpreted as database IDs.
        Specified by:
        getIDs in interface adams.db.ReportProvider<SampleData,​String>
        Specified by:
        getIDs in interface adams.db.ReportProviderByID<SampleData>
        Specified by:
        getIDs in interface SampleDataIntf
        Parameters:
        cond - the conditions that the spectra must meet
        Returns:
        list of spectrum ids
      • getIDs

        public List<String> getIDs​(String[] columns,
                                   adams.db.AbstractConditions cond)
        Return a list of IDs of spectra that match the defined conditions. Since the alphanumeric IDs can be of numeric nature as well, we're returning them surrounded with double quotes to avoid them being interpreted as database IDs. If several columns are specified, then the result contains them tab-separated.
        Specified by:
        getIDs in interface adams.db.ReportProvider<SampleData,​String>
        Specified by:
        getIDs in interface adams.db.ReportProviderByID<SampleData>
        Specified by:
        getIDs in interface SampleDataIntf
        Parameters:
        columns - the columns to retrieve ("sp." for spectrum table, "sd." for sampledata table)
        cond - the conditions that the spectra must meet
        Returns:
        list of spectrum ids
      • getDBIDs

        public List<Integer> getDBIDs​(adams.db.AbstractConditions conditions)
        Return a list of database IDs of data containers that match the defined conditions.
        Specified by:
        getDBIDs in interface adams.db.ReportProvider<SampleData,​String>
        Specified by:
        getDBIDs in interface adams.db.ReportProviderByID<SampleData>
        Specified by:
        getDBIDs in interface SampleDataIntf
        Parameters:
        conditions - the conditions that the conatiners must meet
        Returns:
        list of database IDs
      • getOrphanedIDs

        public List<String> getOrphanedIDs​(OrphanedSampleDataConditions conditions)
        Returns a list of sample IDs of of sample data without associated spectra.
        Specified by:
        getOrphanedIDs in interface SampleDataIntf
        Parameters:
        conditions - the conditions that the sampledata must meet
        Returns:
        list of sample IDs
      • getInstruments

        public List<String> getInstruments()
        Returns all the various instruments.
        Specified by:
        getInstruments in interface adams.db.InstrumentProvider
        Specified by:
        getInstruments in interface SampleDataIntf
        Returns:
        the instruments
      • bulkStore

        public boolean bulkStore​(SampleData[] records,
                                 adams.data.report.DataType[] types,
                                 String skipFields,
                                 int batchSize,
                                 boolean autoCommit,
                                 boolean newConnection)
        Stores the records. Removes any previously existing reference values.
        Specified by:
        bulkStore in interface adams.db.BulkReportUpdater<SampleData>
        Parameters:
        records - the report
        types - the data types to import
        skipFields - the fields to skip (regular expression), null to accept all
        batchSize - the maximum number of records in one batch
        autoCommit - whether to use auto-commit or not (turning off may impact other transactions!)
        newConnection - uses a separate database connection just for this connection (then no auto-commit doesn't affect the rest)
        Returns:
        true if successfully inserted/updated
      • stopBulkStore

        public void stopBulkStore()
        Interrupts a currently running bulk store, if possible.
        Specified by:
        stopBulkStore in interface adams.db.BulkReportUpdater<SampleData>
      • getSingleton

        public static SampleDataF getSingleton​(adams.db.AbstractDatabaseConnection dbcon)
        Returns the singleton of the facade.
        Parameters:
        dbcon - the database connection to get the singleton for
        Returns:
        the singleton