@Test(dataProvider = "testGranularityToMillisDataProvider") public void testGranularityToMillis(String granularity, Long millisExpected) { Long millisActual = null; DateTimeGranularitySpec granularitySpec = null; try { granularitySpec = new DateTimeGranularitySpec(granularity); millisActual = granularitySpec.granularityToMillis(); } catch (Exception e) { // invalid arguments } Assert.assertEquals(millisActual, millisExpected); }
/** * Constructs a dateTimeGranularitySpec granularity given the components of a granularity * @param columnSize * @param columnUnit * @return */ public DateTimeGranularitySpec(int columnSize, TimeUnit columnUnit) { _granularity = Joiner.on(COLON_SEPARATOR).join(columnSize, columnUnit); _size = columnSize; _timeUnit = columnUnit; isValidGranularity(_granularity); }
_outputDateTimeFormatter = outputFormat.getDateTimeFormatter(); _outputGranularity = outputGranularity; _outputGranularityMillis = outputGranularity.granularityToMillis(); final int sz = _outputGranularity.getSize(); switch (_outputGranularity.getTimeUnit()) { case MILLISECONDS: _dateTimeTruncate = (dateTime) -> _outputDateTimeFormatter
@Test(dataProvider = "testConstructGranularityDataProvider") public void testConstructGranularity(int size, TimeUnit unit, DateTimeGranularitySpec granularityExpected) { DateTimeGranularitySpec granularityActual = null; try { granularityActual = new DateTimeGranularitySpec(size, unit); } catch (Exception e) { // invalid arguments } Assert.assertEquals(granularityActual, granularityExpected); }
@DataProvider(name = "testConstructGranularityDataProvider") public Object[][] provideTestConstructGranularityData() { List<Object[]> entries = new ArrayList<>(); entries.add(new Object[]{1, TimeUnit.HOURS, new DateTimeGranularitySpec("1:HOURS")}); entries.add(new Object[]{5, TimeUnit.MINUTES, new DateTimeGranularitySpec("5:MINUTES")}); entries.add(new Object[]{0, TimeUnit.HOURS, null}); entries.add(new Object[]{-1, TimeUnit.HOURS, null}); entries.add(new Object[]{1, null, null}); return entries.toArray(new Object[entries.size()][]); }
public static BaseDateTimeTransformer getDateTimeTransformer(String inputFormatStr, String outputFormatStr, String outputGranularityStr) { DateTimeFormatSpec inputFormat = new DateTimeFormatSpec(inputFormatStr); DateTimeFormatSpec outputFormat = new DateTimeFormatSpec(outputFormatStr); DateTimeGranularitySpec outputGranularity = new DateTimeGranularitySpec(outputGranularityStr); TimeFormat inputTimeFormat = inputFormat.getTimeFormat(); TimeFormat outputTimeFormat = outputFormat.getTimeFormat(); if (inputTimeFormat == TimeFormat.EPOCH) { if (outputTimeFormat == TimeFormat.EPOCH) { return new EpochToEpochTransformer(inputFormat, outputFormat, outputGranularity); } else { return new EpochToSDFTransformer(inputFormat, outputFormat, outputGranularity); } } else { if (outputTimeFormat == TimeFormat.EPOCH) { return new SDFToEpochTransformer(inputFormat, outputFormat, outputGranularity); } else { return new SDFToSDFTransformer(inputFormat, outputFormat, outputGranularity); } } } }
/** * Constructs a dateTimeGranularitySpec granularity from a string * @param granularity * @return */ public DateTimeGranularitySpec(String granularity) { _granularity = granularity; isValidGranularity(granularity); String[] granularityTokens = _granularity.split(COLON_SEPARATOR); _size = Integer.valueOf(granularityTokens[GRANULARITY_SIZE_POSITION]); _timeUnit = TimeUnit.valueOf(granularityTokens[GRANULARITY_UNIT_POSITION]); }
Preconditions.checkNotNull(dataType); Preconditions.checkArgument(DateTimeFormatSpec.isValidFormat(format)); Preconditions.checkArgument(DateTimeGranularitySpec.isValidGranularity(granularity));