class TimestampFileNameExtractor extends RegExPropertiesCollector {

    @Override
    public void setProperties(SimpleFeature feature) {

        // get all the matches and convert them in times
        final List<Date> dates = new ArrayList<Date>();
        for (String match : getMatches()) {
            // try to convert to date
            try {
                if (customFormat != null) {
                    Date parsed = customFormat.parse(match);
                    dates.add(parsed);
                } else {
                    List<Date> parsed = parser.parse(match);
                    dates.addAll(parsed);
                }
            } catch (ParseException e) {
                if (LOGGER.isLoggable(Level.FINE))
                    LOGGER.log(Level.FINE, e.getLocalizedMessage(), e);
            }

        }

        // set the properties, only if we have matches!
        if (dates.size() <= 0) {
            if (LOGGER.isLoggable(Level.FINE)) {
                LOGGER.fine("No matches found for this property extractor:");
            }
            throw new IllegalArgumentException("No matches found for this property extractor");
        }
        int index = 0;
        for (String propertyName : getPropertyNames()) {
            // set the property
            feature.setAttribute(propertyName, dates.get(index++));

            // do we have more dates?
            if (index >= dates.size())
                return;
        }
        
    }

    public  TimestampFileNameExtractor(PropertiesCollectorSPI spi, List<String> propertyNames,
            String regex, String format);
    public  TimestampFileNameExtractor(PropertiesCollectorSPI spi, List<String> propertyNames,
            String regex, String format, boolean fullPath);

}