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.util.*; 020 021import org.apache.juneau.*; 022import org.apache.juneau.http.*; 023import org.apache.juneau.internal.*; 024 025/** 026 * Builder class for creating instances of {@link SerializerGroup}. 027 */ 028public class SerializerGroupBuilder extends BeanTraverseBuilder { 029 030 private final List<Object> serializers; 031 032 /** 033 * Create an empty serializer group builder. 034 */ 035 public SerializerGroupBuilder() { 036 this.serializers = new ArrayList<>(); 037 } 038 039 /** 040 * Clone an existing serializer group builder. 041 * 042 * @param copyFrom The serializer group that we're copying settings and serializers from. 043 */ 044 public SerializerGroupBuilder(SerializerGroup copyFrom) { 045 super(copyFrom.getPropertyStore()); 046 this.serializers = new ArrayList<>(); 047 addReverse(serializers, copyFrom.getSerializers()); 048 } 049 050 /** 051 * Registers the specified serializers with this group. 052 * 053 * @param s The serializers to append to this group. 054 * @return This object (for method chaining). 055 */ 056 public SerializerGroupBuilder append(Class<?>...s) { 057 addReverse(serializers, s); 058 return this; 059 } 060 061 /** 062 * Registers the specified serializers with this group. 063 * 064 * <p> 065 * When passing in pre-instantiated serializers to this group, applying properties and transforms to the group 066 * do not affect them. 067 * 068 * @param s The serializers to append to this group. 069 * @return This object (for method chaining). 070 */ 071 public SerializerGroupBuilder append(Serializer...s) { 072 addReverse(serializers, s); 073 return this; 074 } 075 076 /** 077 * Registers the specified serializers with this group. 078 * 079 * <p> 080 * Objects can either be instances of serializers or serializer classes. 081 * 082 * @param s The serializers to append to this group. 083 * @return This object (for method chaining). 084 */ 085 public SerializerGroupBuilder append(List<Object> s) { 086 addReverse(serializers, s); 087 return this; 088 } 089 090 /** 091 * Registers the specified serializers with this group. 092 * 093 * <p> 094 * Objects can either be instances of serializers or serializer classes. 095 * 096 * @param s The serializers to append to this group. 097 * @return This object (for method chaining). 098 */ 099 public SerializerGroupBuilder append(Object...s) { 100 addReverse(serializers, s); 101 return this; 102 } 103 104 /** 105 * Creates a new {@link SerializerGroup} object using a snapshot of the settings defined in this builder. 106 * 107 * <p> 108 * This method can be called multiple times to produce multiple serializer groups. 109 * 110 * @return A new {@link SerializerGroup} object. 111 */ 112 @Override /* ContextBuilder */ 113 @SuppressWarnings("unchecked") 114 public SerializerGroup build() { 115 List<Serializer> l = new ArrayList<>(); 116 for (Object s : serializers) { 117 Class<? extends Serializer> c = null; 118 PropertyStore ps = getPropertyStore(); 119 if (s instanceof Class) { 120 c = (Class<? extends Serializer>)s; 121 l.add(ContextCache.INSTANCE.create(c, ps)); 122 } else { 123 l.add((Serializer)s); 124 } 125 } 126 return new SerializerGroup(getPropertyStore(), ArrayUtils.toReverseArray(Serializer.class, l)); 127 } 128 129 130 //----------------------------------------------------------------------------------------------------------------- 131 // Properties 132 //----------------------------------------------------------------------------------------------------------------- 133 134 /** 135 * Configuration property: Add <js>"_type"</js> properties when needed. 136 * 137 * <p> 138 * If <jk>true</jk>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred 139 * through reflection. 140 * 141 * <h5 class='section'>See Also:</h5> 142 * <ul> 143 * <li class='jf'>{@link Serializer#SERIALIZER_addBeanTypes} 144 * </ul> 145 * 146 * @param value 147 * The new value for this property. 148 * <br>The default is <jk>false</jk>. 149 * @return This object (for method chaining). 150 */ 151 public SerializerGroupBuilder addBeanTypes(boolean value) { 152 return set(SERIALIZER_addBeanTypes, value); 153 } 154 155 /** 156 * Configuration property: Add <js>"_type"</js> properties when needed. 157 * 158 * <p> 159 * Shortcut for calling <code>addBeanTypes(<jk>true</jk>)</code>. 160 * 161 * <h5 class='section'>See Also:</h5> 162 * <ul> 163 * <li class='jf'>{@link Serializer#SERIALIZER_addBeanTypes} 164 * </ul> 165 * 166 * @return This object (for method chaining). 167 */ 168 public SerializerGroupBuilder addBeanTypes() { 169 return set(SERIALIZER_addBeanTypes, true); 170 } 171 172 /** 173 * Configuration property: Add type attribute to root nodes. 174 * 175 * <p> 176 * When disabled, it is assumed that the parser knows the exact Java POJO type being parsed, and therefore top-level 177 * type information that might normally be included to determine the data type will not be serialized. 178 * 179 * <h5 class='section'>See Also:</h5> 180 * <ul> 181 * <li class='jf'>{@link Serializer#SERIALIZER_addRootType} 182 * </ul> 183 * 184 * @param value 185 * The new value for this property. 186 * <br>The default is <jk>false</jk>. 187 * @return This object (for method chaining). 188 */ 189 public SerializerGroupBuilder addRootType(boolean value) { 190 return set(SERIALIZER_addRootType, value); 191 } 192 193 /** 194 * Configuration property: Add type attribute to root nodes. 195 * 196 * <p> 197 * Shortcut for calling <code>addRootType(<jk>true</jk>)</code>. 198 * 199 * <h5 class='section'>See Also:</h5> 200 * <ul> 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 * <h5 class='section'>See Also:</h5> 217 * <ul> 218 * <li class='jf'>{@link Serializer#SERIALIZER_listener} 219 * </ul> 220 * 221 * @param value 222 * The new value for this property. 223 * @return This object (for method chaining). 224 */ 225 public SerializerGroupBuilder listener(Class<? extends SerializerListener> value) { 226 return set(SERIALIZER_listener, value); 227 } 228 229 /** 230 * Configuration property: Sort arrays and collections alphabetically. 231 * 232 * <h5 class='section'>See Also:</h5> 233 * <ul> 234 * <li class='jf'>{@link Serializer#SERIALIZER_sortCollections} 235 * </ul> 236 * 237 * @param value 238 * The new value for this property. 239 * <br>The default is <jk>false</jk>. 240 * @return This object (for method chaining). 241 */ 242 public SerializerGroupBuilder sortCollections(boolean value) { 243 return set(SERIALIZER_sortCollections, value); 244 } 245 246 /** 247 * Configuration property: Sort arrays and collections alphabetically. 248 * 249 * <p> 250 * Shortcut for calling <code>sortCollections(<jk>true</jk>)</code>. 251 * 252 * <h5 class='section'>See Also:</h5> 253 * <ul> 254 * <li class='jf'>{@link Serializer#SERIALIZER_sortCollections} 255 * </ul> 256 * 257 * @return This object (for method chaining). 258 */ 259 public SerializerGroupBuilder sortCollections() { 260 return set(SERIALIZER_sortCollections, true); 261 } 262 263 /** 264 * Configuration property: Sort maps alphabetically. 265 * 266 * <h5 class='section'>See Also:</h5> 267 * <ul> 268 * <li class='jf'>{@link Serializer#SERIALIZER_sortMaps} 269 * </ul> 270 * 271 * @param value 272 * The new value for this property. 273 * <br>The default is <jk>false</jk>. 274 * @return This object (for method chaining). 275 */ 276 public SerializerGroupBuilder sortMaps(boolean value) { 277 return set(SERIALIZER_sortMaps, value); 278 } 279 280 /** 281 * Configuration property: Sort maps alphabetically. 282 * 283 * <p> 284 * Shortcut for calling <code>sortMaps(<jk>true</jk>)</code>. 285 * 286 * <h5 class='section'>See Also:</h5> 287 * <ul> 288 * <li class='jf'>{@link Serializer#SERIALIZER_sortMaps} 289 * </ul> 290 * 291 * @return This object (for method chaining). 292 */ 293 public SerializerGroupBuilder sortMaps() { 294 return set(SERIALIZER_sortMaps, true); 295 } 296 297 /** 298 * Configuration property: Trim empty lists and arrays. 299 * 300 * <p> 301 * If <jk>true</jk>, empty list values will not be serialized to the output. 302 * 303 * <h5 class='section'>See Also:</h5> 304 * <ul> 305 * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyCollections} 306 * </ul> 307 * 308 * @param value 309 * The new value for this property. 310 * <br>The default is <jk>false</jk>. 311 * @return This object (for method chaining). 312 */ 313 public SerializerGroupBuilder trimEmptyCollections(boolean value) { 314 return set(SERIALIZER_trimEmptyCollections, value); 315 } 316 317 /** 318 * Configuration property: Trim empty lists and arrays. 319 * 320 * <p> 321 * Shortcut for calling <code>trimEmptyCollections(<jk>true</jk>)</code>. 322 * 323 * <h5 class='section'>See Also:</h5> 324 * <ul> 325 * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyCollections} 326 * </ul> 327 * 328 * @return This object (for method chaining). 329 */ 330 public SerializerGroupBuilder trimEmptyCollections() { 331 return set(SERIALIZER_trimEmptyCollections, true); 332 } 333 334 /** 335 * Configuration property: Trim empty maps. 336 * 337 * <p> 338 * If <jk>true</jk>, empty map values will not be serialized to the output. 339 * 340 * <h5 class='section'>See Also:</h5> 341 * <ul> 342 * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyMaps} 343 * </ul> 344 * 345 * @param value 346 * The new value for this property. 347 * <br>The default is <jk>false</jk>. 348 * @return This object (for method chaining). 349 */ 350 public SerializerGroupBuilder trimEmptyMaps(boolean value) { 351 return set(SERIALIZER_trimEmptyMaps, value); 352 } 353 354 /** 355 * Configuration property: Trim empty maps. 356 * 357 * <p> 358 * Shortcut for calling <code>trimEmptyMaps(<jk>true</jk>)</code>. 359 * 360 * <h5 class='section'>See Also:</h5> 361 * <ul> 362 * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyMaps} 363 * </ul> 364 * 365 * @return This object (for method chaining). 366 */ 367 public SerializerGroupBuilder trimEmptyMaps() { 368 return set(SERIALIZER_trimEmptyMaps, true); 369 } 370 371 /** 372 * Configuration property: Trim null bean property values. 373 * 374 * <p> 375 * If <jk>true</jk>, null bean values will not be serialized to the output. 376 * 377 * <h5 class='section'>See Also:</h5> 378 * <ul> 379 * <li class='jf'>{@link Serializer#SERIALIZER_trimNullProperties} 380 * </ul> 381 * 382 * @param value 383 * The new value for this property. 384 * <br>The default is <jk>true</jk>. 385 * @return This object (for method chaining). 386 */ 387 public SerializerGroupBuilder trimNullProperties(boolean value) { 388 return set(SERIALIZER_trimNullProperties, value); 389 } 390 391 /** 392 * Configuration property: Trim strings. 393 * 394 * <p> 395 * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being serialized. 396 * 397 * <h5 class='section'>See Also:</h5> 398 * <ul> 399 * <li class='jf'>{@link Serializer#SERIALIZER_trimStrings} 400 * </ul> 401 * 402 * @param value 403 * The new value for this property. 404 * <br>The default is <jk>false</jk>. 405 * @return This object (for method chaining). 406 */ 407 public SerializerGroupBuilder trimStrings(boolean value) { 408 return set(SERIALIZER_trimStrings, value); 409 } 410 411 /** 412 * Configuration property: Trim strings. 413 * 414 * <p> 415 * Shortcut for calling <code>trimStrings(<jk>true</jk>)</code>. 416 * 417 * <h5 class='section'>See Also:</h5> 418 * <ul> 419 * <li class='jf'>{@link Serializer#SERIALIZER_trimStrings} 420 * </ul> 421 * 422 * @return This object (for method chaining). 423 */ 424 public SerializerGroupBuilder trimStrings() { 425 return set(SERIALIZER_trimStrings, true); 426 } 427 428 /** 429 * Configuration property: URI context bean. 430 * 431 * <p> 432 * Bean used for resolution of URIs to absolute or root-relative form. 433 * 434 * <h5 class='section'>See Also:</h5> 435 * <ul> 436 * <li class='jf'>{@link Serializer#SERIALIZER_uriContext} 437 * </ul> 438 * 439 * @param value The new value for this property. 440 * @return This object (for method chaining). 441 */ 442 public SerializerGroupBuilder uriContext(UriContext value) { 443 return set(SERIALIZER_uriContext, value); 444 } 445 446 /** 447 * Configuration property: URI relativity. 448 * 449 * <p> 450 * Defines what relative URIs are relative to when serializing URI/URL objects. 451 * 452 * <h5 class='section'>See Also:</h5> 453 * <ul> 454 * <li class='jf'>{@link Serializer#SERIALIZER_uriRelativity} 455 * </ul> 456 * 457 * @param value 458 * The new value for this property. 459 * <br>The default is {@link UriRelativity#RESOURCE} 460 * @return This object (for method chaining). 461 */ 462 public SerializerGroupBuilder uriRelativity(UriRelativity value) { 463 return set(SERIALIZER_uriRelativity, value); 464 } 465 466 /** 467 * Configuration property: URI resolution. 468 * 469 * <p> 470 * Defines the resolution level for URIs when serializing URI/URL objects. 471 * 472 * <h5 class='section'>See Also:</h5> 473 * <ul> 474 * <li class='jf'>{@link Serializer#SERIALIZER_uriResolution} 475 * </ul> 476 * 477 * @param value 478 * The new value for this property. 479 * <br>The default is {@link UriResolution#NONE} 480 * @return This object (for method chaining). 481 */ 482 public SerializerGroupBuilder uriResolution(UriResolution value) { 483 return set(SERIALIZER_uriResolution, value); 484 } 485 486 //--- WriterSerializer --- 487 488 /** 489 * Configuration property: Maximum indentation. 490 * 491 * <p> 492 * Specifies the maximum indentation level in the serialized document. 493 * 494 * <h5 class='section'>See Also:</h5> 495 * <ul> 496 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_maxIndent} 497 * </ul> 498 * 499 * @param value 500 * The new value for this property. 501 * <br>The default is <code>100</code>. 502 * @return This object (for method chaining). 503 */ 504 public SerializerGroupBuilder maxIndent(int value) { 505 return set(WSERIALIZER_maxIndent, value); 506 } 507 508 /** 509 * Configuration property: Quote character. 510 * 511 * <p> 512 * This is the character used for quoting attributes and values. 513 * 514 * <h5 class='section'>See Also:</h5> 515 * <ul> 516 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar} 517 * </ul> 518 * 519 * @param value 520 * The new value for this property. 521 * <br>The default is <js>'"'</js>. 522 * @return This object (for method chaining). 523 */ 524 public SerializerGroupBuilder quoteChar(char value) { 525 return set(WSERIALIZER_quoteChar, value); 526 } 527 528 /** 529 * Configuration property: Use single quotes. 530 * 531 * <p> 532 * Shortcut for calling <code>quoteChar(<js>'\''</js>)</code>. 533 * 534 * <h5 class='section'>See Also:</h5> 535 * <ul> 536 * <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar} 537 * </ul> 538 * 539 * @return This object (for method chaining). 540 */ 541 public SerializerGroupBuilder sq() { 542 return quoteChar('\''); 543 } 544 545 /** 546 * Configuration property: Use whitespace. 547 * 548 * <p> 549 * If <jk>true</jk>, newlines and indentation and spaces are added to the output to improve readability. 550 * 551 * <h5 class='section'>See Also:</h5> 552 * <ul> 553 * <li class='jf'>{@link Serializer#SERIALIZER_useWhitespace} 554 * </ul> 555 * 556 * @param value 557 * The new value for this property. 558 * <br>The default is <jk>false</jk>. 559 * @return This object (for method chaining). 560 */ 561 public SerializerGroupBuilder useWhitespace(boolean value) { 562 return set(SERIALIZER_useWhitespace, value); 563 } 564 565 /** 566 * Configuration property: Use whitespace. 567 * 568 * <p> 569 * Shortcut for calling <code>useWhitespace(<jk>true</jk>)</code>. 570 * 571 * <h5 class='section'>See Also:</h5> 572 * <ul> 573 * <li class='jf'>{@link Serializer#SERIALIZER_useWhitespace} 574 * </ul> 575 * @return This object (for method chaining). 576 */ 577 public SerializerGroupBuilder useWhitespace() { 578 return set(SERIALIZER_useWhitespace, true); 579 } 580 581 /** 582 * Configuration property: Use whitespace. 583 * 584 * <p> 585 * Shortcut for calling <code>useWhitespace(<jk>true</jk>)</code>. 586 * 587 * <h5 class='section'>See Also:</h5> 588 * <ul> 589 * <li class='jf'>{@link Serializer#SERIALIZER_useWhitespace} 590 * </ul> 591 * 592 * @return This object (for method chaining). 593 */ 594 public SerializerGroupBuilder ws() { 595 return useWhitespace(); 596 } 597 598 //--- OutputStreamSerializer --- 599 600 /** 601 * Configuration property: Binary string format. 602 * 603 * <p> 604 * When using the {@link Serializer#serializeToString(Object)} method on stream-based serializers, this defines the format to use 605 * when converting the resulting byte array to a string. 606 * 607 * <ul> 608 * <li class='jf'>{@link OutputStreamSerializer#OSSERIALIZER_binaryFormat} 609 * </ul> 610 * 611 * @param value 612 * The new value for this property. 613 * <br>The default is {@link BinaryFormat#HEX}. 614 * @return This object (for method chaining). 615 */ 616 public SerializerGroupBuilder binaryOutputFormat(BinaryFormat value) { 617 return set(OSSERIALIZER_binaryFormat, value); 618 } 619 620 @Override /* BeanTraverseBuilder */ 621 public SerializerGroupBuilder detectRecursions(boolean value) { 622 super.detectRecursions(value); 623 return this; 624 } 625 626 @Override /* BeanTraverseBuilder */ 627 public SerializerGroupBuilder detectRecursions() { 628 super.detectRecursions(); 629 return this; 630 } 631 632 @Override /* BeanTraverseBuilder */ 633 public SerializerGroupBuilder ignoreRecursions(boolean value) { 634 super.ignoreRecursions(value); 635 return this; 636 } 637 638 @Override /* BeanTraverseBuilder */ 639 public SerializerGroupBuilder ignoreRecursions() { 640 super.ignoreRecursions(); 641 return this; 642 } 643 644 @Override /* BeanTraverseBuilder */ 645 public SerializerGroupBuilder initialDepth(int value) { 646 super.initialDepth(value); 647 return this; 648 } 649 650 @Override /* BeanTraverseBuilder */ 651 public SerializerGroupBuilder maxDepth(int value) { 652 super.maxDepth(value); 653 return this; 654 } 655 656 @Override /* BeanContextBuilder */ 657 public SerializerGroupBuilder beanClassVisibility(Visibility value) { 658 super.beanClassVisibility(value); 659 return this; 660 } 661 662 @Override /* BeanContextBuilder */ 663 public SerializerGroupBuilder beanConstructorVisibility(Visibility value) { 664 super.beanConstructorVisibility(value); 665 return this; 666 } 667 668 @Override /* BeanContextBuilder */ 669 public SerializerGroupBuilder beanDictionary(boolean append, Object...values) { 670 super.beanDictionary(append, values); 671 return this; 672 } 673 674 @Override /* BeanContextBuilder */ 675 public SerializerGroupBuilder beanDictionary(Class<?>...values) { 676 super.beanDictionary(values); 677 return this; 678 } 679 680 @Override /* BeanContextBuilder */ 681 public SerializerGroupBuilder beanDictionary(Object...values) { 682 super.beanDictionary(values); 683 return this; 684 } 685 686 @Override /* BeanContextBuilder */ 687 public SerializerGroupBuilder beanDictionaryRemove(Object...values) { 688 super.beanDictionaryRemove(values); 689 return this; 690 } 691 692 @Override /* BeanContextBuilder */ 693 public SerializerGroupBuilder beanFieldVisibility(Visibility value) { 694 super.beanFieldVisibility(value); 695 return this; 696 } 697 698 @Override /* BeanContextBuilder */ 699 public SerializerGroupBuilder beanFilters(boolean append, Object...values) { 700 super.beanFilters(append, values); 701 return this; 702 } 703 704 @Override /* BeanContextBuilder */ 705 public SerializerGroupBuilder beanFilters(Class<?>...values) { 706 super.beanFilters(values); 707 return this; 708 } 709 710 @Override /* BeanContextBuilder */ 711 public SerializerGroupBuilder beanFilters(Object...values) { 712 super.beanFilters(values); 713 return this; 714 } 715 716 @Override /* BeanContextBuilder */ 717 public SerializerGroupBuilder beanFiltersRemove(Object...values) { 718 super.beanFiltersRemove(values); 719 return this; 720 } 721 722 @Override /* BeanContextBuilder */ 723 public SerializerGroupBuilder beanMapPutReturnsOldValue(boolean value) { 724 super.beanMapPutReturnsOldValue(value); 725 return this; 726 } 727 728 @Override /* BeanContextBuilder */ 729 public SerializerGroupBuilder beanMapPutReturnsOldValue() { 730 super.beanMapPutReturnsOldValue(); 731 return this; 732 } 733 734 @Override /* BeanContextBuilder */ 735 public SerializerGroupBuilder beanMethodVisibility(Visibility value) { 736 super.beanMethodVisibility(value); 737 return this; 738 } 739 740 @Override /* BeanContextBuilder */ 741 public SerializerGroupBuilder beansRequireDefaultConstructor(boolean value) { 742 super.beansRequireDefaultConstructor(value); 743 return this; 744 } 745 746 @Override /* BeanContextBuilder */ 747 public SerializerGroupBuilder beansRequireDefaultConstructor() { 748 super.beansRequireDefaultConstructor(); 749 return this; 750 } 751 752 @Override /* BeanContextBuilder */ 753 public SerializerGroupBuilder beansRequireSerializable(boolean value) { 754 super.beansRequireSerializable(value); 755 return this; 756 } 757 758 @Override /* BeanContextBuilder */ 759 public SerializerGroupBuilder beansRequireSerializable() { 760 super.beansRequireSerializable(); 761 return this; 762 } 763 764 @Override /* BeanContextBuilder */ 765 public SerializerGroupBuilder beansRequireSettersForGetters(boolean value) { 766 super.beansRequireSettersForGetters(value); 767 return this; 768 } 769 770 @Override /* BeanContextBuilder */ 771 public SerializerGroupBuilder beansRequireSettersForGetters() { 772 super.beansRequireSettersForGetters(); 773 return this; 774 } 775 776 @Override /* BeanContextBuilder */ 777 public SerializerGroupBuilder beansRequireSomeProperties(boolean value) { 778 super.beansRequireSomeProperties(value); 779 return this; 780 } 781 782 @Override /* BeanContextBuilder */ 783 public SerializerGroupBuilder beanTypePropertyName(String value) { 784 super.beanTypePropertyName(value); 785 return this; 786 } 787 788 @Override /* BeanContextBuilder */ 789 public SerializerGroupBuilder debug() { 790 super.debug(); 791 return this; 792 } 793 794 @Override /* BeanContextBuilder */ 795 public <T> SerializerGroupBuilder example(Class<T> c, T o) { 796 super.example(c, o); 797 return this; 798 } 799 800 @Override /* BeanContextBuilder */ 801 public SerializerGroupBuilder ignoreInvocationExceptionsOnGetters(boolean value) { 802 super.ignoreInvocationExceptionsOnGetters(value); 803 return this; 804 } 805 806 @Override /* BeanContextBuilder */ 807 public SerializerGroupBuilder ignoreInvocationExceptionsOnGetters() { 808 super.ignoreInvocationExceptionsOnGetters(); 809 return this; 810 } 811 812 @Override /* BeanContextBuilder */ 813 public SerializerGroupBuilder ignoreInvocationExceptionsOnSetters(boolean value) { 814 super.ignoreInvocationExceptionsOnSetters(value); 815 return this; 816 } 817 818 @Override /* BeanContextBuilder */ 819 public SerializerGroupBuilder ignoreInvocationExceptionsOnSetters() { 820 super.ignoreInvocationExceptionsOnSetters(); 821 return this; 822 } 823 824 @Override /* BeanContextBuilder */ 825 public SerializerGroupBuilder ignorePropertiesWithoutSetters(boolean value) { 826 super.ignorePropertiesWithoutSetters(value); 827 return this; 828 } 829 830 @Override /* BeanContextBuilder */ 831 public SerializerGroupBuilder ignoreUnknownBeanProperties(boolean value) { 832 super.ignoreUnknownBeanProperties(value); 833 return this; 834 } 835 836 @Override /* BeanContextBuilder */ 837 public SerializerGroupBuilder ignoreUnknownBeanProperties() { 838 super.ignoreUnknownBeanProperties(); 839 return this; 840 } 841 842 @Override /* BeanContextBuilder */ 843 public SerializerGroupBuilder ignoreUnknownNullBeanProperties(boolean value) { 844 super.ignoreUnknownNullBeanProperties(value); 845 return this; 846 } 847 848 @Override /* BeanContextBuilder */ 849 public <T> SerializerGroupBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) { 850 super.implClass(interfaceClass, implClass); 851 return this; 852 } 853 854 @Override /* BeanContextBuilder */ 855 public SerializerGroupBuilder implClasses(Map<String,Class<?>> values) { 856 super.implClasses(values); 857 return this; 858 } 859 860 @Override /* BeanContextBuilder */ 861 public SerializerGroupBuilder locale(Locale value) { 862 super.locale(value); 863 return this; 864 } 865 866 @Override /* BeanContextBuilder */ 867 public SerializerGroupBuilder mediaType(MediaType value) { 868 super.mediaType(value); 869 return this; 870 } 871 872 @Override /* BeanContextBuilder */ 873 public SerializerGroupBuilder notBeanClasses(boolean append, Object...values) { 874 super.notBeanClasses(append, values); 875 return this; 876 } 877 878 @Override /* BeanContextBuilder */ 879 public SerializerGroupBuilder notBeanClasses(Class<?>...values) { 880 super.notBeanClasses(values); 881 return this; 882 } 883 884 @Override /* BeanContextBuilder */ 885 public SerializerGroupBuilder notBeanClasses(Object...values) { 886 super.notBeanClasses(values); 887 return this; 888 } 889 890 @Override /* BeanContextBuilder */ 891 public SerializerGroupBuilder notBeanClassesRemove(Object...values) { 892 super.notBeanClassesRemove(values); 893 return this; 894 } 895 896 @Override /* BeanContextBuilder */ 897 public SerializerGroupBuilder notBeanPackages(boolean append, Object...values) { 898 super.notBeanPackages(append, values); 899 return this; 900 } 901 902 @Override /* BeanContextBuilder */ 903 public SerializerGroupBuilder notBeanPackages(Object...values) { 904 super.notBeanPackages(values); 905 return this; 906 } 907 908 @Override /* BeanContextBuilder */ 909 public SerializerGroupBuilder notBeanPackages(String...values) { 910 super.notBeanPackages(values); 911 return this; 912 } 913 914 @Override /* BeanContextBuilder */ 915 public SerializerGroupBuilder notBeanPackagesRemove(Object...values) { 916 super.notBeanPackagesRemove(values); 917 return this; 918 } 919 920 @Override /* BeanContextBuilder */ 921 public SerializerGroupBuilder pojoSwaps(boolean append, Object...values) { 922 super.pojoSwaps(append, values); 923 return this; 924 } 925 926 @Override /* BeanContextBuilder */ 927 public SerializerGroupBuilder pojoSwaps(Class<?>...values) { 928 super.pojoSwaps(values); 929 return this; 930 } 931 932 @Override /* BeanContextBuilder */ 933 public SerializerGroupBuilder pojoSwaps(Object...values) { 934 super.pojoSwaps(values); 935 return this; 936 } 937 938 @Override /* BeanContextBuilder */ 939 public SerializerGroupBuilder pojoSwapsRemove(Object...values) { 940 super.pojoSwapsRemove(values); 941 return this; 942 } 943 944 @Override /* BeanContextBuilder */ 945 public SerializerGroupBuilder sortProperties(boolean value) { 946 super.sortProperties(value); 947 return this; 948 } 949 950 @Override /* BeanContextBuilder */ 951 public SerializerGroupBuilder sortProperties() { 952 super.sortProperties(); 953 return this; 954 } 955 956 @Override /* BeanContextBuilder */ 957 public SerializerGroupBuilder timeZone(TimeZone value) { 958 super.timeZone(value); 959 return this; 960 } 961 962 @Override /* BeanContextBuilder */ 963 public SerializerGroupBuilder useEnumNames() { 964 super.useEnumNames(); 965 return this; 966 } 967 968 @Override /* BeanContextBuilder */ 969 public SerializerGroupBuilder useInterfaceProxies(boolean value) { 970 super.useInterfaceProxies(value); 971 return this; 972 } 973 974 @Override /* BeanContextBuilder */ 975 public SerializerGroupBuilder useJavaBeanIntrospector(boolean value) { 976 super.useJavaBeanIntrospector(value); 977 return this; 978 } 979 980 @Override /* BeanContextBuilder */ 981 public SerializerGroupBuilder useJavaBeanIntrospector() { 982 super.useJavaBeanIntrospector(); 983 return this; 984 } 985 986 @Override /* ContextBuilder */ 987 public SerializerGroupBuilder set(String name, Object value) { 988 super.set(name, value); 989 return this; 990 } 991 992 @Override /* ContextBuilder */ 993 public SerializerGroupBuilder set(boolean append, String name, Object value) { 994 super.set(append, name, value); 995 return this; 996 } 997 998 @Override /* ContextBuilder */ 999 public SerializerGroupBuilder set(Map<String,Object> properties) { 1000 super.set(properties); 1001 return this; 1002 } 1003 1004 @Override /* ContextBuilder */ 1005 public SerializerGroupBuilder add(Map<String,Object> properties) { 1006 super.add(properties); 1007 return this; 1008 } 1009 1010 @Override /* ContextBuilder */ 1011 public SerializerGroupBuilder addTo(String name, Object value) { 1012 super.addTo(name, value); 1013 return this; 1014 } 1015 1016 @Override /* ContextBuilder */ 1017 public SerializerGroupBuilder addTo(String name, String key, Object value) { 1018 super.addTo(name, key, value); 1019 return this; 1020 } 1021 1022 @Override /* ContextBuilder */ 1023 public SerializerGroupBuilder removeFrom(String name, Object value) { 1024 super.removeFrom(name, value); 1025 return this; 1026 } 1027 1028 @Override /* ContextBuilder */ 1029 public SerializerGroupBuilder apply(PropertyStore copyFrom) { 1030 super.apply(copyFrom); 1031 return this; 1032 } 1033 1034 /** 1035 * @deprecated No replacement 1036 */ 1037 @SuppressWarnings("javadoc") 1038 @Deprecated 1039 public SerializerGroupBuilder abridged(boolean value) { 1040 return this; 1041 } 1042 1043 /** 1044 * @deprecated No replacement 1045 */ 1046 @SuppressWarnings("javadoc") 1047 @Deprecated 1048 public SerializerGroupBuilder abridged() { 1049 return this; 1050 } 1051 1052 /** 1053 * @deprecated {@link #addBeanTypes(boolean)} 1054 */ 1055 @SuppressWarnings("javadoc") 1056 @Deprecated 1057 public SerializerGroupBuilder addBeanTypeProperties(boolean value) { 1058 this.addBeanTypes(value); 1059 return this; 1060 } 1061}