public FilenameDateExtractor() { timeStampExtractor = new TimeStampExtractor("yyyyMMdd", "${startDate}_*.shp"); }
@Test public void testInit() throws Exception { new TimeStampExtractor("yyyyMMdd", "*${startDate}*.dim"); new TimeStampExtractor("yyyyMMdd", "*${startDate}*${endDate}.dim"); new TimeStampExtractor("yyyyMMdd", "*${endDate}.dim"); try { new TimeStampExtractor("yyyyMMdd", "something.dim"); fail(); } catch (IllegalStateException expected) { // ok } }
@Override public void actionPerformed(ActionEvent e) { if (StringUtils.isNotNullAndNotEmpty(datePatternComboBox.getEditor().getItem().toString()) && StringUtils.isNotNullAndNotEmpty(fileNamePatternComboBox.getEditor().getItem().toString())) { timeStampExtractor = new TimeStampExtractor(datePatternComboBox.getSelectedItem().toString(), fileNamePatternComboBox.getSelectedItem().toString()); } else { timeStampExtractor = null; } startDate = startTimePicker.getDate(); endDate = stopTimePicker.getDate(); updateUIState(); applyButton.setEnabled(false); fireFilterChangedEvent(); } });
public static List<String[]> recommendPatterns(String fileName) { fileName = replaceColon(fileName); List<String[]> patternCombinations = new ArrayList<String[]>(); for (String dateString : DATE_PATTERNS) { dateString = replaceColon(dateString); final Pattern datePattern = convertDateStringToPattern(dateString); Matcher matcher = datePattern.matcher(fileName); if (matcher.matches()) { TimeStampExtractor timeStampExtractor = new TimeStampExtractor(dateString, FILENAME_PATTERNS[0]); try { timeStampExtractor.extractTimeStamps(fileName); patternCombinations.add(new String[]{insertColon(dateString), FILENAME_PATTERNS[0]}); try { timeStampExtractor = new TimeStampExtractor(insertColon(dateString), FILENAME_PATTERNS[1]); timeStampExtractor.extractTimeStamps(fileName); patternCombinations.add(new String[]{dateString, FILENAME_PATTERNS[1]}); } catch (ValidationException e) { //do nothing } } catch (ValidationException e) { //do nothing } } } return patternCombinations; }
@Test(expected = ValidationException.class) public void testExtractTimeStamps_badFilename() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyMMdd", "${startDate}*.dim"); extractor.extractTimeStamps("something20110603.dim"); }
@Test public void testExtractTimeStamps_withDOY() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyDDD", "A${startDate}.L3m_DAY_SST_4"); ProductData.UTC[] dateRange = extractor.extractTimeStamps("A2010159.L3m_DAY_SST_4"); assertEquals(2, dateRange.length); assertEquals(ProductData.UTC.parse("2010-06-08:00:00:00", "yyyy-MM-dd:HH:mm:ss").getAsDate().getTime(), dateRange[0].getAsDate().getTime()); assertEquals(dateRange[0].getAsDate().getTime(), dateRange[1].getAsDate().getTime()); }
@Test public void testExtractTimeStamps_5() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyMMdd_hh_mm_ss", "*${startDate}*.dim"); ProductData.UTC[] dateRange = extractor.extractTimeStamps("something20110601_12_53_10_bas_wac_acr_1200.dim"); assertEquals(2, dateRange.length); assertEquals(ProductData.UTC.parse("2011-06-01-12-53-10", "yyyy-MM-dd-hh-mm-ss").getAsDate().getTime(), dateRange[0].getAsDate().getTime()); assertEquals(dateRange[0].getAsDate().getTime(), dateRange[1].getAsDate().getTime()); }
@Test public void testExtractTimeStamps_2() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyMMdd", "*_${startDate}_*.dim"); ProductData.UTC[] timeStamps = extractor.extractTimeStamps("leading_characters_20111103_est_wac_wew_1200.dim"); assertEquals(2, timeStamps.length); assertEquals(ProductData.UTC.parse("2011-11-03", "yyyy-MM-dd").getAsDate().getTime(), timeStamps[0].getAsDate().getTime()); assertEquals(timeStamps[0].getAsDate().getTime(), timeStamps[1].getAsDate().getTime()); }
@Test public void testExtractTimeStamps_4() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyMM", "${startDate}*.dim"); ProductData.UTC[] dateRange = extractor.extractTimeStamps("201106_bas_wac_acr_1200.dim"); assertEquals(2, dateRange.length); assertEquals(ProductData.UTC.parse("2011-06", "yyyy-MM").getAsDate().getTime(), dateRange[0].getAsDate().getTime()); assertEquals(dateRange[0].getAsDate().getTime(), dateRange[1].getAsDate().getTime()); }
@Test public void testExtractTimeStamps_6() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyMMdd", "*${startDate}*.dim"); ProductData.UTC[] dateRange = extractor.extractTimeStamps( "something__20110601_bas_wac_acr_1200__20110602___something.dim"); assertEquals(2, dateRange.length); assertEquals(ProductData.UTC.parse("2011-06-02", "yyyy-MM-dd").getAsDate().getTime(), dateRange[0].getAsDate().getTime()); assertEquals(dateRange[0].getAsDate().getTime(), dateRange[1].getAsDate().getTime()); }
@Test public void testExtractTimeStamps_1() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyMMdd", "${startDate}*.dim"); final ProductData.UTC[] timeStamps = extractor.extractTimeStamps("20111103_est_wac_wew_1200.dim"); assertEquals(timeStamps.length, 2); assertEquals(ProductData.UTC.parse("2011-11-03", "yyyy-MM-dd").getAsDate().getTime(), timeStamps[0].getAsDate().getTime()); assertEquals(timeStamps[0].getAsDate().getTime(), timeStamps[1].getAsDate().getTime()); }
@Test public void testExtractTimeStamps_7() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyMMdd_hhmmss", "*${startDate}*"); ProductData.UTC[] dateRange = extractor.extractTimeStamps( "MER_RR__2CNACR20070123_101652_000000072055_00008_25613_0000.nc"); assertEquals(2, dateRange.length); assertEquals(ProductData.UTC.parse("2007-01-23:10:16:52", "yyyy-MM-dd:HH:mm:ss").getAsDate().getTime(), dateRange[0].getAsDate().getTime()); assertEquals(dateRange[0].getAsDate().getTime(), dateRange[1].getAsDate().getTime()); }
@Test public void testExtractTimeStamps_8() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyMMdd_hhmmss", "*${endDate}*"); ProductData.UTC[] dateRange = extractor.extractTimeStamps( "MER_RR__2CNACR20070123_101652_000000072055_00008_25613_0000.nc"); assertEquals(2, dateRange.length); assertEquals(ProductData.UTC.parse("2007-01-23:10:16:52", "yyyy-MM-dd:HH:mm:ss").getAsDate().getTime(), dateRange[0].getAsDate().getTime()); assertEquals(dateRange[0].getAsDate().getTime(), dateRange[1].getAsDate().getTime()); }
@Test public void testAccept_UserEndFileStart() throws Exception { final JCheckBox filterCheckBox = new JCheckBox(); filterCheckBox.setSelected(true); TimeRangeFilter filter = new TimeRangeFilter(filterCheckBox); filter.startDate = null; filter.endDate = new GregorianCalendar(2010, 0, 2, 12, 37, 15).getTime(); filter.timeStampExtractor = new TimeStampExtractor("yyyyMMdd:hhmmss", "*${startDate}*"); assertTrue(filter.accept(new OpendapLeaf("sth__20080101:192345.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20111231:192345.nc", createNullDataset()))); }
@Test public void testExtractTimeStamps_3() throws ParseException, ValidationException { final TimeStampExtractor extractor = new TimeStampExtractor("yyyyMMdd", "${startDate}_${endDate}*.dim"); ProductData.UTC[] dateRange = extractor.extractTimeStamps("20110917_20110923_bas_wac_acr_1200.dim"); assertEquals(2, dateRange.length); assertEquals(ProductData.UTC.parse("2011-09-17", "yyyy-MM-dd").getAsDate().getTime(), dateRange[0].getAsDate().getTime()); assertEquals(ProductData.UTC.parse("2011-09-23", "yyyy-MM-dd").getAsDate().getTime(), dateRange[1].getAsDate().getTime()); }
@Test public void testAccept_UserStartFileBoth() throws Exception { final JCheckBox filterCheckBox = new JCheckBox(); filterCheckBox.setSelected(true); TimeRangeFilter filter = new TimeRangeFilter(filterCheckBox); filter.startDate = new GregorianCalendar(2010, 0, 1, 12, 37, 15).getTime(); filter.endDate = null; filter.timeStampExtractor = new TimeStampExtractor("yyyyMMdd:hhmmss", "*${startDate}*${endDate}*"); assertTrue(filter.accept(new OpendapLeaf("sth__20100101:192345___20100102:012345__.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20091231:192345___20100102:012345__.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20091231:192345___20091231:233012__.nc", createNullDataset()))); }
@Test public void testAccept_UserEndFileBoth() throws Exception { TimeRangeFilter filter = new TimeRangeFilter(new JCheckBox()); filter.startDate = null; filter.endDate = new GregorianCalendar(2010, 0, 2, 12, 37, 15).getTime(); filter.timeStampExtractor = new TimeStampExtractor("yyyyMMdd:hhmmss", "*${startDate}*${endDate}*"); assertTrue(filter.accept(new OpendapLeaf("sth__20100101:192345___20100102:012345__.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20091231:192345___20100103:012345__.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20100103:192345___20100103:233012__.nc", createNullDataset()))); }
@Test public void testAccept_UserBothFileStart() throws Exception { TimeRangeFilter filter = new TimeRangeFilter(new JCheckBox()); filter.startDate = new GregorianCalendar(2010, 0, 1, 12, 37, 15).getTime(); filter.endDate = new GregorianCalendar(2010, 0, 2, 12, 37, 15).getTime(); filter.timeStampExtractor = new TimeStampExtractor("yyyyMMdd:hhmmss", "*${startDate}*"); assertTrue(filter.accept(new OpendapLeaf("sth__20100101:192345.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20091231:192345.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20111231:192345.nc", createNullDataset()))); assertTrue(filter.accept(new OpendapLeaf("does_not_match_naming_pattern", createNullDataset()))); }
@Test public void testAccept_UserStartFileStart() throws Exception { final JCheckBox filterCheckBox = new JCheckBox(); filterCheckBox.setSelected(true); TimeRangeFilter filter = new TimeRangeFilter(filterCheckBox); filter.startDate = new GregorianCalendar(2010, 0, 1, 12, 37, 15).getTime(); filter.endDate = null; filter.timeStampExtractor = new TimeStampExtractor("yyyyMMdd:hhmmss", "*${startDate}*"); assertTrue(filter.accept(new OpendapLeaf("sth__20100101:192345.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20091231:192345.nc", createNullDataset()))); assertTrue(filter.accept(new OpendapLeaf("does_not_match_naming_pattern", createNullDataset()))); }
@Test public void testAccept_UserBothFileBoth() throws Exception { TimeRangeFilter filter = new TimeRangeFilter(new JCheckBox()); filter.startDate = new GregorianCalendar(2010, 0, 1, 12, 37, 15).getTime(); filter.endDate = new GregorianCalendar(2010, 0, 2, 12, 37, 15).getTime(); filter.timeStampExtractor = new TimeStampExtractor("yyyyMMdd:hhmmss", "*${startDate}*${endDate}*"); assertTrue(filter.accept(new OpendapLeaf("sth__20100101:192345___20100102:012345__.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20091231:192345___20100102:012345__.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20100101:192345___20100103:012345__.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20091231:192345___20100103:012345__.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20091231:192345___20091231:233012__.nc", createNullDataset()))); assertFalse(filter.accept(new OpendapLeaf("sth__20100103:004523___20100103:012345__.nc", createNullDataset()))); assertTrue(filter.accept(new OpendapLeaf("sth__20100101:192345_does_not_match_naming_pattern.nc", createNullDataset()))); assertTrue(filter.accept(new OpendapLeaf("sth__20100104:192345_does_not_match_naming_pattern.nc", createNullDataset()))); assertTrue(filter.accept(new OpendapLeaf("does_not_match_naming_pattern", createNullDataset()))); }