@SuppressWarnings("deprecation") @Override void modify(DateOption holder, Object value) { Calendar calendar = (Calendar) value; holder.modify(new Date( calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DATE))); } @Override
@Override public void write(Object value, RecordConsumer consumer) { DateOption option = (DateOption) value; int days = TemporalUtil.getDaysSinceEpoch(option.get()); if (days < 0) { throw new IllegalStateException(MessageFormat.format( Messages.getString("BasicValueWriter.errorBeforeEpoch"), //$NON-NLS-1$ option, new Date(TemporalUtil.DATE_EPOCH_OFFSET))); } consumer.addInteger(days); } }
private Date date(int elapsed) { Date date = new Date(); date.setElapsedDays(elapsed); return date; } }
/** * parse. */ @Test public void parse() { DateOptionFieldAdapter adapter = DateOptionFieldAdapter.builder().build(); checkParse(adapter, "2016-12-31", new DateOption(new Date(2016, 12, 31))); checkParse(adapter, "2017-01-01", new DateOption(new Date(2017, 1, 1))); checkParse(adapter, "2017-01-02", new DateOption(new Date(2017, 1, 2))); }
/** * emit. */ @Test public void emit() { DateOptionFieldAdapter adapter = DateOptionFieldAdapter.builder().build(); checkEmit(adapter, new DateOption(new Date(2016, 12, 31)), "2016-12-31"); checkEmit(adapter, new DateOption(new Date(2017, 1, 1)), "2017-01-01"); checkEmit(adapter, new DateOption(new Date(2017, 1, 2)), "2017-01-02"); }
/** * parse w/ custom format - direct. */ @Test public void parse_format_direct() { DateOptionFieldAdapter adapter = DateOptionFieldAdapter.builder() .withDateFormat("yyyyMMdd") .build(); equivalent(adapter, "20161231", new DateOption(new Date(2016, 12, 31))); equivalent(adapter, "20170101", new DateOption(new Date(2017, 1, 1))); equivalent(adapter, "20170102", new DateOption(new Date(2017, 1, 2))); }
/** * parse w/ custom format - default. */ @Test public void parse_format_default() { DateOptionFieldAdapter adapter = DateOptionFieldAdapter.builder() .withDateFormat("yyyy'x'MM'x'dd") .build(); equivalent(adapter, "2016x12x31", new DateOption(new Date(2016, 12, 31))); equivalent(adapter, "2017x01x01", new DateOption(new Date(2017, 1, 1))); equivalent(adapter, "2017x01x02", new DateOption(new Date(2017, 1, 2))); }
/** * parse w/ custom format - default. */ @Test public void parse_format_custom() { DateOptionFieldAdapter adapter = DateOptionFieldAdapter.builder() .withDateFormat("yyyy -- MM -- dd") .build(); equivalent(adapter, "2016 -- 12 -- 31", new DateOption(new Date(2016, 12, 31))); equivalent(adapter, "2017 -- 01 -- 01", new DateOption(new Date(2017, 1, 1))); equivalent(adapter, "2017 -- 01 -- 02", new DateOption(new Date(2017, 1, 2))); } }
private Date date(int y, int m, int d) { int elapsed = DateUtil.getDayFromDate(y, m, d); Date date = new Date(); date.setElapsedDays(elapsed); return date; }
private Date date(int y, int m, int d) { int elapsed = DateUtil.getDayFromDate(y, m, d); Date date = new Date(); date.setElapsedDays(elapsed); return date; }
/** * date placeholder. * @throws Exception if failed */ @Test public void placeholder_date() throws Exception { Mock mock = new Mock(spec(DATE, "yyyy/MM/dd")); mock.setMock(new DateOption(new Date(2012, 2, 3))); assertThat(mock.apply(), is("2012/02/03")); }
/** * w/ {@code date_format}. * @throws Exception if failed */ @Test public void date_format_field() throws Exception { ModelLoader loaded = generateJavaFromLines(new String[] { "@directio.text.tabular", "simple = {", " @directio.text.field(date_format = 'yyyy_MM_dd')", " a : DATE;", " b : DATE;", "};", }); byte[] contents = restore(loaded, loaded.newModel("Simple") .setOption("a", new DateOption(new Date(2017, 1, 6))) .setOption("b", new DateOption(new Date(2017, 1, 6)))); assertThat(text(contents), is("2017_01_06\t2017-01-06\n")); }
/** * w/ {@code date_format}. * @throws Exception if failed */ @Test public void date_format() throws Exception { ModelLoader loaded = generateJavaFromLines(new String[] { "@directio.text.tabular(", " date_format = 'yyyy_MM_dd',", ")", "simple = {", " a : DATE;", "};", }); byte[] contents = restore(loaded, loaded.newModel("Simple") .setOption("a", new DateOption(new Date(2017, 1, 6)))); assertThat(text(contents), is("2017_01_06\n")); }
/** * Simple stress test for {@link Date} type. * @throws Exception if failed */ @Test public void stress_date() throws Exception { int count = 5000000; try (CsvEmitter emitter = new CsvEmitter(new VoidOutputStream(), "testing", createConfiguration())) { DateOption value = new DateOption(new Date(1999, 12, 31)); for (int i = 0; i < count; i++) { emitter.emit(value); emitter.endRecord(); } } }
/** * serialization testing. * @throws Exception if failed */ @Test public void serialize() throws Exception { Mock mock = new Mock(plain("left"), spec(NATURAL), plain("right"), spec(DATE, "yyyy/MM/dd")); mock.setMock("", "0", "", new DateOption(new Date(2012, 1, 2))); byte[] s0 = ser(mock); Mock r0 = new Mock(plain("left"), spec(NATURAL), plain("right"), spec(DATE, "yyyy/MM/dd")); des(r0, s0); assertThat(r0.apply(), is("left0right2012/01/02")); mock.setMock("LLLLLLLLLLLLLL", "0", "RRRRRRRRRRRRRR"); byte[] s2 = ser(mock); Mock r2 = new Mock(plain("left"), spec(NATURAL), plain("right"), spec(DATE, "yyyy/MM/dd")); des(r2, s2); assertThat(s0, is(s2)); }