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);
}
}
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());
}
}
Aggregations