/** * Instantiates a new clean-slate {@link UrlEncodingSerializerBuilder} object. * * <p> * This is equivalent to simply calling <code><jk>new</jk> UrlEncodingSerializerBuilder()</code>. * * <p> * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies * the settings of the object called on. * * @return A new {@link UrlEncodingSerializerBuilder} object. */ public static UrlEncodingSerializerBuilder create() { return new UrlEncodingSerializerBuilder(); }
@Override /* ContextBuilder */ public UrlEncodingSerializer build() { return build(UrlEncodingSerializer.class); }
/** * Configuration property: Serialize bean property collections/arrays as separate key/value pairs. * * <p> * Shortcut for calling <code>expandedParams(<jk>true</jk>)</code>. * * <h5 class='section'>See Also:</h5> * <ul> * <li class='jf'>{@link UrlEncodingSerializer#URLENC_expandedParams} * </ul> * * @return This object (for method chaining). */ public UrlEncodingSerializerBuilder expandedParams() { return set(URLENC_expandedParams, true); }
@Test public void e1_testUrlEncodingSerialize() throws Exception { Serializer s = UrlEncodingSerializer.create().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build(); testSerialize(s, results.urlEncoding); }
s.build().serialize(r1); fail("Exception expected!"); } catch (Exception e) { s.detectRecursions(); try { s.build().serialize(r1); fail("Exception expected!"); } catch (Exception e) { s.ignoreRecursions(); assertEquals("name=foo&r2=(name=bar,r3=(name=baz))", s.build().serialize(r1));
@Test public void testTrimEmptyArrays() throws Exception { UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create(); D t1 = D.create(), t2; String r; s.trimEmptyCollections(false); r = s.build().serialize(t1); assertEquals("f1=@()&f2=@(null,(s2=s2))", r); t2 = p.parse(r, D.class); assertEqualObjects(t1, t2); s.trimEmptyCollections(true); r = s.build().serialize(t1); assertEquals("f2=@(null,(s2=s2))", r); t2 = p.parse(r, D.class); assertNull(t2.f1); s.trimEmptyCollections(); r = s.build().serialize(t1); assertEquals("f2=@(null,(s2=s2))", r); t2 = p.parse(r, D.class); assertNull(t2.f1); }
assertEquals(e, r); s = UrlEncodingSerializer.create().expandedParams().build(); r = s.serialize(t); e = ""
@Test public void testUrlEncoding() throws Exception { UrlEncodingSerializer s = UrlEncodingSerializer.create().pojoSwaps(ReaderSwap.PlainText.class).build(); Reader r; Map<String,Object> m; r = new StringReader("foo=bar&baz=quz"); m = new HashMap<>(); m.put("X", r); assertEquals("X='foo=bar%26baz=quz'", s.serialize(m)); } }
b.list = tl; in = UrlEncodingSerializer.create().addBeanTypes(true).addRootType().build().serialize(b); b = (A1)p.parse(in, Object.class); assertEquals("value1", b.list.get(1).value);
assertEquals(e, r); s = UrlEncodingSerializer.create().pojoSwaps(getPojoSwaps()).trimNullProperties(false).build(); e = "AQID=a&BAUG=null&null=b"; r = s.serialize(t);
UrlEncodingSerializer.create().trimNullProperties(false).addBeanTypes().addRootType(), UrlEncodingParser.create(), UrlEncodingSerializer.create().ws().trimNullProperties(false).addBeanTypes().addRootType(), UrlEncodingParser.create(), UrlEncodingSerializer.create().expandedParams().addBeanTypes().addRootType(), UrlEncodingParser.create().expandedParams(true),
new UrlEncodingSerializerBuilder().addBeanTypes(true).addRootType(), new UrlEncodingParserBuilder().useInterfaceProxies(false),
@Test public void testTrimNullsFromBeans() throws Exception { UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create(); A t1 = A.create(), t2; s.trimNullProperties(false); String r = s.build().serialize(t1); assertEquals("s1=null&s2=s2", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); s.trimNullProperties(true); r = s.build().serialize(t1); assertEquals("s2=s2", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); }
@Test public void testTrimEmptyMaps() throws Exception { UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create(); B t1 = B.create(), t2; String r; s.trimEmptyMaps(false); r = s.build().serialize(t1); assertEquals("f1=()&f2=(f2a=null,f2b=(s2=s2))", r); t2 = p.parse(r, B.class); assertEqualObjects(t1, t2); s.trimEmptyMaps(true); r = s.build().serialize(t1); assertEquals("f2=(f2a=null,f2b=(s2=s2))", r); t2 = p.parse(r, B.class); assertNull(t2.f1); s.trimEmptyMaps(); r = s.build().serialize(t1); assertEquals("f2=(f2a=null,f2b=(s2=s2))", r); t2 = p.parse(r, B.class); assertNull(t2.f1); }
@Test public void testPlainTextParams() throws Exception { WriterSerializer s = UrlEncodingSerializer.DEFAULT.builder().paramFormatPlain().build(); assertEquals("_value=foo", s.serialize("foo")); assertEquals("_value='foo'", s.serialize("'foo'")); assertEquals("_value=(foo)", s.serialize("(foo)")); assertEquals("_value=@(foo)", s.serialize("@(foo)")); Map<String,Object> m = new AMap<String,Object>() .append("foo", "foo") .append("'foo'", "'foo'") .append("(foo)", "(foo)") .append("@(foo)", "@(foo)"); assertEquals("foo=foo&'foo'='foo'&(foo)=(foo)&@(foo)=@(foo)", s.serialize(m)); List<String> l = new AList<String>().appendAll("foo", "'foo'", "(foo)", "@(foo)"); assertEquals("0=foo&1='foo'&2=(foo)&3=@(foo)", s.serialize(l)); A a = new A(); assertEquals("'foo'='foo'&(foo)=(foo)&@(foo)=@(foo)&foo=foo", s.serialize(a)); }
@Test public void e2_testUrlEncodingParse() throws Exception { Serializer s = UrlEncodingSerializer.create().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build(); testParse(s, UrlEncodingParser.DEFAULT); }
@Test public void testTrimEmptyLists() throws Exception { UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create(); C t1 = C.create(), t2; String r; s.trimEmptyCollections(false); r = s.build().serialize(t1); assertEquals("f1=@()&f2=@(null,(s2=s2))", r); t2 = p.parse(r, C.class); assertEqualObjects(t1, t2); s.trimEmptyCollections(true); r = s.build().serialize(t1); assertEquals("f2=@(null,(s2=s2))", r); t2 = p.parse(r, C.class); assertNull(t2.f1); s.trimEmptyCollections(); r = s.build().serialize(t1); assertEquals("f2=@(null,(s2=s2))", r); t2 = p.parse(r, C.class); assertNull(t2.f1); }
assertEquals(e, r); s = UrlEncodingSerializer.create().expandedParams().build(); r = s.serialize(t); e = ""
/** * Instantiates a new clean-slate {@link UrlEncodingSerializerBuilder} object. * * <p> * This is equivalent to simply calling <code><jk>new</jk> UrlEncodingSerializerBuilder()</code>. * * <p> * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies * the settings of the object called on. * * @return A new {@link UrlEncodingSerializerBuilder} object. */ public static UrlEncodingSerializerBuilder create() { return new UrlEncodingSerializerBuilder(); }