@Override protected Parser applySettings(Parser p) throws Exception { return p.builder().build(); }
@Override protected Parser applySettings(Parser p) throws Exception { return p.builder().build(); }
@Override protected Parser applySettings(Parser p) throws Exception { return p.builder().build(); }
@Override protected Parser applySettings(Parser p) throws Exception { return p.builder().pojoSwaps(swapClass).build(); } }
@Override protected Parser applySettings(Parser p) throws Exception { return p.builder().pojoSwaps(swapClass).build(); } }
@Override protected Parser applySettings(Parser p) throws Exception { return p.builder().pojoSwaps(ByteArrayBase64Swap.class).build(); }
protected void pojoSwaps(Class<?>...c) { s = s.builder().pojoSwaps(c).build(); if (p != null) p = p.builder().pojoSwaps(c).build(); }
protected void beanDictionary(Object...c) { s = s.builder().beanDictionary(c).build(); if (p != null) p = p.builder().beanDictionary(c).build(); }
protected void beanFilters(Class<?>...c) { s = s.builder().beanFilters(c).build(); if (p != null) p = p.builder().beanFilters(c).build(); }
@Test public void testXMLGregorianCalendar() throws Exception { if (isValidationOnly()) return; GregorianCalendar gc = new GregorianCalendar(); XMLGregorianCalendar c = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc); Serializer s = getSerializer().builder().pojoSwaps(XMLGregorianCalendarSwap.class).build(); Parser p = getParser().builder().pojoSwaps(XMLGregorianCalendarSwap.class).build(); Object r = s.serialize(c); XMLGregorianCalendar c2 = p.parse(r, XMLGregorianCalendar.class); assertEquals(c, c2); }
public RoundTripTest(String label, SerializerBuilder s, ParserBuilder p, int flags) throws Exception { this.label = label; Map<Class<Object>, Class<? extends Object>> m = getImplClasses(); if (m != null) { for (Entry<Class<Object>, Class<? extends Object>> e : m.entrySet()) { s.implClass(e.getKey(), e.getValue()); if (p != null) p.implClass(e.getKey(), e.getValue()); } } this.s = s.beanFilters(getBeanFilters()).pojoSwaps(getPojoSwaps()).beanDictionary((Object[])getDictionary()).add(getProperties()).build(); this.p = p == null ? null : p.beanFilters(getBeanFilters()).pojoSwaps(getPojoSwaps()).beanDictionary((Object[])getDictionary()).add(getProperties()).build(); this.validateXmlWhitespace = (flags & CHECK_XML_WHITESPACE) > 0; this.validateXml = (flags & VALIDATE_XML) > 0; this.returnOriginalObject = (flags & RETURN_ORIGINAL_OBJECT) > 0; }
@Test public void testExcludePropertiesUsingBeanFilter() throws Exception { // Skip validation-only tests if (isValidationOnly()) return; Serializer s = getSerializer().builder().beanFilters(E2Filter.class).build(); Parser p = getParser().builder().beanFilters(E2Filter.class).build(); E2 e = new E2().init(); Object r = s.serialize(e); e = p.parse(r, E2.class); assertObjectEquals("{f1:'f1',f3:'f3'}", e); }
@Test public void testSubTypePropertyWithRealPropertyUsingBeanFilter() throws Exception { // Skip validation-only tests if (isValidationOnly()) return; Serializer s = getSerializer().builder().beanFilters(CAFilter.class).build(); Parser p = getParser().builder().beanFilters(CAFilter.class).build(); CA1 c1 = CA1.create(); Object r = s.serialize(c1); CA c = p.parse(r, CA.class); assertTrue(c instanceof CA1); assertObjectEquals("{f0a:'f0a',f0b:'f0b',f1:'f1'}", c); }
@Test public void testPropertiesUsingBeanFilter() throws Exception { JsonSerializer js = JsonSerializer.create().ssq().beanFilters(D2Filter.class).build(); // Skip validation-only tests if (isValidationOnly()) return; Serializer s = getSerializer().builder().beanFilters(D2Filter.class).build(); Parser p = getParser().builder().beanFilters(D2Filter.class).build(); D2 d = new D2().init(); Object r = s.serialize(d); d = p.parse(r, D2.class); assertNull(d.f1); assertObjectEquals("{f3:'f3',f2:'f2'}", d, js); }
@Test public void testSubTypesUsingBeanFilter() throws Exception { JsonSerializer js = JsonSerializer.create().ssq().pojoSwaps(XMLGregorianCalendarSwap.class).build(); // Skip validation-only tests if (isValidationOnly()) return; Serializer s = getSerializer().builder().beanFilters(CFilter.class).pojoSwaps(XMLGregorianCalendarSwap.class).build(); Parser p = getParser().builder().beanFilters(CFilter.class).pojoSwaps(XMLGregorianCalendarSwap.class).build(); C1 c1 = C1.create(); Object r = s.serialize(c1); C c = p.parse(r, C.class); assertTrue(c instanceof C1); assertObjectEquals("{f0:'f0',f1:'f1'}", c, js); C2 c2 = C2.create(); r = s.serialize(c2); c = p.parse(r, C.class); assertTrue(c instanceof C2); assertObjectEquals("{f0:'f0',f2:1}", c, js); C3 c3 = C3.create(); r = s.serialize(c3); c = p.parse(r, C.class); assertTrue(c instanceof C3); assertObjectEquals("{f0:'f0',f3:'2001-01-01T12:34:56.789Z'}", c, js); }
@Test public void testSubTypesUsingAnnotation() throws Exception { JsonSerializer js = JsonSerializer.create().ssq().pojoSwaps(XMLGregorianCalendarSwap.class).addBeanTypes().addRootType().build(); // Skip validation-only tests if (isValidationOnly()) return; Serializer s = getSerializer().builder().pojoSwaps(XMLGregorianCalendarSwap.class).build(); Parser p = getParser().builder().pojoSwaps(XMLGregorianCalendarSwap.class).build(); B1 b1 = B1.create(); Object r = s.serialize(b1); B b = p.parse(r, B.class); assertTrue(b instanceof B1); assertObjectEquals("{_type:'B1',f0:'f0',f1:'f1'}", b, js); B2 b2 = B2.create(); r = s.serialize(b2); b = p.parse(r, B.class); assertTrue(b instanceof B2); assertObjectEquals("{_type:'B2',f0:'f0',f2:1}", b, js); B3 b3 = B3.create(); r = s.serialize(b3); b = p.parse(r, B.class); assertTrue(b instanceof B3); assertObjectEquals("{_type:'B3',f0:'f0',f3:'2001-01-01T12:34:56.789Z'}", b, js); }
Parser p2 = p.builder().trimStrings().build();