Class CsvDataContext

  • All Implemented Interfaces:
    org.apache.metamodel.convert.HasReadTypeConverters, org.apache.metamodel.DataContext, org.apache.metamodel.UpdateableDataContext

    public final class CsvDataContext
    extends org.apache.metamodel.QueryPostprocessDataContext
    implements org.apache.metamodel.UpdateableDataContext
    DataContext implementation for reading CSV files.
    • Field Summary

      • Fields inherited from class org.apache.metamodel.QueryPostprocessDataContext

        INFORMATION_SCHEMA_NAME, SYSTEM_PROPERTY_CREATE_DEFAULT_TABLE_ALIAS
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected com.opencsv.CSVReader createCsvReader​(int skipLines)  
      protected com.opencsv.CSVReader createCsvReader​(BufferedReader reader)  
      protected Number executeCountQuery​(org.apache.metamodel.schema.Table table, List<org.apache.metamodel.query.FilterItem> whereItems, boolean functionApproximationAllowed)  
      org.apache.metamodel.UpdateSummary executeUpdate​(org.apache.metamodel.UpdateScript update)  
      CsvConfiguration getConfiguration()
      Gets the CSV configuration used
      protected org.apache.metamodel.csv.CsvSchema getMainSchema()  
      protected String getMainSchemaName()  
      org.apache.metamodel.util.Resource getResource()
      Gets the resource that is being read from.
      protected boolean isWritable()  
      org.apache.metamodel.data.DataSet materializeMainSchemaTable​(org.apache.metamodel.schema.Table table, List<org.apache.metamodel.schema.Column> columns, int maxRows)  
      • Methods inherited from class org.apache.metamodel.QueryPostprocessDataContext

        addConverter, executePrimaryKeyLookupQuery, executeQuery, getDefaultSchemaName, getSchemaByNameInternal, getSchemaNamesInternal, isMainSchemaTable, isScalarFunctionMaterialized, materializeFromItem, materializeMainSchemaTable, materializeMainSchemaTable, materializeMainSchemaTableSelect, materializeTable
      • Methods inherited from class org.apache.metamodel.AbstractDataContext

        compileQuery, executeQuery, executeQuery, getColumnByQualifiedLabel, getDefaultSchema, getSchemaByName, getSchemaNames, getSchemas, getTableByQualifiedLabel, isQualifiedPathDelim, onSchemaCacheRefreshed, parseQuery, query, refreshSchemas
      • Methods inherited from interface org.apache.metamodel.DataContext

        compileQuery, executeQuery, executeQuery, executeQuery, getColumnByQualifiedLabel, getDefaultSchema, getSchemaByName, getSchemaNames, getSchemas, getTableByQualifiedLabel, parseQuery, query, refreshSchemas
    • Constructor Detail

      • CsvDataContext

        public CsvDataContext​(File file,
                              CsvConfiguration configuration)
        Constructs a CSV DataContext based on a file The file provided can be either existing or non-existing. In the case of non-existing files, a file will be automatically created when a CREATE TABLE update is executed on the DataContext.
        Parameters:
        file -
        configuration -
      • CsvDataContext

        public CsvDataContext​(org.apache.metamodel.util.Resource resource,
                              CsvConfiguration configuration)
      • CsvDataContext

        public CsvDataContext​(URL url,
                              CsvConfiguration configuration)
        Constructs a CSV DataContext based on a URL
        Parameters:
        url -
        configuration -
      • CsvDataContext

        public CsvDataContext​(File file)
        Constructs a CSV DataContext based on a file
        Parameters:
        file -
      • CsvDataContext

        public CsvDataContext​(InputStream inputStream,
                              CsvConfiguration configuration)
        Constructs a CSV DataContext based on an InputStream
        Parameters:
        inputStream -
        configuration -
    • Method Detail

      • getConfiguration

        public CsvConfiguration getConfiguration()
        Gets the CSV configuration used
        Returns:
        a CSV configuration
      • getResource

        public org.apache.metamodel.util.Resource getResource()
        Gets the resource that is being read from.
        Returns:
      • executeCountQuery

        protected Number executeCountQuery​(org.apache.metamodel.schema.Table table,
                                           List<org.apache.metamodel.query.FilterItem> whereItems,
                                           boolean functionApproximationAllowed)
        Overrides:
        executeCountQuery in class org.apache.metamodel.QueryPostprocessDataContext
      • materializeMainSchemaTable

        public org.apache.metamodel.data.DataSet materializeMainSchemaTable​(org.apache.metamodel.schema.Table table,
                                                                            List<org.apache.metamodel.schema.Column> columns,
                                                                            int maxRows)
        Specified by:
        materializeMainSchemaTable in class org.apache.metamodel.QueryPostprocessDataContext
      • createCsvReader

        protected com.opencsv.CSVReader createCsvReader​(int skipLines)
      • createCsvReader

        protected com.opencsv.CSVReader createCsvReader​(BufferedReader reader)
      • getMainSchema

        protected org.apache.metamodel.csv.CsvSchema getMainSchema()
                                                            throws org.apache.metamodel.MetaModelException
        Specified by:
        getMainSchema in class org.apache.metamodel.QueryPostprocessDataContext
        Throws:
        org.apache.metamodel.MetaModelException
      • getMainSchemaName

        protected String getMainSchemaName()
        Specified by:
        getMainSchemaName in class org.apache.metamodel.QueryPostprocessDataContext
      • isWritable

        protected boolean isWritable()
      • executeUpdate

        public org.apache.metamodel.UpdateSummary executeUpdate​(org.apache.metamodel.UpdateScript update)
        Specified by:
        executeUpdate in interface org.apache.metamodel.UpdateableDataContext