@CheckForNull public Date paramAsDateTime(String key) { String stringDate = param(key); if (stringDate == null) { return null; } Date date = parseDateTimeQuietly(stringDate); if (date != null) { return date; } date = parseDateQuietly(stringDate); checkArgument(date != null, "'%s' cannot be parsed as either a date or date+time", stringDate); return date; }
/** * Return the datetime if @param stringDate is a datetime, date + 1 day if stringDate is a date. * So '2016-09-01' would return a date equivalent to '2016-09-02T00:00:00+0000' in GMT (Warning: relies on default timezone!) * * @return the datetime, {@code null} if stringDate is null * @throws IllegalArgumentException if stringDate is not a correctly formed date or datetime * @see #parseDateOrDateTime(String) * @since 6.1 */ @CheckForNull public static Date parseEndingDateOrDateTime(@Nullable String stringDate) { if (stringDate == null) { return null; } Date date = parseDateTimeQuietly(stringDate); if (date != null) { return date; } date = parseDateQuietly(stringDate); checkArgument(date != null, "Date '%s' cannot be parsed as either a date or date+time", stringDate); return addDays(date, 1); }
@Test public void parseDateQuietly() { assertThat(DateUtils.parseDateQuietly("2010/05/18")).isNull(); Date date = DateUtils.parseDateQuietly("2010-05-18"); assertThat(date.getDate()).isEqualTo(18); }
@Before public void setup() { analysisDate = DateUtils.parseDateQuietly("2015-06-01").getTime(); analysisMetadataHolder.setUuid(ANALYSIS_UUID); analysisMetadataHolder.setAnalysisDate(analysisDate); now = DateUtils.parseDateQuietly("2015-06-02").getTime(); when(system2.now()).thenReturn(now); underTest = new PersistAnalysisStep(system2, dbClient, treeRootHolder, analysisMetadataHolder, periodsHolder); // initialize PeriodHolder to empty by default periodsHolder.setPeriod(null); }
@Before public void setup() { analysisDate = DateUtils.parseDateQuietly("2015-06-01").getTime(); analysisMetadataHolder.setUuid(ANALYSIS_UUID); analysisMetadataHolder.setAnalysisDate(analysisDate); dbIdsRepository = new DbIdsRepositoryImpl(); now = DateUtils.parseDateQuietly("2015-06-02").getTime(); when(system2.now()).thenReturn(now); underTest = new PersistAnalysisStep(system2, dbClient, treeRootHolder, analysisMetadataHolder, periodsHolder); // initialize PeriodHolder to empty by default periodsHolder.setPeriod(null); }
@Test public void max() { collector.add(DateUtils.parseDate("2013-06-01")); collector.add(null); collector.add(DateUtils.parseDate("2014-01-01")); collector.add(DateUtils.parseDate("2013-08-01")); assertThat(collector.getMax()).isEqualTo(DateUtils.parseDateQuietly("2014-01-01").getTime()); } }
@Test public void persist_snapshots_with_leak_period() { OrganizationDto organizationDto = dbTester.organizations().insert(); ComponentDto projectDto = ComponentTesting.newPrivateProjectDto(organizationDto, "ABCD").setDbKey(PROJECT_KEY).setName("Project"); dbClient.componentDao().insert(dbTester.getSession(), projectDto); SnapshotDto snapshotDto = SnapshotTesting.newAnalysis(projectDto).setCreatedAt(DateUtils.parseDateQuietly("2015-01-01").getTime()); dbClient.snapshotDao().insert(dbTester.getSession(), snapshotDto); dbTester.getSession().commit(); periodsHolder.setPeriod(new Period(LEAK_PERIOD_MODE_DATE, "2015-01-01", analysisDate, "u1")); Component project = ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).build(); treeRootHolder.setRoot(project); dbIdsRepository.setComponentId(project, projectDto.getId()); underTest.execute(new TestComputationStepContext()); SnapshotDto projectSnapshot = getUnprocessedSnapshot(projectDto.uuid()); assertThat(projectSnapshot.getPeriodMode()).isEqualTo(LEAK_PERIOD_MODE_DATE); assertThat(projectSnapshot.getPeriodDate()).isEqualTo(analysisDate); assertThat(projectSnapshot.getPeriodModeParameter()).isNotNull(); }
@Nullable public Date getExpirationDate() { return DateUtils.parseDateQuietly(expirationDate); }
@CheckForNull public Date paramAsDateTime(String key) { String stringDate = param(key); if (stringDate == null) { return null; } Date date = parseDateTimeQuietly(stringDate); if (date != null) { return date; } date = parseDateQuietly(stringDate); checkArgument(date != null, "'%s' cannot be parsed as either a date or date+time", stringDate); return date; }
/** * Return the datetime if @param stringDate is a datetime, date + 1 day if stringDate is a date. * So '2016-09-01' would return a date equivalent to '2016-09-02T00:00:00+0000' in GMT (Warning: relies on default timezone!) * * @return the datetime, {@code null} if stringDate is null * @throws IllegalArgumentException if stringDate is not a correctly formed date or datetime * @see #parseDateOrDateTime(String) * @since 6.1 */ @CheckForNull public static Date parseEndingDateOrDateTime(@Nullable String stringDate) { if (stringDate == null) { return null; } Date date = parseDateTimeQuietly(stringDate); if (date != null) { return date; } date = parseDateQuietly(stringDate); checkArgument(date != null, "Date '%s' cannot be parsed as either a date or date+time", stringDate); return addDays(date, 1); }
@CheckForNull private Period resolve(String property) { Integer days = tryToResolveByDays(property); if (days != null) { return findByDays(days); } Date date = DateUtils.parseDateQuietly(property); if (date != null) { return findByDate(date); } if (StringUtils.equals(LEAK_PERIOD_MODE_PREVIOUS_VERSION, property)) { return findByPreviousVersion(); } return findByVersion(property); }