001// *************************************************************************************************************************** 002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * 003// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * 004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * 005// * with the License. You may obtain a copy of the License at * 006// * * 007// * http://www.apache.org/licenses/LICENSE-2.0 * 008// * * 009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * 010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * 011// * specific language governing permissions and limitations under the License. * 012// *************************************************************************************************************************** 013package org.apache.juneau.serializer; 014 015import static org.apache.juneau.internal.CollectionUtils.*; 016import static org.apache.juneau.serializer.OutputStreamSerializer.*; 017import static org.apache.juneau.serializer.WriterSerializer.*; 018 019import java.lang.annotation.*; 020import java.lang.reflect.*; 021import java.nio.charset.*; 022import java.util.*; 023 024import org.apache.juneau.*; 025import org.apache.juneau.http.*; 026import org.apache.juneau.internal.*; 027import org.apache.juneau.reflect.*; 028import org.apache.juneau.svl.*; 029 030/** 031 * Builder class for creating instances of {@link SerializerGroup}. 032 */ 033public class SerializerGroupBuilder extends BeanTraverseBuilder { 034 035 private final List<Object> serializers; 036 037 /** 038 * Create an empty serializer group builder. 039 */ 040 public SerializerGroupBuilder() { 041 this.serializers = new ArrayList<>(); 042 } 043 044 /** 045 * Clone an existing serializer group builder. 046 * 047 * @param copyFrom The serializer group that we're copying settings and serializers from. 048 */ 049 public SerializerGroupBuilder(SerializerGroup copyFrom) { 050 super(copyFrom.getPropertyStore()); 051 this.serializers = new ArrayList<>(); 052 addReverse(serializers, copyFrom.getSerializers()); 053 } 054 055 /** 056 * Registers the specified serializers with this group. 057 * 058 * @param s The serializers to append to this group. 059 * @return This object (for method chaining). 060 */ 061 public SerializerGroupBuilder append(Class<?>...s) { 062 addReverse(serializers, s); 063 return this; 064 } 065 066 /** 067 * Registers the specified serializers with this group. 068 * 069 * <p> 070 * When passing in pre-instantiated serializers to this group, applying properties and transforms to the group 071 * do not affect them. 072 * 073 * @param s The serializers to append to this group. 074 * @return This object (for method chaining). 075 */ 076 public SerializerGroupBuilder append(Serializer...s) { 077 addReverse(serializers, s); 078 return this; 079 } 080 081 /** 082 * Registers the specified serializers with this group. 083 * 084 * <p> 085 * Objects can either be instances of serializers or serializer classes. 086 * 087 * @param s The serializers to append to this group. 088 * @return This object (for method chaining). 089 */ 090 public SerializerGroupBuilder append(List<Object> s) { 091 addReverse(serializers, s); 092 return this; 093 } 094 095 /** 096 * Registers the specified serializers with this group. 097 * 098 * <p> 099 * Objects can either be instances of serializers or serializer classes. 100 * 101 * @param s The serializers to append to this group. 102 * @return This object (for method chaining). 103 */ 104 public SerializerGroupBuilder append(Object...s) { 105 addReverse(serializers, s); 106 return this; 107 } 108 109 /** 110 * Creates a new {@link SerializerGroup} object using a snapshot of the settings defined in this builder. 111 * 112 * <p> 113 * This method can be called multiple times to produce multiple serializer groups. 114 * 115 * @return A new {@link SerializerGroup} object. 116 */ 117 @Override /* ContextBuilder */ 118 @SuppressWarnings("unchecked") 119 public SerializerGroup build() { 120 List<Serializer> l = new ArrayList<>(); 121 for (Object s : serializers) { 122 Class<? extends Serializer> c = null; 123 PropertyStore ps = getPropertyStore(); 124 if (s instanceof Class) { 125 c = (Class<? extends Serializer>)s; 126 l.add(ContextCache.INSTANCE.create(c, ps)); 127 } else { 128 l.add((Serializer)s); 129 } 130 } 131 return new SerializerGroup(getPropertyStore(), ArrayUtils.toReverseArray(Serializer.class, l)); 132 } 133 134 //----------------------------------------------------------------------------------------------------------------- 135 // Properties 136 //----------------------------------------------------------------------------------------------------------------- 137 138 /** 139 * Configuration property: Add <js>"_type"</js> properties when needed. 140 * 141 * <p> 142 * If <jk>true</jk>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred 143 * through reflection. 144 * 145 * <ul class='seealso'> 146 * <li class='jf'>{@link Serializer#SERIALIZER_addBeanTypes} 147 * </ul> 148 * 149 * @param value 150 * The new value for this property. 151 * <br>The default is <jk>false</jk>. 152 * @return This object (for method chaining). 153 */ 154 public SerializerGroupBuilder addBeanTypes(boolean value) { 155 return set(SERIALIZER_addBeanTypes, value); 156 } 157 158 /** 159 * Configuration property: Add <js>"_type"</js> properties when needed. 160 * 161 * <p> 162 * Shortcut for calling <code>addBeanTypes(<jk>true</jk>)</code>. 163 * 164 * <ul class='seealso'> 165 * <li class='jf'>{@link Serializer#SERIALIZER_addBeanTypes} 166 * </ul> 167 * 168 * @return This object (for method chaining). 169 */ 170 public SerializerGroupBuilder addBeanTypes() { 171 return set(SERIALIZER_addBeanTypes, true); 172 } 173 174 /** 175 * Configuration property: Add type attribute to root nodes. 176 * 177 * <p> 178 * When disabled, it is assumed that the parser knows the exact Java POJO type being parsed, and therefore top-level 179 * type information that might normally be included to determine the data type will not be serialized. 180 * 181 * <ul class='seealso'> 182 * <li class='jf'>{@link Serializer#SERIALIZER_addRootType} 183 * </ul> 184 * 185 * @param value 186 * The new value for this property. 187 * <br>The default is <jk>false</jk>. 188 * @return This object (for method chaining). 189 */ 190 public SerializerGroupBuilder addRootType(boolean value) { 191 return set(SERIALIZER_addRootType, value); 192 } 193 194 /** 195 * Configuration property: Add type attribute to root nodes. 196 * 197 * <p> 198 * Shortcut for calling <code>addRootType(<jk>true</jk>)</code>. 199 * 200 * <ul class='seealso'> 201 * <li class='jf'>{@link Serializer#SERIALIZER_addRootType} 202 * </ul> 203 * 204 * @return This object (for method chaining). 205 */ 206 public SerializerGroupBuilder addRootType() { 207 return set(SERIALIZER_addRootType, true); 208 } 209 210 /** 211 * Configuration property: Serializer listener. 212 * 213 * <p> 214 * Class used to listen for errors and warnings that occur during serialization. 215 * 216 * <ul class='seealso'> 217 * <li class='jf'>{@link Serializer#SERIALIZER_listener} 218 * </ul> 219 * 220 * @param value 221 * The new value for this property. 222 * @return This object (for method chaining). 223 */ 224 public SerializerGroupBuilder listener(Class<? extends SerializerListener> value) { 225 return set(SERIALIZER_listener, value); 226 } 227 228 /** 229 * Configuration property: Sort arrays and collections alphabetically. 230 * 231 * <ul class='seealso'> 232 * <li class='jf'>{@link Serializer#SERIALIZER_sortCollections} 233 * </ul> 234 * 235 * @param value 236 * The new value for this property. 237 * <br>The default is <jk>false</jk>. 238 * @return This object (for method chaining). 239 */ 240 public SerializerGroupBuilder sortCollections(boolean value) { 241 return set(SERIALIZER_sortCollections, value); 242 } 243 244 /** 245 * Configuration property: Sort arrays and collections alphabetically. 246 * 247 * <p> 248 * Shortcut for calling <code>sortCollections(<jk>true</jk>)</code>. 249 * 250 * <ul class='seealso'> 251 * <li class='jf'>{@link Serializer#SERIALIZER_sortCollections} 252 * </ul> 253 * 254 * @return This object (for method chaining). 255 */ 256 public SerializerGroupBuilder sortCollections() { 257 return set(SERIALIZER_sortCollections, true); 258 } 259 260 /** 261 * Configuration property: Sort maps alphabetically. 262 * 263 * <ul class='seealso'> 264 * <li class='jf'>{@link Serializer#SERIALIZER_sortMaps} 265 * </ul> 266 * 267 * @param value 268 * The new value for this property. 269 * <br>The default is <jk>false</jk>. 270 * @return This object (for method chaining). 271 */ 272 public SerializerGroupBuilder sortMaps(boolean value) { 273 return set(SERIALIZER_sortMaps, value); 274 } 275 276 /** 277 * Configuration property: Sort maps alphabetically. 278 * 279 * <p> 280 * Shortcut for calling <code>sortMaps(<jk>true</jk>)</code>. 281 * 282 * <ul class='seealso'> 283 * <li class='jf'>{@link Serializer#SERIALIZER_sortMaps} 284 * </ul> 285 * 286 * @return This object (for method chaining). 287 */ 288 public SerializerGroupBuilder sortMaps() { 289 return set(SERIALIZER_sortMaps, true); 290 } 291 292 /** 293 * Configuration property: Trim empty lists and arrays. 294 * 295 * <p> 296 * If <jk>true</jk>, empty list values will not be serialized to the output. 297 * 298 * <ul class='seealso'> 299 * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyCollections} 300 * </ul> 301 * 302 * @param value 303 * The new value for this property. 304 * <br>The default is <jk>false</jk>. 305 * @return This object (for method chaining). 306 */ 307 public SerializerGroupBuilder trimEmptyCollections(boolean value) { 308 return set(SERIALIZER_trimEmptyCollections, value); 309 } 310 311 /** 312 * Configuration property: Trim empty lists and arrays. 313 * 314 * <p> 315 * Shortcut for calling <code>trimEmptyCollections(<jk>true</jk>)</code>. 316 * 317 * <ul class='seealso'> 318 * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyCollections} 319 * </ul> 320 * 321 * @return This object (for method chaining). 322 */ 323 public SerializerGroupBuilder trimEmptyCollections() { 324 return set(SERIALIZER_trimEmptyCollections, true); 325 } 326 327 /** 328 * Configuration property: Trim empty maps. 329 * 330 * <p> 331 * If <jk>true</jk>, empty map values will not be serialized to the output. 332 * 333 * <ul class='seealso'> 334 * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyMaps} 335 * </ul> 336 * 337 * @param value 338 * The new value for this property. 339 * <br>The default is <jk>false</jk>. 340 * @return This object (for method chaining). 341 */ 342 public SerializerGroupBuilder trimEmptyMaps(boolean value) { 343 return set(SERIALIZER_trimEmptyMaps, value); 344 } 345 346 /** 347 * Configuration property: Trim empty maps. 348 * 349 * <p> 350 * Shortcut for calling <code>trimEmptyMaps(<jk>true</jk>)</code>. 351 * 352 * <ul class='seealso'> 353 * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyMaps} 354 * </ul> 355 * 356 * @return This object (for method chaining). 357 */ 358 public SerializerGroupBuilder trimEmptyMaps() { 359 return set(SERIALIZER_trimEmptyMaps, true); 360 } 361 362 /** 363 * Configuration property: Trim null bean property values. 364 * 365 * <p> 366 * If <jk>true</jk>, null bean values will not be serialized to the output. 367 * 368 * <ul class='seealso'> 369 * <li class='jf'>{@link Serializer#SERIALIZER_trimNullProperties} 370 * </ul> 371 * 372 * @param value 373 * The new value for this property. 374 * <br>The default is <jk>true</jk>. 375 * @return This object (for method chaining). 376 */ 377 public SerializerGroupBuilder trimNullProperties(boolean value) { 378 return set(SERIALIZER_trimNullProperties, value); 379 } 380 381 /** 382 * Configuration property: Trim strings. 383 * 384 * <p> 385 * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being serialized. 386 * 387 * <ul class='seealso'> 388 * <li class='jf'>{@link Serializer#SERIALIZER_trimStrings} 389 * </ul> 390 * 391 * @param value 392 * The new value for this property. 393 * <br>The default is <jk>false</jk>. 394 * @return This object (for method chaining). 395 */ 396 public SerializerGroupBuilder trimStrings(boolean value) { 397 return set(SERIALIZER_trimStrings, value); 398 } 399 400 /** 401 * Configuration property: Trim strings. 402 * 403 * <p> 404 * Shortcut for calling <code>trimStrings(<jk>true</jk>)</code>. 405 * 406 * <ul class='seealso'> 407 * <li class='jf'>{@link Serializer#SERIALIZER_trimStrings} 408 * </ul> 409 * 410 * @return This object (for method chaining). 411 */ 412 public SerializerGroupBuilder trimStrings() { 413 return set(SERIALIZER_trimStrings, true); 414 } 415 416 /** 417 * Configuration property: URI context bean. 418 * 419 * <p> 420 * Bean used for resolution of URIs to absolute or root-relative form. 421 * 422 * <ul class='seealso'> 423 * <li class='jf'>{@link Serializer#SERIALIZER_uriContext} 424 * </ul> 425 * 426 * @param value The new value for this property. 427 * @return This object (for method chaining). 428 */ 429 public SerializerGroupBuilder uriContext(UriContext value) { 430 return set(SERIALIZER_uriContext, value); 431 } 432 433 /** 434 * Configuration property: URI relativity. 435 * 436 * <p> 437 * Defines what relative URIs are relative to when serializing URI/URL objects. 438 * 439 * <ul class='seealso'> 440 * <li class='jf'>{@link Serializer#SERIALIZER_uriRelativity} 441 * </ul> 442 * 443 * @param value 444 * The new value for this property. 445 * <br>The default is {@link UriRelativity#RESOURCE} 446 * @return This object (for method chaining). 447 */ 448 public SerializerGroupBuilder uriRelativity(UriRelativity value) { 449 return set(SERIALIZER_uriRelativity, value); 450 } 451 452 /** 453 * Configuration property: URI resolution. 454 * 455 * <p> 456 * Defines the resolution level for URIs when serializing URI/URL objects. 457 * 458 * <ul class='seealso'> 459 * <li class='jf'>{@link Serializer#SERIALIZER_uriResolution} 460 * </ul> 461 * 462 * @param value 463 * The new value for this property. 464 * <br>The default is {@link UriResolution#NONE} 465 * @return This object (for method chaining). 466 */ 467 public SerializerGroupBuilder uriResolution(UriResolution value) { 468 return set(SERIALIZER_uriResolution, value); 469 } 470 471 //--- OutputStreamSerializer --- 472 473 /** 474 * Configuration property: Binary string format. 475 * 476 * <p> 477 * When using the {@link Serializer#serializeToString(Object)} method on stream-based serializers, this defines the format to use 478 * when converting the resulting byte array to a string. 479 * 480 * <ul class='javatree'> 481 * <li class='jf'>{@link OutputStreamSerializer#OSSERIALIZER_binaryFormat} 482 * </ul> 483 * 484 * @param value 485 * The new value for this property. 486 * <br>The default is {@link BinaryFormat#HEX}. 487 * @return This object (for method chaining). 488 */ 489 public SerializerGroupBuilder binaryOutputFormat(BinaryFormat value) { 490 return set(OSSERIALIZER_binaryFormat, value); 491 } 492 493 //--- WriterSerializer --- 494 495 /** 496 * Configuration property: File charset. 497 * 498 * <p> 499 * The character set to use for writing Files to the file system. 500 * 501 * <p> 502 * Used when passing in files to {@link Serializer#serialize(Object, Object)}. 503 * 504 * <ul class='seealso'> 505 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_fileCharset} 506 * </ul> 507 * 508 * @param value 509 * The new value for this property. 510 * <br>The default is the system JVM setting. 511 * @return This object (for method chaining). 512 */ 513 public SerializerGroupBuilder fileCharset(Charset value) { 514 return set(WSERIALIZER_fileCharset, value); 515 } 516 517 /** 518 * Configuration property: Maximum indentation. 519 * 520 * <p> 521 * Specifies the maximum indentation level in the serialized document. 522 * 523 * <ul class='seealso'> 524 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_maxIndent} 525 * </ul> 526 * 527 * @param value 528 * The new value for this property. 529 * <br>The default is <c>100</c>. 530 * @return This object (for method chaining). 531 */ 532 public SerializerGroupBuilder maxIndent(int value) { 533 return set(WSERIALIZER_maxIndent, value); 534 } 535 536 /** 537 * Configuration property: Quote character. 538 * 539 * <p> 540 * This is the character used for quoting attributes and values. 541 * 542 * <ul class='seealso'> 543 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar} 544 * </ul> 545 * 546 * @param value 547 * The new value for this property. 548 * <br>The default is <js>'"'</js>. 549 * @return This object (for method chaining). 550 */ 551 public SerializerGroupBuilder quoteChar(char value) { 552 return set(WSERIALIZER_quoteChar, value); 553 } 554 555 /** 556 * Configuration property: Quote character. 557 * 558 * <p> 559 * Shortcut for calling <code>quoteChar(<js>'\''</js>)</code>. 560 * 561 * <ul class='seealso'> 562 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar} 563 * </ul> 564 * 565 * @return This object (for method chaining). 566 */ 567 public SerializerGroupBuilder sq() { 568 return quoteChar('\''); 569 } 570 571 /** 572 * Configuration property: Output stream charset. 573 * 574 * <p> 575 * The character set to use when writing to OutputStreams. 576 * 577 * <p> 578 * Used when passing in output streams and byte arrays to {@link WriterSerializer#serialize(Object, Object)}. 579 * 580 * <ul class='seealso'> 581 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_streamCharset} 582 * </ul> 583 * 584 * @param value 585 * The new value for this property. 586 * <br>The default is the system JVM setting. 587 * @return This object (for method chaining). 588 */ 589 public SerializerGroupBuilder streamCharset(Charset value) { 590 return set(WSERIALIZER_streamCharset, value); 591 } 592 593 /** 594 * Configuration property: Use whitespace. 595 * 596 * <p> 597 * If <jk>true</jk>, newlines and indentation and spaces are added to the output to improve readability. 598 * 599 * <ul class='seealso'> 600 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_useWhitespace} 601 * </ul> 602 * 603 * @param value 604 * The new value for this property. 605 * <br>The default is <jk>false</jk>. 606 * @return This object (for method chaining). 607 */ 608 public SerializerGroupBuilder useWhitespace(boolean value) { 609 return set(WSERIALIZER_useWhitespace, value); 610 } 611 612 /** 613 * Configuration property: Use whitespace. 614 * 615 * <p> 616 * Shortcut for calling <code>useWhitespace(<jk>true</jk>)</code>. 617 * 618 * <ul class='seealso'> 619 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_useWhitespace} 620 * </ul> 621 * @return This object (for method chaining). 622 */ 623 public SerializerGroupBuilder useWhitespace() { 624 return set(WSERIALIZER_useWhitespace, true); 625 } 626 627 /** 628 * Configuration property: Use whitespace. 629 * 630 * <p> 631 * Shortcut for calling <code>useWhitespace(<jk>true</jk>)</code>. 632 * 633 * <ul class='seealso'> 634 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_useWhitespace} 635 * </ul> 636 * 637 * @return This object (for method chaining). 638 */ 639 public SerializerGroupBuilder ws() { 640 return useWhitespace(); 641 } 642 643 @Override /* BeanTraverseBuilder */ 644 public SerializerGroupBuilder detectRecursions(boolean value) { 645 super.detectRecursions(value); 646 return this; 647 } 648 649 @Override /* BeanTraverseBuilder */ 650 public SerializerGroupBuilder detectRecursions() { 651 super.detectRecursions(); 652 return this; 653 } 654 655 @Override /* BeanTraverseBuilder */ 656 public SerializerGroupBuilder ignoreRecursions(boolean value) { 657 super.ignoreRecursions(value); 658 return this; 659 } 660 661 @Override /* BeanTraverseBuilder */ 662 public SerializerGroupBuilder ignoreRecursions() { 663 super.ignoreRecursions(); 664 return this; 665 } 666 667 @Override /* BeanTraverseBuilder */ 668 public SerializerGroupBuilder initialDepth(int value) { 669 super.initialDepth(value); 670 return this; 671 } 672 673 @Override /* BeanTraverseBuilder */ 674 public SerializerGroupBuilder maxDepth(int value) { 675 super.maxDepth(value); 676 return this; 677 } 678 679 @Override /* BeanContextBuilder */ 680 public SerializerGroupBuilder annotations(Annotation...values) { 681 super.annotations(values); 682 return this; 683 } 684 685 @Override /* BeanContextBuilder */ 686 public SerializerGroupBuilder beanClassVisibility(Visibility value) { 687 super.beanClassVisibility(value); 688 return this; 689 } 690 691 @Override /* BeanContextBuilder */ 692 public SerializerGroupBuilder beanConstructorVisibility(Visibility value) { 693 super.beanConstructorVisibility(value); 694 return this; 695 } 696 697 @Override /* BeanContextBuilder */ 698 @Deprecated 699 public SerializerGroupBuilder beanDictionary(Class<?>...values) { 700 super.beanDictionary(values); 701 return this; 702 } 703 704 @Override /* BeanContextBuilder */ 705 @Deprecated 706 public SerializerGroupBuilder beanDictionary(Object...values) { 707 super.beanDictionary(values); 708 return this; 709 } 710 711 @Override /* BeanContextBuilder */ 712 @Deprecated 713 public SerializerGroupBuilder beanDictionaryReplace(Class<?>...values) { 714 super.beanDictionaryReplace(values); 715 return this; 716 } 717 718 @Override /* BeanContextBuilder */ 719 @Deprecated 720 public SerializerGroupBuilder beanDictionaryReplace(Object...values) { 721 super.beanDictionaryReplace(values); 722 return this; 723 } 724 725 @Override /* BeanContextBuilder */ 726 @Deprecated 727 public SerializerGroupBuilder beanDictionaryRemove(Class<?>...values) { 728 super.beanDictionaryRemove(values); 729 return this; 730 } 731 732 @Override /* BeanContextBuilder */ 733 @Deprecated 734 public SerializerGroupBuilder beanDictionaryRemove(Object...values) { 735 super.beanDictionaryRemove(values); 736 return this; 737 } 738 739 @Override /* BeanContextBuilder */ 740 public SerializerGroupBuilder beanFieldVisibility(Visibility value) { 741 super.beanFieldVisibility(value); 742 return this; 743 } 744 745 @Override /* BeanContextBuilder */ 746 public SerializerGroupBuilder beanFilters(Class<?>...values) { 747 super.beanFilters(values); 748 return this; 749 } 750 751 @Override /* BeanContextBuilder */ 752 public SerializerGroupBuilder beanFilters(Object...values) { 753 super.beanFilters(values); 754 return this; 755 } 756 757 @Override /* BeanContextBuilder */ 758 public SerializerGroupBuilder beanFiltersReplace(Class<?>...values) { 759 super.beanFiltersReplace(values); 760 return this; 761 } 762 763 @Override /* BeanContextBuilder */ 764 public SerializerGroupBuilder beanFiltersReplace(Object...values) { 765 super.beanFiltersReplace(values); 766 return this; 767 } 768 769 @Override /* BeanContextBuilder */ 770 public SerializerGroupBuilder beanFiltersRemove(Class<?>...values) { 771 super.beanFiltersRemove(values); 772 return this; 773 } 774 775 @Override /* BeanContextBuilder */ 776 public SerializerGroupBuilder beanFiltersRemove(Object...values) { 777 super.beanFiltersRemove(values); 778 return this; 779 } 780 781 @Override /* BeanContextBuilder */ 782 public SerializerGroupBuilder beanMapPutReturnsOldValue(boolean value) { 783 super.beanMapPutReturnsOldValue(value); 784 return this; 785 } 786 787 @Override /* BeanContextBuilder */ 788 public SerializerGroupBuilder beanMapPutReturnsOldValue() { 789 super.beanMapPutReturnsOldValue(); 790 return this; 791 } 792 793 @Override /* BeanContextBuilder */ 794 public SerializerGroupBuilder beanMethodVisibility(Visibility value) { 795 super.beanMethodVisibility(value); 796 return this; 797 } 798 799 @Override /* BeanContextBuilder */ 800 public SerializerGroupBuilder beansRequireDefaultConstructor(boolean value) { 801 super.beansRequireDefaultConstructor(value); 802 return this; 803 } 804 805 @Override /* BeanContextBuilder */ 806 public SerializerGroupBuilder beansRequireDefaultConstructor() { 807 super.beansRequireDefaultConstructor(); 808 return this; 809 } 810 811 @Override /* BeanContextBuilder */ 812 public SerializerGroupBuilder beansRequireSerializable(boolean value) { 813 super.beansRequireSerializable(value); 814 return this; 815 } 816 817 @Override /* BeanContextBuilder */ 818 public SerializerGroupBuilder beansRequireSerializable() { 819 super.beansRequireSerializable(); 820 return this; 821 } 822 823 @Override /* BeanContextBuilder */ 824 public SerializerGroupBuilder beansRequireSettersForGetters(boolean value) { 825 super.beansRequireSettersForGetters(value); 826 return this; 827 } 828 829 @Override /* BeanContextBuilder */ 830 public SerializerGroupBuilder beansRequireSettersForGetters() { 831 super.beansRequireSettersForGetters(); 832 return this; 833 } 834 835 @Override /* BeanContextBuilder */ 836 public SerializerGroupBuilder beansRequireSomeProperties(boolean value) { 837 super.beansRequireSomeProperties(value); 838 return this; 839 } 840 841 @Override /* BeanContextBuilder */ 842 public SerializerGroupBuilder beanTypePropertyName(String value) { 843 super.beanTypePropertyName(value); 844 return this; 845 } 846 847 @Override /* BeanContextBuilder */ 848 public SerializerGroupBuilder bpi(Class<?> beanClass, String value) { 849 super.bpi(beanClass, value); 850 return this; 851 } 852 853 @Override /* BeanContextBuilder */ 854 public SerializerGroupBuilder bpi(Map<String,String> values) { 855 super.bpi(values); 856 return this; 857 } 858 859 @Override /* BeanContextBuilder */ 860 public SerializerGroupBuilder bpi(String beanClassName, String value) { 861 super.bpi(beanClassName, value); 862 return this; 863 } 864 865 @Override /* BeanContextBuilder */ 866 public SerializerGroupBuilder bpx(Class<?> beanClass, String properties) { 867 super.bpx(beanClass, properties); 868 return this; 869 } 870 871 @Override /* BeanContextBuilder */ 872 public SerializerGroupBuilder bpx(Map<String,String> values) { 873 super.bpx(values); 874 return this; 875 } 876 877 @Override /* BeanContextBuilder */ 878 public SerializerGroupBuilder bpx(String beanClassName, String value) { 879 super.bpx(beanClassName, value); 880 return this; 881 } 882 883 @Override /* BeanContextBuilder */ 884 public SerializerGroupBuilder bpro(Class<?> beanClass, String value) { 885 super.bpro(beanClass, value); 886 return this; 887 } 888 889 @Override /* BeanContextBuilder */ 890 public SerializerGroupBuilder bpro(Map<String,String> values) { 891 super.bpro(values); 892 return this; 893 } 894 895 @Override /* BeanContextBuilder */ 896 public SerializerGroupBuilder bpro(String beanClassName, String value) { 897 super.bpro(beanClassName, value); 898 return this; 899 } 900 901 @Override /* BeanContextBuilder */ 902 public SerializerGroupBuilder bpwo(Class<?> beanClass, String properties) { 903 super.bpwo(beanClass, properties); 904 return this; 905 } 906 907 @Override /* BeanContextBuilder */ 908 public SerializerGroupBuilder bpwo(Map<String,String> values) { 909 super.bpwo(values); 910 return this; 911 } 912 913 @Override /* BeanContextBuilder */ 914 public SerializerGroupBuilder bpwo(String beanClassName, String value) { 915 super.bpwo(beanClassName, value); 916 return this; 917 } 918 919 @Override /* BeanContextBuilder */ 920 public SerializerGroupBuilder debug() { 921 super.debug(); 922 return this; 923 } 924 925 @Override /* BeanContextBuilder */ 926 public SerializerGroupBuilder dictionary(Class<?>...values) { 927 super.dictionary(values); 928 return this; 929 } 930 931 @Override /* BeanContextBuilder */ 932 public SerializerGroupBuilder dictionary(Object...values) { 933 super.dictionary(values); 934 return this; 935 } 936 937 @Override /* BeanContextBuilder */ 938 public SerializerGroupBuilder dictionaryReplace(Class<?>...values) { 939 super.dictionaryReplace(values); 940 return this; 941 } 942 943 @Override /* BeanContextBuilder */ 944 public SerializerGroupBuilder dictionaryReplace(Object...values) { 945 super.dictionaryReplace(values); 946 return this; 947 } 948 949 @Override /* BeanContextBuilder */ 950 public SerializerGroupBuilder dictionaryRemove(Class<?>...values) { 951 super.dictionaryRemove(values); 952 return this; 953 } 954 955 @Override /* BeanContextBuilder */ 956 public SerializerGroupBuilder dictionaryRemove(Object...values) { 957 super.dictionaryRemove(values); 958 return this; 959 } 960 961 @Override /* BeanContextBuilder */ 962 public <T> SerializerGroupBuilder example(Class<T> c, T o) { 963 super.example(c, o); 964 return this; 965 } 966 967 @Override /* BeanContextBuilder */ 968 public <T> SerializerGroupBuilder exampleJson(Class<T> c, String value) { 969 super.exampleJson(c, value); 970 return this; 971 } 972 973 @Override /* BeanContextBuilder */ 974 public SerializerGroupBuilder ignoreInvocationExceptionsOnGetters(boolean value) { 975 super.ignoreInvocationExceptionsOnGetters(value); 976 return this; 977 } 978 979 @Override /* BeanContextBuilder */ 980 public SerializerGroupBuilder ignoreInvocationExceptionsOnGetters() { 981 super.ignoreInvocationExceptionsOnGetters(); 982 return this; 983 } 984 985 @Override /* BeanContextBuilder */ 986 public SerializerGroupBuilder ignoreInvocationExceptionsOnSetters(boolean value) { 987 super.ignoreInvocationExceptionsOnSetters(value); 988 return this; 989 } 990 991 @Override /* BeanContextBuilder */ 992 public SerializerGroupBuilder ignoreInvocationExceptionsOnSetters() { 993 super.ignoreInvocationExceptionsOnSetters(); 994 return this; 995 } 996 997 @Override /* BeanContextBuilder */ 998 public SerializerGroupBuilder ignorePropertiesWithoutSetters(boolean value) { 999 super.ignorePropertiesWithoutSetters(value); 1000 return this; 1001 } 1002 1003 @Override /* BeanContextBuilder */ 1004 public SerializerGroupBuilder ignoreUnknownBeanProperties(boolean value) { 1005 super.ignoreUnknownBeanProperties(value); 1006 return this; 1007 } 1008 1009 @Override /* BeanContextBuilder */ 1010 public SerializerGroupBuilder ignoreUnknownBeanProperties() { 1011 super.ignoreUnknownBeanProperties(); 1012 return this; 1013 } 1014 1015 @Override /* BeanContextBuilder */ 1016 public SerializerGroupBuilder ignoreUnknownNullBeanProperties(boolean value) { 1017 super.ignoreUnknownNullBeanProperties(value); 1018 return this; 1019 } 1020 1021 @Override /* BeanContextBuilder */ 1022 public SerializerGroupBuilder implClass(Class<?> interfaceClass, Class<?> implClass) { 1023 super.implClass(interfaceClass, implClass); 1024 return this; 1025 } 1026 1027 @Override /* BeanContextBuilder */ 1028 public SerializerGroupBuilder implClasses(Map<String,Class<?>> values) { 1029 super.implClasses(values); 1030 return this; 1031 } 1032 1033 @Override /* BeanContextBuilder */ 1034 public SerializerGroupBuilder locale(Locale value) { 1035 super.locale(value); 1036 return this; 1037 } 1038 1039 @Override /* BeanContextBuilder */ 1040 public SerializerGroupBuilder mediaType(MediaType value) { 1041 super.mediaType(value); 1042 return this; 1043 } 1044 1045 @Override /* BeanContextBuilder */ 1046 public SerializerGroupBuilder notBeanClasses(Class<?>...values) { 1047 super.notBeanClasses(values); 1048 return this; 1049 } 1050 1051 @Override /* BeanContextBuilder */ 1052 public SerializerGroupBuilder notBeanClasses(Object...values) { 1053 super.notBeanClasses(values); 1054 return this; 1055 } 1056 1057 @Override /* BeanContextBuilder */ 1058 public SerializerGroupBuilder notBeanClassesReplace(Class<?>...values) { 1059 super.notBeanClassesReplace(values); 1060 return this; 1061 } 1062 1063 @Override /* BeanContextBuilder */ 1064 public SerializerGroupBuilder notBeanClassesReplace(Object...values) { 1065 super.notBeanClassesReplace(values); 1066 return this; 1067 } 1068 1069 @Override /* BeanContextBuilder */ 1070 public SerializerGroupBuilder notBeanClassesRemove(Class<?>...values) { 1071 super.notBeanClassesRemove(values); 1072 return this; 1073 } 1074 1075 @Override /* BeanContextBuilder */ 1076 public SerializerGroupBuilder notBeanClassesRemove(Object...values) { 1077 super.notBeanClassesRemove(values); 1078 return this; 1079 } 1080 1081 @Override /* BeanContextBuilder */ 1082 public SerializerGroupBuilder notBeanPackages(Object...values) { 1083 super.notBeanPackages(values); 1084 return this; 1085 } 1086 1087 @Override /* BeanContextBuilder */ 1088 public SerializerGroupBuilder notBeanPackages(String...values) { 1089 super.notBeanPackages(values); 1090 return this; 1091 } 1092 1093 @Override /* BeanContextBuilder */ 1094 public SerializerGroupBuilder notBeanPackagesReplace(String...values) { 1095 super.notBeanPackagesReplace(values); 1096 return this; 1097 } 1098 1099 @Override /* BeanContextBuilder */ 1100 public SerializerGroupBuilder notBeanPackagesReplace(Object...values) { 1101 super.notBeanPackagesReplace(values); 1102 return this; 1103 } 1104 1105 @Override /* BeanContextBuilder */ 1106 public SerializerGroupBuilder notBeanPackagesRemove(String...values) { 1107 super.notBeanPackagesRemove(values); 1108 return this; 1109 } 1110 1111 @Override /* BeanContextBuilder */ 1112 public SerializerGroupBuilder notBeanPackagesRemove(Object...values) { 1113 super.notBeanPackagesRemove(values); 1114 return this; 1115 } 1116 1117 @Override /* BeanContextBuilder */ 1118 public SerializerGroupBuilder pojoSwaps(Class<?>...values) { 1119 super.pojoSwaps(values); 1120 return this; 1121 } 1122 1123 @Override /* BeanContextBuilder */ 1124 public SerializerGroupBuilder pojoSwaps(Object...values) { 1125 super.pojoSwaps(values); 1126 return this; 1127 } 1128 1129 @Override /* BeanContextBuilder */ 1130 public SerializerGroupBuilder pojoSwapsReplace(Class<?>...values) { 1131 super.pojoSwapsReplace(values); 1132 return this; 1133 } 1134 1135 @Override /* BeanContextBuilder */ 1136 public SerializerGroupBuilder pojoSwapsReplace(Object...values) { 1137 super.pojoSwapsReplace(values); 1138 return this; 1139 } 1140 1141 @Override /* BeanContextBuilder */ 1142 public SerializerGroupBuilder pojoSwapsRemove(Class<?>...values) { 1143 super.pojoSwapsRemove(values); 1144 return this; 1145 } 1146 1147 @Override /* BeanContextBuilder */ 1148 public SerializerGroupBuilder pojoSwapsRemove(Object...values) { 1149 super.pojoSwapsRemove(values); 1150 return this; 1151 } 1152 1153 @Override /* BeanContextBuilder */ 1154 public SerializerGroupBuilder sortProperties(boolean value) { 1155 super.sortProperties(value); 1156 return this; 1157 } 1158 1159 @Override /* BeanContextBuilder */ 1160 public SerializerGroupBuilder sortProperties() { 1161 super.sortProperties(); 1162 return this; 1163 } 1164 1165 @Override /* BeanContextBuilder */ 1166 public SerializerGroupBuilder timeZone(TimeZone value) { 1167 super.timeZone(value); 1168 return this; 1169 } 1170 1171 @Override /* BeanContextBuilder */ 1172 public SerializerGroupBuilder useEnumNames(boolean value) { 1173 super.useEnumNames(value); 1174 return this; 1175 } 1176 1177 @Override /* BeanContextBuilder */ 1178 public SerializerGroupBuilder useEnumNames() { 1179 super.useEnumNames(); 1180 return this; 1181 } 1182 1183 @Override /* BeanContextBuilder */ 1184 public SerializerGroupBuilder useInterfaceProxies(boolean value) { 1185 super.useInterfaceProxies(value); 1186 return this; 1187 } 1188 1189 @Override /* BeanContextBuilder */ 1190 public SerializerGroupBuilder useJavaBeanIntrospector(boolean value) { 1191 super.useJavaBeanIntrospector(value); 1192 return this; 1193 } 1194 1195 @Override /* BeanContextBuilder */ 1196 public SerializerGroupBuilder useJavaBeanIntrospector() { 1197 super.useJavaBeanIntrospector(); 1198 return this; 1199 } 1200 1201 @Override /* ContextBuilder */ 1202 public SerializerGroupBuilder set(String name, Object value) { 1203 super.set(name, value); 1204 return this; 1205 } 1206 1207 @Override /* ContextBuilder */ 1208 public SerializerGroupBuilder set(Map<String,Object> properties) { 1209 super.set(properties); 1210 return this; 1211 } 1212 1213 @Override /* ContextBuilder */ 1214 public SerializerGroupBuilder add(Map<String,Object> properties) { 1215 super.add(properties); 1216 return this; 1217 } 1218 1219 @Override /* ContextBuilder */ 1220 public SerializerGroupBuilder addTo(String name, Object value) { 1221 super.addTo(name, value); 1222 return this; 1223 } 1224 1225 @Override /* ContextBuilder */ 1226 public SerializerGroupBuilder addTo(String name, String key, Object value) { 1227 super.addTo(name, key, value); 1228 return this; 1229 } 1230 1231 @Override /* ContextBuilder */ 1232 public SerializerGroupBuilder removeFrom(String name, Object value) { 1233 super.removeFrom(name, value); 1234 return this; 1235 } 1236 1237 @Override /* ContextBuilder */ 1238 public SerializerGroupBuilder apply(PropertyStore copyFrom) { 1239 super.apply(copyFrom); 1240 return this; 1241 } 1242 1243 @Override /* ContextBuilder */ 1244 public SerializerGroupBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) { 1245 super.applyAnnotations(al, vrs); 1246 return this; 1247 } 1248 1249 @Override /* ContextBuilder */ 1250 public SerializerGroupBuilder applyAnnotations(Class<?>...fromClasses) { 1251 super.applyAnnotations(fromClasses); 1252 return this; 1253 } 1254 1255 @Override /* ContextBuilder */ 1256 public SerializerGroupBuilder applyAnnotations(Method...fromMethods) { 1257 super.applyAnnotations(fromMethods); 1258 return this; 1259 } 1260}