package org.springframework.roo.converters; import java.text.DateFormat; import java.text.ParseException; import java.util.Date; import java.util.List; import java.util.Locale; import org.springframework.roo.shell.Completion; import org.springframework.roo.shell.Converter; import org.springframework.roo.shell.MethodTarget; /** * {@link Converter} for {@link Date}. * * @author Stefan Schmidt * @since 1.0 */ public class DateConverter implements Converter<Date> { private final DateFormat dateFormat; public DateConverter() { dateFormat = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.getDefault()); } public DateConverter(final DateFormat dateFormat) { this.dateFormat = dateFormat; } public Date convertFromText(final String value, final Class<?> requiredType, final String optionContext) { try { return dateFormat.parse(value); } catch (final ParseException e) { throw new IllegalArgumentException("Could not parse date: " + e.getMessage()); } } public boolean getAllPossibleValues(final List<Completion> completions, final Class<?> requiredType, final String existingData, final String optionContext, final MethodTarget target) { return false; } public boolean supports(final Class<?> requiredType, final String optionContext) { return Date.class.isAssignableFrom(requiredType); } }