All Downloads are FREE. Search and download functionalities are using the official Maven repository.

se.alipsa.r2jdbc.columns.DateStringColumnBuilder Maven / Gradle / Ivy

package se.alipsa.r2jdbc.columns;

import org.joda.time.format.DateTimeFormatter;
import org.renjin.sexp.AtomicVector;
import org.renjin.sexp.StringArrayVector;
import org.renjin.sexp.StringVector;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;

/**
 * Constructs a character vector column from a date-time field in a ResultSet.
 */
public class DateStringColumnBuilder implements ColumnBuilder {
    
    private final StringArrayVector.Builder vector = new StringVector.Builder();
    
    public DateTimeFormatter format;

    public static boolean acceptsType(String columnType) {
        return columnType.equals("datetime") || columnType.equals("timestamp")
            || columnType.equals("datetime2");
    }

    public DateStringColumnBuilder(DateTimeFormatter format) {
        this.format = format;
    }

    @Override
    public void addValue(ResultSet rs, int columnIndex) throws SQLException {
        Timestamp date = rs.getTimestamp(columnIndex);
        if(date == null) {
            vector.addNA();
        } else {
            vector.add(format.print(date.getTime()));
        }
    }

    @Override
    public AtomicVector build() {
        return vector.build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy