/******************************************************************************* * Copyright (c) 2010 Robert "Unlogic" Olofsson (unlogic@unlogic.se). * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0-standalone.html ******************************************************************************/ package se.unlogic.standardutils.populators; import se.unlogic.standardutils.dao.BeanResultSetPopulator; import se.unlogic.standardutils.date.DateUtils; import se.unlogic.standardutils.validation.StringFormatValidator; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; public class TimeStampPopulator extends BaseStringPopulator<Timestamp> implements BeanResultSetPopulator<Timestamp> { private final DateFormat dateFormat; private static final TimeStampPopulator POPULATOR = new TimeStampPopulator(); public TimeStampPopulator(){ super(); this.dateFormat = null; } public TimeStampPopulator(DateFormat dateFormat) { super(); this.dateFormat = dateFormat; } public TimeStampPopulator(String populatorID, DateFormat dateFormat) { super(populatorID); this.dateFormat = dateFormat; } public TimeStampPopulator(String populatorID, DateFormat dateFormat, StringFormatValidator formatValidator) { super(populatorID,formatValidator); this.dateFormat = dateFormat; } public Class<? extends Timestamp> getType() { return Timestamp.class; } public Timestamp getValue(String value) { try { return new Timestamp(this.dateFormat.parse(value).getTime()); } catch (ParseException e) { throw new RuntimeException(e); } } @Override public boolean validateDefaultFormat(String value) { return DateUtils.isValidDate(this.dateFormat, value); } public static TimeStampPopulator getPopulator(){ return POPULATOR; } public Timestamp populate(ResultSet rs) throws SQLException { return rs.getTimestamp(1); } }