Search in sources :

Example 6 with Column

use of org.teiid.translator.google.api.metadata.Column in project teiid by teiid.

the class SpreadsheetMetadataExtractor method extractMetadata.

public SpreadsheetInfo extractMetadata(String spreadsheetId) {
    try {
        Spreadsheet spreadsheet = sheetsAPI.getSpreadsheet(spreadsheetId);
        SpreadsheetInfo metadata = new SpreadsheetInfo(spreadsheet.getProperties().getTitle());
        metadata.setSpreadsheetKey(spreadsheet.getSpreadsheetId());
        for (Sheet sheet : spreadsheet.getSheets()) {
            String title = sheet.getProperties().getTitle();
            Worksheet worksheet = metadata.createWorksheet(title);
            worksheet.setId(sheet.getProperties().getSheetId().toString());
            List<Column> cols = dataProtocolAPI.getMetadata(spreadsheet.getSpreadsheetId(), title);
            if (!cols.isEmpty()) {
                if (cols.get(0).getLabel() != null) {
                    worksheet.setHeaderEnabled(true);
                }
            }
            for (Column c : cols) {
                worksheet.addColumn(c.getLabel() != null ? c.getLabel() : c.getAlphaName(), c);
            }
        }
        return metadata;
    } catch (IOException ex) {
        throw new SpreadsheetOperationException(SpreadsheetManagedConnectionFactory.UTIL.gs("metadata_error"), // $NON-NLS-1$
        ex);
    }
}
Also used : Spreadsheet(com.google.api.services.sheets.v4.model.Spreadsheet) SpreadsheetInfo(org.teiid.translator.google.api.metadata.SpreadsheetInfo) Column(org.teiid.translator.google.api.metadata.Column) SpreadsheetOperationException(org.teiid.translator.google.api.SpreadsheetOperationException) Worksheet(org.teiid.translator.google.api.metadata.Worksheet) IOException(java.io.IOException) Sheet(com.google.api.services.sheets.v4.model.Sheet)

Example 7 with Column

use of org.teiid.translator.google.api.metadata.Column in project teiid by teiid.

the class GoogleMetadataProcessor method addColumnsToTable.

/**
 * Adds column to table
 *
 * @param table      Teiid table
 * @param worksheet
 * @throws TranslatorException
 */
private void addColumnsToTable(MetadataFactory mf, Table table, Worksheet worksheet) {
    boolean updatable = true;
    for (Column column : worksheet.getColumnsAsList()) {
        String type = null;
        switch(column.getDataType()) {
            case DATE:
                updatable = false;
                type = TypeFacility.RUNTIME_NAMES.DATE;
                break;
            case BOOLEAN:
                type = TypeFacility.RUNTIME_NAMES.BOOLEAN;
                break;
            case DATETIME:
                updatable = false;
                type = TypeFacility.RUNTIME_NAMES.TIMESTAMP;
                break;
            case NUMBER:
                updatable = false;
                type = TypeFacility.RUNTIME_NAMES.DOUBLE;
                break;
            case TIMEOFDAY:
                updatable = false;
                type = TypeFacility.RUNTIME_NAMES.TIME;
                break;
            default:
                type = TypeFacility.RUNTIME_NAMES.STRING;
        }
        String name = column.getAlphaName();
        if (worksheet.isHeaderEnabled()) {
            name = column.getLabel();
            if (name == null) {
                // $NON-NLS-1$
                LogManager.logDetail(LogConstants.CTX_CONNECTOR, SpreadsheetExecutionFactory.UTIL.getString("missing_label", column.getAlphaName()));
                continue;
            }
        }
        org.teiid.metadata.Column c = mf.addColumn(name, type, table);
        if (table.supportsUpdate()) {
            c.setUpdatable(updatable || allTypesUpdatable);
        }
        c.setNameInSource(worksheet.isHeaderEnabled() ? column.getLabel() : column.getAlphaName());
        c.setNativeType(column.getDataType().name());
    }
}
Also used : Column(org.teiid.translator.google.api.metadata.Column)

Aggregations

Column (org.teiid.translator.google.api.metadata.Column)7 SpreadsheetInfo (org.teiid.translator.google.api.metadata.SpreadsheetInfo)4 Worksheet (org.teiid.translator.google.api.metadata.Worksheet)4 IOException (java.io.IOException)3 SpreadsheetOperationException (org.teiid.translator.google.api.SpreadsheetOperationException)3 ListEntry (com.google.gdata.data.spreadsheet.ListEntry)2 ListFeed (com.google.gdata.data.spreadsheet.ListFeed)2 ServiceException (com.google.gdata.util.ServiceException)2 Test (org.junit.Test)2 UpdateSet (org.teiid.translator.google.api.UpdateSet)2 Sheet (com.google.api.services.sheets.v4.model.Sheet)1 Spreadsheet (com.google.api.services.sheets.v4.model.Spreadsheet)1 SpreadsheetQuery (com.google.gdata.client.spreadsheet.SpreadsheetQuery)1 SpreadsheetEntry (com.google.gdata.data.spreadsheet.SpreadsheetEntry)1 WorksheetEntry (com.google.gdata.data.spreadsheet.WorksheetEntry)1 MalformedURLException (java.net.MalformedURLException)1 ArrayList (java.util.ArrayList)1 Properties (java.util.Properties)1 BeforeClass (org.junit.BeforeClass)1 MetadataFactory (org.teiid.metadata.MetadataFactory)1