/**
* $Id: BaseDateFormatHolder.java 2 2008-10-01 10:04:26Z azeckoski $
* $URL: http://reflectutils.googlecode.com/svn/trunk/src/main/java/org/azeckoski/reflectutils/converters/BaseDateFormatHolder.java $
* BaseDateFormatHolder.java - genericdao - Sep 8, 2008 2:15:02 PM - azeckoski
**************************************************************************
* Copyright (c) 2008 Aaron Zeckoski
* Licensed under the Apache License, Version 2.0
*
* A copy of the Apache License has been included in this
* distribution and is available at: http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Aaron Zeckoski (azeckoski @ gmail.com) (aaronz @ vt.edu) (aaron @ caret.cam.ac.uk)
*/
package org.azeckoski.reflectutils.converters;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
/**
* Simple class to add in support for controlling the formats to
* use when parsing the various dates
*
* @author Aaron Zeckoski (azeckoski @ gmail.com)
*/
public class BaseDateFormatHolder {
public BaseDateFormatHolder() {}
/**
* @param patterns set the patterns to use when parsing strings to dates
*/
public BaseDateFormatHolder(String[] patterns) {
setPatterns(patterns);
}
/**
* @param formats the formats to use when parsing strings into dates
*/
public BaseDateFormatHolder(DateFormat[] formats) {
setFormats(formats);
}
protected DateFormat[] formats;
/**
* @param formats sets the format objects to use for parsing
*/
public void setFormats(DateFormat[] formats) {
this.formats = formats;
}
protected String[] patterns;
/**
* @param patterns set the patterns to use for parsing
*/
public void setPatterns(String[] patterns) {
this.patterns = patterns;
getDateFormats();
}
// = new String[] {
// "yyyy-MM-dd HH:mm:ss.fffffffff",
// "yyyy-MM-dd",
// "HH:mm:ss"
// };
/**
* @return the array of date formats currently used by this converter
*/
public DateFormat[] getDateFormats() {
if (formats == null) {
ArrayList<DateFormat> dateFormats = new ArrayList<DateFormat>();
// add the standard short ones
// dateFormats.add( DateFormat.getDateInstance(DateFormat.SHORT) );
// dateFormats.add( DateFormat.getTimeInstance(DateFormat.SHORT) );
// dateFormats.add( DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT) );
if (patterns != null) {
for (int i = 0; i < patterns.length; i++) {
dateFormats.add( new SimpleDateFormat(patterns[i]) );
}
}
formats = dateFormats.toArray(new DateFormat[dateFormats.size()]);
}
return formats;
}
}