001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.juneau.html; 018 019import java.lang.annotation.*; 020import java.nio.charset.*; 021import java.util.*; 022 023import org.apache.juneau.*; 024import org.apache.juneau.commons.collections.*; 025import org.apache.juneau.commons.function.*; 026import org.apache.juneau.commons.reflect.*; 027import org.apache.juneau.xml.*; 028 029/** 030 * Serializes POJOs to HTTP responses as stripped HTML. 031 * 032 * <h5 class='topic'>Media types</h5> 033 * 034 * Handles <c>Accept</c> types: <bc>text/html+stripped</bc> 035 * <p> 036 * Produces <c>Content-Type</c> types: <bc>text/html</bc> 037 * 038 * <h5 class='topic'>Description</h5> 039 * 040 * Produces the same output as {@link HtmlDocSerializer}, but without the header and body tags and page title and 041 * description. 042 * Used primarily for JUnit testing the {@link HtmlDocSerializer} class. 043 * 044 * <h5 class='section'>Notes:</h5><ul> 045 * <li class='note'>This class is thread safe and reusable. 046 * </ul> 047 * 048 * <h5 class='section'>See Also:</h5><ul> 049 * <li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/HtmlBasics">HTML Basics</a> 050 051 * </ul> 052 */ 053public class HtmlStrippedDocSerializer extends HtmlSerializer { 054 /** 055 * Builder class. 056 */ 057 public static class Builder extends HtmlSerializer.Builder { 058 059 private static final Cache<HashKey,HtmlStrippedDocSerializer> CACHE = Cache.of(HashKey.class, HtmlStrippedDocSerializer.class).build(); 060 061 /** 062 * Constructor, default settings. 063 */ 064 protected Builder() { 065 produces("text/html"); 066 accept("text/html+stripped"); 067 } 068 069 /** 070 * Copy constructor. 071 * 072 * @param copyFrom The builder to copy from. 073 */ 074 protected Builder(Builder copyFrom) { 075 super(copyFrom); 076 } 077 078 /** 079 * Copy constructor. 080 * 081 * @param copyFrom The bean to copy from. 082 */ 083 protected Builder(HtmlStrippedDocSerializer copyFrom) { 084 super(copyFrom); 085 } 086 087 @Override /* Overridden from Builder */ 088 public Builder accept(String value) { 089 super.accept(value); 090 return this; 091 } 092 093 @Override /* Overridden from Builder */ 094 public Builder addBeanTypes() { 095 super.addBeanTypes(); 096 return this; 097 } 098 099 @Override /* Overridden from Builder */ 100 public Builder addBeanTypes(boolean value) { 101 super.addBeanTypes(value); 102 return this; 103 } 104 105 @Override /* Overridden from Builder */ 106 public Builder addBeanTypesHtml() { 107 super.addBeanTypesHtml(); 108 return this; 109 } 110 111 @Override /* Overridden from Builder */ 112 public Builder addBeanTypesHtml(boolean value) { 113 super.addBeanTypesHtml(value); 114 return this; 115 } 116 117 @Override /* Overridden from Builder */ 118 public Builder addBeanTypesXml() { 119 super.addBeanTypesXml(); 120 return this; 121 } 122 123 @Override /* Overridden from Builder */ 124 public Builder addBeanTypesXml(boolean value) { 125 super.addBeanTypesXml(value); 126 return this; 127 } 128 129 @Override /* Overridden from Builder */ 130 public Builder addKeyValueTableHeaders() { 131 super.addKeyValueTableHeaders(); 132 return this; 133 } 134 135 @Override /* Overridden from Builder */ 136 public Builder addKeyValueTableHeaders(boolean value) { 137 super.addKeyValueTableHeaders(value); 138 return this; 139 } 140 141 @Override /* Overridden from Builder */ 142 public Builder addNamespaceUrisToRoot() { 143 super.addNamespaceUrisToRoot(); 144 return this; 145 } 146 147 @Override /* Overridden from Builder */ 148 public Builder addNamespaceUrisToRoot(boolean value) { 149 super.addNamespaceUrisToRoot(value); 150 return this; 151 } 152 153 @Override /* Overridden from Builder */ 154 public Builder addRootType() { 155 super.addRootType(); 156 return this; 157 } 158 159 @Override /* Overridden from Builder */ 160 public Builder addRootType(boolean value) { 161 super.addRootType(value); 162 return this; 163 } 164 165 @Override /* Overridden from Builder */ 166 public Builder annotations(Annotation...values) { 167 super.annotations(values); 168 return this; 169 } 170 171 @Override /* Overridden from Builder */ 172 public Builder apply(AnnotationWorkList work) { 173 super.apply(work); 174 return this; 175 } 176 177 @Override /* Overridden from Builder */ 178 public Builder applyAnnotations(Class<?>...from) { 179 super.applyAnnotations(from); 180 return this; 181 } 182 183 @Override /* Overridden from Builder */ 184 public Builder applyAnnotations(Object...from) { 185 super.applyAnnotations(from); 186 return this; 187 } 188 189 @Override /* Overridden from Builder */ 190 public Builder beanClassVisibility(Visibility value) { 191 super.beanClassVisibility(value); 192 return this; 193 } 194 195 @Override /* Overridden from Builder */ 196 public Builder beanConstructorVisibility(Visibility value) { 197 super.beanConstructorVisibility(value); 198 return this; 199 } 200 201 @Override /* Overridden from Builder */ 202 public Builder beanContext(BeanContext value) { 203 super.beanContext(value); 204 return this; 205 } 206 207 @Override /* Overridden from Builder */ 208 public Builder beanContext(BeanContext.Builder value) { 209 super.beanContext(value); 210 return this; 211 } 212 213 @Override /* Overridden from Builder */ 214 public Builder beanDictionary(java.lang.Class<?>...values) { 215 super.beanDictionary(values); 216 return this; 217 } 218 219 @Override /* Overridden from Builder */ 220 public Builder beanFieldVisibility(Visibility value) { 221 super.beanFieldVisibility(value); 222 return this; 223 } 224 225 @Override /* Overridden from Builder */ 226 public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.BeanInterceptor<?>> value) { 227 super.beanInterceptor(on, value); 228 return this; 229 } 230 231 @Override /* Overridden from Builder */ 232 public Builder beanMapPutReturnsOldValue() { 233 super.beanMapPutReturnsOldValue(); 234 return this; 235 } 236 237 @Override /* Overridden from Builder */ 238 public Builder beanMethodVisibility(Visibility value) { 239 super.beanMethodVisibility(value); 240 return this; 241 } 242 243 @Override /* Overridden from Builder */ 244 public Builder beanProperties(Class<?> beanClass, String properties) { 245 super.beanProperties(beanClass, properties); 246 return this; 247 } 248 249 @Override /* Overridden from Builder */ 250 public Builder beanProperties(Map<String,Object> values) { 251 super.beanProperties(values); 252 return this; 253 } 254 255 @Override /* Overridden from Builder */ 256 public Builder beanProperties(String beanClassName, String properties) { 257 super.beanProperties(beanClassName, properties); 258 return this; 259 } 260 261 @Override /* Overridden from Builder */ 262 public Builder beanPropertiesExcludes(Class<?> beanClass, String properties) { 263 super.beanPropertiesExcludes(beanClass, properties); 264 return this; 265 } 266 267 @Override /* Overridden from Builder */ 268 public Builder beanPropertiesExcludes(Map<String,Object> values) { 269 super.beanPropertiesExcludes(values); 270 return this; 271 } 272 273 @Override /* Overridden from Builder */ 274 public Builder beanPropertiesExcludes(String beanClassName, String properties) { 275 super.beanPropertiesExcludes(beanClassName, properties); 276 return this; 277 } 278 279 @Override /* Overridden from Builder */ 280 public Builder beanPropertiesReadOnly(Class<?> beanClass, String properties) { 281 super.beanPropertiesReadOnly(beanClass, properties); 282 return this; 283 } 284 285 @Override /* Overridden from Builder */ 286 public Builder beanPropertiesReadOnly(Map<String,Object> values) { 287 super.beanPropertiesReadOnly(values); 288 return this; 289 } 290 291 @Override /* Overridden from Builder */ 292 public Builder beanPropertiesReadOnly(String beanClassName, String properties) { 293 super.beanPropertiesReadOnly(beanClassName, properties); 294 return this; 295 } 296 297 @Override /* Overridden from Builder */ 298 public Builder beanPropertiesWriteOnly(Class<?> beanClass, String properties) { 299 super.beanPropertiesWriteOnly(beanClass, properties); 300 return this; 301 } 302 303 @Override /* Overridden from Builder */ 304 public Builder beanPropertiesWriteOnly(Map<String,Object> values) { 305 super.beanPropertiesWriteOnly(values); 306 return this; 307 } 308 309 @Override /* Overridden from Builder */ 310 public Builder beanPropertiesWriteOnly(String beanClassName, String properties) { 311 super.beanPropertiesWriteOnly(beanClassName, properties); 312 return this; 313 } 314 315 @Override /* Overridden from Builder */ 316 public Builder beansRequireDefaultConstructor() { 317 super.beansRequireDefaultConstructor(); 318 return this; 319 } 320 321 @Override /* Overridden from Builder */ 322 public Builder beansRequireSerializable() { 323 super.beansRequireSerializable(); 324 return this; 325 } 326 327 @Override /* Overridden from Builder */ 328 public Builder beansRequireSettersForGetters() { 329 super.beansRequireSettersForGetters(); 330 return this; 331 } 332 333 @Override /* Overridden from Context.Builder */ 334 public HtmlStrippedDocSerializer build() { 335 return cache(CACHE).build(HtmlStrippedDocSerializer.class); 336 } 337 338 @Override /* Overridden from Builder */ 339 public Builder cache(Cache<HashKey,? extends org.apache.juneau.Context> value) { 340 super.cache(value); 341 return this; 342 } 343 344 @Override /* Overridden from Context.Builder */ 345 public Builder copy() { 346 return new Builder(this); 347 } 348 349 @Override /* Overridden from Builder */ 350 public Builder debug() { 351 super.debug(); 352 return this; 353 } 354 355 @Override /* Overridden from Builder */ 356 public Builder debug(boolean value) { 357 super.debug(value); 358 return this; 359 } 360 361 @Override /* Overridden from Builder */ 362 public Builder defaultNamespace(Namespace value) { 363 super.defaultNamespace(value); 364 return this; 365 } 366 367 @Override /* Overridden from Builder */ 368 public Builder detectRecursions() { 369 super.detectRecursions(); 370 return this; 371 } 372 373 @Override /* Overridden from Builder */ 374 public Builder detectRecursions(boolean value) { 375 super.detectRecursions(value); 376 return this; 377 } 378 379 @Override /* Overridden from Builder */ 380 public Builder dictionaryOn(Class<?> on, java.lang.Class<?>...values) { 381 super.dictionaryOn(on, values); 382 return this; 383 } 384 385 @Override /* Overridden from Builder */ 386 public Builder disableAutoDetectNamespaces() { 387 super.disableAutoDetectNamespaces(); 388 return this; 389 } 390 391 @Override /* Overridden from Builder */ 392 public Builder disableAutoDetectNamespaces(boolean value) { 393 super.disableAutoDetectNamespaces(value); 394 return this; 395 } 396 397 @Override /* Overridden from Builder */ 398 public Builder disableBeansRequireSomeProperties() { 399 super.disableBeansRequireSomeProperties(); 400 return this; 401 } 402 403 @Override /* Overridden from Builder */ 404 public Builder disableDetectLabelParameters() { 405 super.disableDetectLabelParameters(); 406 return this; 407 } 408 409 @Override /* Overridden from Builder */ 410 public Builder disableDetectLabelParameters(boolean value) { 411 super.disableDetectLabelParameters(value); 412 return this; 413 } 414 415 @Override /* Overridden from Builder */ 416 public Builder disableDetectLinksInStrings() { 417 super.disableDetectLinksInStrings(); 418 return this; 419 } 420 421 @Override /* Overridden from Builder */ 422 public Builder disableDetectLinksInStrings(boolean value) { 423 super.disableDetectLinksInStrings(value); 424 return this; 425 } 426 427 @Override /* Overridden from Builder */ 428 public Builder disableIgnoreMissingSetters() { 429 super.disableIgnoreMissingSetters(); 430 return this; 431 } 432 433 @Override /* Overridden from Builder */ 434 public Builder disableIgnoreTransientFields() { 435 super.disableIgnoreTransientFields(); 436 return this; 437 } 438 439 @Override /* Overridden from Builder */ 440 public Builder disableIgnoreUnknownNullBeanProperties() { 441 super.disableIgnoreUnknownNullBeanProperties(); 442 return this; 443 } 444 445 @Override /* Overridden from Builder */ 446 public Builder disableInterfaceProxies() { 447 super.disableInterfaceProxies(); 448 return this; 449 } 450 451 @Override /* Overridden from Builder */ 452 public Builder enableNamespaces() { 453 super.enableNamespaces(); 454 return this; 455 } 456 457 @Override /* Overridden from Builder */ 458 public Builder enableNamespaces(boolean value) { 459 super.enableNamespaces(value); 460 return this; 461 } 462 463 @Override /* Overridden from Builder */ 464 public <T> Builder example(Class<T> pojoClass, String json) { 465 super.example(pojoClass, json); 466 return this; 467 } 468 469 @Override /* Overridden from Builder */ 470 public <T> Builder example(Class<T> pojoClass, T o) { 471 super.example(pojoClass, o); 472 return this; 473 } 474 475 @Override /* Overridden from Builder */ 476 public Builder fileCharset(Charset value) { 477 super.fileCharset(value); 478 return this; 479 } 480 481 @Override /* Overridden from Builder */ 482 public Builder findFluentSetters() { 483 super.findFluentSetters(); 484 return this; 485 } 486 487 @Override /* Overridden from Builder */ 488 public Builder findFluentSetters(Class<?> on) { 489 super.findFluentSetters(on); 490 return this; 491 } 492 493 @Override /* Overridden from Context.Builder */ 494 public HashKey hashKey() { 495 return super.hashKey(); 496 } 497 498 @Override /* Overridden from Builder */ 499 public Builder ignoreInvocationExceptionsOnGetters() { 500 super.ignoreInvocationExceptionsOnGetters(); 501 return this; 502 } 503 504 @Override /* Overridden from Builder */ 505 public Builder ignoreInvocationExceptionsOnSetters() { 506 super.ignoreInvocationExceptionsOnSetters(); 507 return this; 508 } 509 510 @Override /* Overridden from Builder */ 511 public Builder ignoreRecursions() { 512 super.ignoreRecursions(); 513 return this; 514 } 515 516 @Override /* Overridden from Builder */ 517 public Builder ignoreRecursions(boolean value) { 518 super.ignoreRecursions(value); 519 return this; 520 } 521 522 @Override /* Overridden from Builder */ 523 public Builder ignoreUnknownBeanProperties() { 524 super.ignoreUnknownBeanProperties(); 525 return this; 526 } 527 528 @Override /* Overridden from Builder */ 529 public Builder ignoreUnknownEnumValues() { 530 super.ignoreUnknownEnumValues(); 531 return this; 532 } 533 534 @Override /* Overridden from Builder */ 535 public Builder impl(Context value) { 536 super.impl(value); 537 return this; 538 } 539 540 @Override /* Overridden from Builder */ 541 public Builder implClass(Class<?> interfaceClass, Class<?> implClass) { 542 super.implClass(interfaceClass, implClass); 543 return this; 544 } 545 546 @Override /* Overridden from Builder */ 547 public Builder implClasses(Map<Class<?>,Class<?>> values) { 548 super.implClasses(values); 549 return this; 550 } 551 552 @Override /* Overridden from Builder */ 553 public Builder initialDepth(int value) { 554 super.initialDepth(value); 555 return this; 556 } 557 558 @Override /* Overridden from Builder */ 559 public Builder interfaceClass(Class<?> on, Class<?> value) { 560 super.interfaceClass(on, value); 561 return this; 562 } 563 564 @Override /* Overridden from Builder */ 565 public Builder interfaces(java.lang.Class<?>...value) { 566 super.interfaces(value); 567 return this; 568 } 569 570 @Override /* Overridden from Builder */ 571 public Builder keepNullProperties() { 572 super.keepNullProperties(); 573 return this; 574 } 575 576 @Override /* Overridden from Builder */ 577 public Builder keepNullProperties(boolean value) { 578 super.keepNullProperties(value); 579 return this; 580 } 581 582 @Override /* Overridden from Builder */ 583 public Builder labelParameter(String value) { 584 super.labelParameter(value); 585 return this; 586 } 587 588 @Override /* Overridden from Builder */ 589 public Builder listener(Class<? extends org.apache.juneau.serializer.SerializerListener> value) { 590 super.listener(value); 591 return this; 592 } 593 594 @Override /* Overridden from Builder */ 595 public Builder locale(Locale value) { 596 super.locale(value); 597 return this; 598 } 599 600 @Override /* Overridden from Builder */ 601 public Builder maxDepth(int value) { 602 super.maxDepth(value); 603 return this; 604 } 605 606 @Override /* Overridden from Builder */ 607 public Builder maxIndent(int value) { 608 super.maxIndent(value); 609 return this; 610 } 611 612 @Override /* Overridden from Builder */ 613 public Builder mediaType(MediaType value) { 614 super.mediaType(value); 615 return this; 616 } 617 618 @Override /* Overridden from Builder */ 619 public Builder namespaces(Namespace...values) { 620 super.namespaces(values); 621 return this; 622 } 623 624 @Override /* Overridden from Builder */ 625 public Builder notBeanClasses(java.lang.Class<?>...values) { 626 super.notBeanClasses(values); 627 return this; 628 } 629 630 @Override /* Overridden from Builder */ 631 public Builder notBeanPackages(String...values) { 632 super.notBeanPackages(values); 633 return this; 634 } 635 636 @Override /* Overridden from Builder */ 637 public Builder ns() { 638 super.ns(); 639 return this; 640 } 641 642 @Override /* Overridden from Builder */ 643 public Builder produces(String value) { 644 super.produces(value); 645 return this; 646 } 647 648 @Override /* Overridden from Builder */ 649 public Builder propertyNamer(Class<?> on, Class<? extends org.apache.juneau.PropertyNamer> value) { 650 super.propertyNamer(on, value); 651 return this; 652 } 653 654 @Override /* Overridden from Builder */ 655 public Builder propertyNamer(Class<? extends org.apache.juneau.PropertyNamer> value) { 656 super.propertyNamer(value); 657 return this; 658 } 659 660 @Override /* Overridden from Builder */ 661 public Builder quoteChar(char value) { 662 super.quoteChar(value); 663 return this; 664 } 665 666 @Override /* Overridden from Builder */ 667 public Builder quoteCharOverride(char value) { 668 super.quoteCharOverride(value); 669 return this; 670 } 671 672 @Override /* Overridden from Builder */ 673 public Builder sortCollections() { 674 super.sortCollections(); 675 return this; 676 } 677 678 @Override /* Overridden from Builder */ 679 public Builder sortCollections(boolean value) { 680 super.sortCollections(value); 681 return this; 682 } 683 684 @Override /* Overridden from Builder */ 685 public Builder sortMaps() { 686 super.sortMaps(); 687 return this; 688 } 689 690 @Override /* Overridden from Builder */ 691 public Builder sortMaps(boolean value) { 692 super.sortMaps(value); 693 return this; 694 } 695 696 @Override /* Overridden from Builder */ 697 public Builder sortProperties() { 698 super.sortProperties(); 699 return this; 700 } 701 702 @Override /* Overridden from Builder */ 703 public Builder sortProperties(java.lang.Class<?>...on) { 704 super.sortProperties(on); 705 return this; 706 } 707 708 @Override /* Overridden from Builder */ 709 public Builder sq() { 710 super.sq(); 711 return this; 712 } 713 714 @Override /* Overridden from Builder */ 715 public Builder stopClass(Class<?> on, Class<?> value) { 716 super.stopClass(on, value); 717 return this; 718 } 719 720 @Override /* Overridden from Builder */ 721 public Builder streamCharset(Charset value) { 722 super.streamCharset(value); 723 return this; 724 } 725 726 @Override /* Overridden from Builder */ 727 public <T,S> Builder swap(Class<T> normalClass, Class<S> swappedClass, ThrowingFunction<T,S> swapFunction) { 728 super.swap(normalClass, swappedClass, swapFunction); 729 return this; 730 } 731 732 @Override /* Overridden from Builder */ 733 public <T,S> Builder swap(Class<T> normalClass, Class<S> swappedClass, ThrowingFunction<T,S> swapFunction, ThrowingFunction<S,T> unswapFunction) { 734 super.swap(normalClass, swappedClass, swapFunction, unswapFunction); 735 return this; 736 } 737 738 @Override /* Overridden from Builder */ 739 public Builder swaps(Class<?>...values) { 740 super.swaps(values); 741 return this; 742 } 743 744 @Override /* Overridden from Builder */ 745 public Builder swaps(Object...values) { 746 super.swaps(values); 747 return this; 748 } 749 750 @Override /* Overridden from Builder */ 751 public Builder timeZone(TimeZone value) { 752 super.timeZone(value); 753 return this; 754 } 755 756 @Override /* Overridden from Builder */ 757 public Builder trimEmptyCollections() { 758 super.trimEmptyCollections(); 759 return this; 760 } 761 762 @Override /* Overridden from Builder */ 763 public Builder trimEmptyCollections(boolean value) { 764 super.trimEmptyCollections(value); 765 return this; 766 } 767 768 @Override /* Overridden from Builder */ 769 public Builder trimEmptyMaps() { 770 super.trimEmptyMaps(); 771 return this; 772 } 773 774 @Override /* Overridden from Builder */ 775 public Builder trimEmptyMaps(boolean value) { 776 super.trimEmptyMaps(value); 777 return this; 778 } 779 780 @Override /* Overridden from Builder */ 781 public Builder trimStrings() { 782 super.trimStrings(); 783 return this; 784 } 785 786 @Override /* Overridden from Builder */ 787 public Builder trimStrings(boolean value) { 788 super.trimStrings(value); 789 return this; 790 } 791 792 @Override /* Overridden from Builder */ 793 public Builder type(Class<? extends org.apache.juneau.Context> value) { 794 super.type(value); 795 return this; 796 } 797 798 @Override /* Overridden from Builder */ 799 public Builder typeName(Class<?> on, String value) { 800 super.typeName(on, value); 801 return this; 802 } 803 804 @Override /* Overridden from Builder */ 805 public Builder typePropertyName(Class<?> on, String value) { 806 super.typePropertyName(on, value); 807 return this; 808 } 809 810 @Override /* Overridden from Builder */ 811 public Builder typePropertyName(String value) { 812 super.typePropertyName(value); 813 return this; 814 } 815 816 @Override /* Overridden from Builder */ 817 public Builder uriAnchorText(AnchorText value) { 818 super.uriAnchorText(value); 819 return this; 820 } 821 822 @Override /* Overridden from Builder */ 823 public Builder uriContext(UriContext value) { 824 super.uriContext(value); 825 return this; 826 } 827 828 @Override /* Overridden from Builder */ 829 public Builder uriRelativity(UriRelativity value) { 830 super.uriRelativity(value); 831 return this; 832 } 833 834 @Override /* Overridden from Builder */ 835 public Builder uriResolution(UriResolution value) { 836 super.uriResolution(value); 837 return this; 838 } 839 840 @Override /* Overridden from Builder */ 841 public Builder useEnumNames() { 842 super.useEnumNames(); 843 return this; 844 } 845 846 @Override /* Overridden from Builder */ 847 public Builder useJavaBeanIntrospector() { 848 super.useJavaBeanIntrospector(); 849 return this; 850 } 851 852 @Override /* Overridden from Builder */ 853 public Builder useWhitespace() { 854 super.useWhitespace(); 855 return this; 856 } 857 858 @Override /* Overridden from Builder */ 859 public Builder useWhitespace(boolean value) { 860 super.useWhitespace(value); 861 return this; 862 } 863 864 @Override /* Overridden from Builder */ 865 public Builder ws() { 866 super.ws(); 867 return this; 868 } 869 } 870 871 /** Default serializer, all default settings. */ 872 public static final HtmlStrippedDocSerializer DEFAULT = new HtmlStrippedDocSerializer(create()); 873 874 /** 875 * Creates a new builder for this object. 876 * 877 * @return A new builder. 878 */ 879 public static Builder create() { 880 return new Builder(); 881 } 882 883 /** 884 * Constructor. 885 * 886 * @param builder The builder for this object. 887 */ 888 public HtmlStrippedDocSerializer(Builder builder) { 889 super(builder); 890 } 891 892 @Override /* Overridden from Context */ 893 public Builder copy() { 894 return new Builder(this); 895 } 896 897 @Override /* Overridden from Context */ 898 public HtmlStrippedDocSerializerSession.Builder createSession() { 899 return HtmlStrippedDocSerializerSession.create(this); 900 } 901 902 @Override /* Overridden from Context */ 903 public HtmlStrippedDocSerializerSession getSession() { return createSession().build(); } 904}