package com.zendesk.maxwell.schema.columndef;
import java.sql.Time;
import java.sql.Timestamp;
import com.google.code.or.common.util.MySQLConstants;
public class TimeColumnDef extends ColumnDefWithLength {
public TimeColumnDef(String name, String type, int pos, Long columnLength) {
super(name, type, pos, columnLength);
}
@Override
public boolean matchesMysqlType(int type) {
return type == MySQLConstants.TYPE_TIME || type == MySQLConstants.TYPE_TIME2;
}
protected String formatValue(Object value) {
if ( value instanceof Timestamp ) {
Time time = new Time(((Timestamp) value).getTime());
String timeAsStr = String.valueOf(time);
return appendFractionalSeconds(timeAsStr, ((Timestamp) value).getNanos(), this.columnLength);
} else if ( value instanceof Long ) {
Time time = new Time((Long) value / 1000);
String timeAsStr = String.valueOf(time);
return appendFractionalSeconds(timeAsStr, (int) ((Long) value % 1000000) * 1000, this.columnLength);
} else {
return String.valueOf((Time) value);
}
}
}