package nl.ipo.cds.etl.operations.transform; import java.sql.Timestamp; import java.util.regex.Matcher; import java.util.regex.Pattern; import nl.ipo.cds.attributemapping.operations.annotation.Execute; import nl.ipo.cds.attributemapping.operations.annotation.Input; import nl.ipo.cds.attributemapping.operations.annotation.MappingOperation; @MappingOperation public class ToDateTimeTransform { private final Pattern datePattern; public ToDateTimeTransform () { datePattern = Pattern.compile ("^([0-9]{4}-[0-9]{2}-[0-9]{2})[T ]([0-9]{2}\\:[0-9]{2}\\:[0-9]{2}(\\.[0-9]+)?)$"); } @Execute public Timestamp execute (final @Input ("value") String value) { if (value == null || value.trim ().length () == 0) { return null; } final Matcher matcher; if ((matcher = datePattern.matcher (value)).matches ()) { final String date = matcher.group (1); final String time = matcher.group (2); return Timestamp.valueOf (date + " " + time); } return null; } }