public synchronized Builder add(String name, Type type) { columns.add(new Column(index++, name, type)); return this; }
public static TimestampFormatter[] newTimestampColumnFormatters( TimestampFormatter.Task formatterTask, Schema schema, Map<String, ? extends TimestampFormatter.TimestampColumnOption> columnOptions) { TimestampFormatter[] formatters = new TimestampFormatter[schema.getColumnCount()]; int i = 0; for (Column column : schema.getColumns()) { if (column.getType() instanceof TimestampType) { Optional<TimestampFormatter.TimestampColumnOption> option = Optional.fromNullable(columnOptions.get(column.getName())); formatters[i] = TimestampFormatter.of(formatterTask, option); } i++; } return formatters; } }
List<String> removeColumns = getExistentColumns(inputSchema, task.getRemove().get(), acceptUnmatchedColumns); for (Column column : inputSchema.getColumns()) { if (!removeColumns.contains(column.getName())) { outputColumns.add(new Column(index, column.getName(), column.getType())); indexMapping[column.getIndex()] = index; index++; List<String> keepColumns = getExistentColumns(inputSchema, task.getKeep().get(), acceptUnmatchedColumns); for (Column column : inputSchema.getColumns()) { if (keepColumns.contains(column.getName())) { outputColumns.add(new Column(index, column.getName(), column.getType())); indexMapping[column.getIndex()] = index; index++;
public Column lookupColumn(String name) { for (Column c : columns) { if (c.getName().equals(name)) { return c; } } throw new SchemaConfigException(String.format("Column '%s' is not found", name)); }
if (dropColumns.size() > 0) { for (Column inputColumn : inputSchema.getColumns()) { String name = inputColumn.getName(); boolean matched = false; for (ColumnConfig dropColumn : dropColumns) { Column outputColumn = new Column(i++, name, inputColumn.getType()); builder.add(outputColumn); Column outputColumn = new Column(i++, name, inputColumn.getType()); builder.add(outputColumn); Column outputColumn = new Column(i++, name, type.get()); builder.add(outputColumn); Column outputColumn = new Column(i++, column.getName(), column.getType()); builder.add(outputColumn); Column outputColumn = new Column(i++, name, inputColumn.getType()); builder.add(outputColumn); Column outputColumn = new Column(i++, name, type.get()); builder.add(outputColumn);
@Override public void writeNotNull(PageBuilder pageBuilder) { pageBuilder.writeBoolean(column.getIndex(), value); } }
public int getFixedStorageSize() { int total = 0; for (Column column : columns) { total += column.getType().getFixedStorageSize(); } return total; }
public void visitColumns(ColumnVisitor visitor) { for (Column column : columns) { column.visit(visitor); } }
public String getColumnName(int index) { return getColumn(index).getName(); }
@Override public void writeNotNull(PageBuilder pageBuilder) { pageBuilder.writeJson(column.getIndex(), value); } }
private void writeHeader(Schema schema, LineEncoder encoder, char delimiter, QuotePolicy policy, char quote, char escape, String newline, String nullString) { String delimiterString = String.valueOf(delimiter); for (Column column : schema.getColumns()) { if (column.getIndex() != 0) { encoder.addText(delimiterString); } encoder.addText(setEscapeAndQuoteValue(column.getName(), delimiter, policy, quote, escape, newline, nullString)); } encoder.addNewLine(); }
public Type getColumnType(int index) { return getColumn(index).getType(); }
public static Object getObject(PageReader record, Column column) { GetObjectColumnVisitor visitor = new GetObjectColumnVisitor(record); column.visit(visitor); return visitor.get(); }
private Schema applyTruncateRule(Schema inputSchema, TruncateRule rule) { Schema.Builder builder = Schema.builder(); for (Column column : inputSchema.getColumns()) { if (column.getName().length() <= rule.getMaxLength()) { builder.add(column.getName(), column.getType()); } else { try { builder.add(column.getName().substring(0, rule.getMaxLength()), column.getType()); } catch (IndexOutOfBoundsException ex) { logger.error("FATAL unexpected error in \"truncate\" rule: substring failed."); throw new AssertionError("FATAL unexpected error in \"truncate\" rule: substring failed.", ex); } } } return builder.build(); }
private DynamicPageBuilder.ColumnOption getColumnOption(Column column) { ConfigSource option = task.getColumnOptions().get(column.getName()); if (option != null) { return option.loadConfig(DynamicPageBuilder.ColumnOption.class); } else { return null; } }
@Override public void writeNotNull(PageBuilder pageBuilder) { pageBuilder.writeDouble(column.getIndex(), value); } }
@Override public ConfigDiff transaction(ConfigSource config, Schema schema, int taskCount, OutputPlugin.Control control) { final PluginTask task = config.loadConfig(PluginTask.class); if (task.getPrintsColumnNames()) { for (final Column column : schema.getColumns()) { if (column.getIndex() > 0) { System.out.print(","); } System.out.print(column.getName()); } System.out.println(""); } return resume(task.dump(), schema, taskCount, control); }