package org.embulk.spi.util;
import java.util.Map;
import com.google.common.base.Optional;
import org.embulk.config.Task;
import org.embulk.spi.Column;
import org.embulk.spi.Schema;
import org.embulk.spi.ColumnConfig;
import org.embulk.spi.SchemaConfig;
import org.embulk.spi.time.TimestampFormatter;
import org.embulk.spi.type.TimestampType;
import org.embulk.spi.time.TimestampParser;
import org.embulk.spi.SchemaConfig;
public class Timestamps
{
private Timestamps() { }
private interface TimestampColumnOption
extends Task, TimestampParser.TimestampColumnOption
{ }
public static TimestampParser[] newTimestampColumnParsers(
TimestampParser.Task parserTask, SchemaConfig schema)
{
TimestampParser[] parsers = new TimestampParser[schema.getColumnCount()];
int i = 0;
for (ColumnConfig column : schema.getColumns()) {
if (column.getType() instanceof TimestampType) {
TimestampColumnOption option = column.getOption().loadConfig(TimestampColumnOption.class);
parsers[i] = new TimestampParser(parserTask, option);
}
i++;
}
return parsers;
}
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] = new TimestampFormatter(formatterTask, option);
}
i++;
}
return formatters;
}
}