From 129be6a1379042cabf29ccd636e62e9bc1157189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Kohlschu=CC=88tter?= Date: Sun, 31 Dec 2023 13:48:01 +0100 Subject: [PATCH] Site checkin for 1.0.2-SNAPSHOT --- checkstyle.html | 157 ++ cpd.html | 131 + ...s => apache-maven-fluido-2.0.0-M8.min.css} | 2 +- dependencies.html | 296 +++ dependency-convergence.html | 163 +- dependency-info.html | 110 +- dependency-management.html | 184 +- dependency-updates-report.html | 1063 +++++++++ distribution-management.html | 82 +- images/close.gif | Bin 0 -> 279 bytes index.html | 141 +- issue-management.html | 84 +- .../apache-maven-fluido-2.0.0-M8.min.js | 496 ++-- license-plugin-report.xml | 5 + licenses.html | 84 +- modules.html | 82 +- plugin-management.html | 230 +- plugin-updates-report.html | 1289 ++++++++++ plugins.html | 200 +- pmd.html | 344 +++ project-info.html | 137 +- project-reports.html | 153 ++ property-updates-report.html | 474 ++++ scm.html | 92 +- stringhold-codecoverage/checkstyle.html | 135 ++ .../css/apache-maven-fluido-2.0.0-M8.min.css | 2 +- stringhold-codecoverage/dependencies.html | 323 ++- stringhold-codecoverage/dependency-info.html | 60 +- .../dependency-management.html | 138 +- .../dependency-updates-report.html | 1135 +++++++++ .../distribution-management.html | 36 +- stringhold-codecoverage/index.html | 36 +- stringhold-codecoverage/issue-management.html | 38 +- .../jacoco-aggregate/index.html | 2 +- .../jacoco-aggregate/jacoco-resources/sort.js | 2 +- .../jacoco-aggregate/jacoco-sessions.html | 2 +- .../jacoco-aggregate/jacoco.csv | 22 +- .../jacoco-aggregate/jacoco.xml | 2 +- .../AbstractStringHolder.html | 1 + .../AbstractStringHolder.java.html | 964 ++++++++ .../AsyncStringHolderSequence.html | 2 +- .../AsyncStringHolderSequence.java.html | 18 +- .../CachedIOSupplier.html | 2 +- .../CachedIOSupplier.java.html | 4 +- .../CharSequenceReleaseShim.html | 2 +- .../CharSequenceReleaseShim.java.html | 4 +- .../CommonStrings.html | 2 +- .../CommonStrings.java.html | 6 +- .../ConditionalStringHolder.html | 1 + .../ConditionalStringHolder.java.html | 308 +++ .../FixedLengthSuppliedStringHolder.html | 2 +- .../FixedLengthSuppliedStringHolder.java.html | 4 +- .../HasExpectedLength.html | 2 +- .../HasExpectedLength.java.html | 4 +- .../HasKnownLength.html | 2 +- .../HasKnownLength.java.html | 4 +- .../HasLength.html | 2 +- .../HasLength.java.html | 4 +- .../HasMinimumLength.html | 2 +- .../HasMinimumLength.java.html | 4 +- .../IOExceptionHandler$ExceptionResponse.html | 2 +- .../IOExceptionHandler.java.html | 6 +- .../LazyInitReader$KickstartPlaceholder.html | 2 +- .../LazyInitReader.html | 2 +- .../LazyInitReader.java.html | 4 +- ...eShim$KickstartPlaceholderReleaseShim.html | 2 +- .../LazyInitReaderReleaseShim.html | 2 +- .../LazyInitReaderReleaseShim.java.html | 4 +- .../LimitedStringHolderScope.html | 2 +- .../LimitedStringHolderScope.java.html | 73 +- .../ReaderShim.html | 1 + .../ReaderShim.java.html | 27 + .../ReaderStringHolder.html | 2 +- .../ReaderStringHolder.java.html | 6 +- .../SimpleStringHolder.html | 2 +- .../SimpleStringHolder.java.html | 16 +- .../StringHolder.html | 2 +- .../StringHolder.java.html | 1274 +++------- .../StringHolderScope$1.html | 2 +- .../StringHolderScope.html | 2 +- .../StringHolderScope.java.html | 17 +- ...ngHolderSequence$StringSequenceReader.html | 2 +- .../StringHolderSequence.html | 2 +- .../StringHolderSequence.java.html | 579 ++--- .../StringOnlySequence.html | 2 +- .../StringOnlySequence.java.html | 9 +- .../SuppliedStringHolder$1.html | 2 +- .../SuppliedStringHolder.html | 2 +- .../SuppliedStringHolder.java.html | 232 +- .../com.kohlschutter.stringhold/index.html | 2 +- .../index.source.html | 2 +- .../stringhold-common/index.html | 2 +- .../Conditional.html | 1 + .../Conditional.java.html | 134 ++ .../Conditionally.html | 1 + .../Conditionally.java.html | 72 + .../StringHolderRenderTransformer$1.html | 2 +- .../StringHolderRenderTransformer.html | 2 +- .../StringHolderRenderTransformer.java.html | 135 +- .../StringholdLiqpHelper.html | 1 + .../StringholdLiqpHelper.java.html | 80 + .../StringsOnlyRenderTransformer$1.html | 2 +- .../StringsOnlyRenderTransformer.html | 2 +- .../StringsOnlyRenderTransformer.java.html | 44 +- .../index.html | 2 +- .../index.source.html | 2 +- .../stringhold-liqp/index.html | 2 +- .../js/apache-maven-fluido-2.0.0-M8.min.js | 496 ++-- .../license-plugin-report.xml | 5 + stringhold-codecoverage/licenses.html | 38 +- .../plugin-management.html | 184 +- .../plugin-updates-report.html | 1267 ++++++++++ stringhold-codecoverage/plugins.html | 146 +- stringhold-codecoverage/project-info.html | 86 +- stringhold-codecoverage/project-reports.html | 125 + .../property-updates-report.html | 452 ++++ stringhold-codecoverage/scm.html | 46 +- stringhold-codecoverage/summary.html | 40 +- stringhold-codecoverage/team.html | 38 +- .../apidocs/allclasses-index.html | 33 +- .../apidocs/allpackages-index.html | 9 +- .../stringhold/AbstractStringHolder.html | 1294 ++++++++++ .../stringhold/AsyncStringHolderSequence.html | 328 --- .../stringhold/CachedIOSupplier.html | 9 +- .../stringhold/HasExpectedLength.html | 13 +- .../stringhold/HasKnownLength.html | 9 +- .../kohlschutter/stringhold/HasLength.html | 13 +- .../stringhold/HasMinimumLength.html | 13 +- .../IOExceptionHandler.ExceptionResponse.html | 9 +- .../stringhold/IOExceptionHandler.html | 9 +- .../kohlschutter/stringhold/IOSupplier.html | 9 +- .../stringhold/LazyInitReader.html | 9 +- .../stringhold/LimitedStringHolderScope.html | 88 +- .../kohlschutter/stringhold/StringHolder.html | 1392 +++++------ .../stringhold/StringHolderScope.html | 66 +- .../stringhold/StringHolderSequence.html | 272 ++- .../stringhold/StringOnlySequence.html | 65 +- .../class-use/AbstractStringHolder.html | 95 + .../class-use/CachedIOSupplier.html | 9 +- .../class-use/HasExpectedLength.html | 35 +- .../stringhold/class-use/HasKnownLength.html | 9 +- .../stringhold/class-use/HasLength.html | 35 +- .../class-use/HasMinimumLength.html | 35 +- .../IOExceptionHandler.ExceptionResponse.html | 9 +- .../class-use/IOExceptionHandler.html | 37 +- .../stringhold/class-use/IOSupplier.html | 37 +- .../stringhold/class-use/LazyInitReader.html | 9 +- .../class-use/LimitedStringHolderScope.html | 21 +- .../stringhold/class-use/StringHolder.html | 231 +- .../class-use/StringHolderScope.html | 36 +- .../class-use/StringHolderSequence.html | 60 +- .../class-use/StringOnlySequence.html | 29 +- .../stringhold/package-summary.html | 29 +- .../kohlschutter/stringhold/package-tree.html | 43 +- .../kohlschutter/stringhold/package-use.html | 61 +- stringhold-common/apidocs/help-doc.html | 11 +- stringhold-common/apidocs/index-all.html | 450 ++-- stringhold-common/apidocs/index.html | 6 +- .../apidocs/jquery-ui.overrides.css | 35 - .../apidocs/legal/ASSEMBLY_EXCEPTION | 6 +- stringhold-common/apidocs/legal/jquery.md | 6 +- stringhold-common/apidocs/legal/jqueryUI.md | 2 +- stringhold-common/apidocs/link.svg | 31 + .../apidocs/member-search-index.js | 2 +- stringhold-common/apidocs/overview-tree.html | 47 +- .../apidocs/script-dir/jquery-3.6.0.min.js | 2 - .../apidocs/script-dir/jquery-3.6.1.min.js | 2 + .../apidocs/script-dir/jquery-ui.min.css | 2 +- .../apidocs/script-dir/jquery-ui.min.js | 4 +- stringhold-common/apidocs/script.js | 47 +- stringhold-common/apidocs/search-page.js | 21 +- stringhold-common/apidocs/search.html | 11 +- stringhold-common/apidocs/search.js | 61 +- stringhold-common/apidocs/stylesheet.css | 428 ++-- .../apidocs/type-search-index.js | 2 +- stringhold-common/checkstyle.html | 98 +- stringhold-common/cpd.html | 77 +- .../css/apache-maven-fluido-2.0.0-M8.min.css | 2 +- stringhold-common/dependencies.html | 348 +-- stringhold-common/dependency-info.html | 98 +- stringhold-common/dependency-management.html | 176 +- .../dependency-updates-report.html | 434 ++-- .../distribution-management.html | 74 +- stringhold-common/index.html | 74 +- stringhold-common/issue-management.html | 76 +- .../AbstractStringHolder.html | 1 + .../AbstractStringHolder.java.html | 964 ++++++++ .../AsyncStringHolderSequence.html | 2 +- .../AsyncStringHolderSequence.java.html | 18 +- .../CachedIOSupplier.html | 2 +- .../CachedIOSupplier.java.html | 4 +- .../CharSequenceReleaseShim.html | 2 +- .../CharSequenceReleaseShim.java.html | 4 +- .../CommonStrings.html | 2 +- .../CommonStrings.java.html | 6 +- .../ConditionalStringHolder.html | 1 + .../ConditionalStringHolder.java.html | 308 +++ .../FixedLengthSuppliedStringHolder.html | 2 +- .../FixedLengthSuppliedStringHolder.java.html | 4 +- .../HasExpectedLength.html | 2 +- .../HasExpectedLength.java.html | 4 +- .../HasKnownLength.html | 2 +- .../HasKnownLength.java.html | 4 +- .../HasLength.html | 2 +- .../HasLength.java.html | 4 +- .../HasMinimumLength.html | 2 +- .../HasMinimumLength.java.html | 4 +- .../IOExceptionHandler$ExceptionResponse.html | 2 +- .../IOExceptionHandler.java.html | 6 +- .../LazyInitReader$KickstartPlaceholder.html | 2 +- .../LazyInitReader.html | 2 +- .../LazyInitReader.java.html | 4 +- ...eShim$KickstartPlaceholderReleaseShim.html | 2 +- .../LazyInitReaderReleaseShim.html | 2 +- .../LazyInitReaderReleaseShim.java.html | 4 +- .../LimitedStringHolderScope.html | 2 +- .../LimitedStringHolderScope.java.html | 73 +- .../ReaderShim.html | 1 + .../ReaderShim.java.html | 27 + .../ReaderStringHolder.html | 2 +- .../ReaderStringHolder.java.html | 6 +- .../SimpleStringHolder.html | 2 +- .../SimpleStringHolder.java.html | 16 +- .../StringHolder.html | 2 +- .../StringHolder.java.html | 1274 +++------- .../StringHolderScope$1.html | 2 +- .../StringHolderScope.html | 2 +- .../StringHolderScope.java.html | 17 +- ...ngHolderSequence$StringSequenceReader.html | 2 +- .../StringHolderSequence.html | 2 +- .../StringHolderSequence.java.html | 579 ++--- .../StringOnlySequence.html | 2 +- .../StringOnlySequence.java.html | 9 +- .../SuppliedStringHolder$1.html | 2 +- .../SuppliedStringHolder.html | 2 +- .../SuppliedStringHolder.java.html | 232 +- .../com.kohlschutter.stringhold/index.html | 2 +- .../index.source.html | 2 +- stringhold-common/jacoco/index.html | 2 +- .../jacoco/jacoco-resources/sort.js | 2 +- stringhold-common/jacoco/jacoco-sessions.html | 2 +- stringhold-common/jacoco/jacoco.csv | 13 +- stringhold-common/jacoco/jacoco.xml | 2 +- .../js/apache-maven-fluido-2.0.0-M8.min.js | 496 ++-- stringhold-common/license-plugin-report.xml | 10 +- stringhold-common/licenses.html | 76 +- stringhold-common/plugin-management.html | 222 +- stringhold-common/plugin-updates-report.html | 736 +++--- stringhold-common/plugins.html | 168 +- stringhold-common/pmd.html | 231 +- stringhold-common/project-info.html | 122 +- stringhold-common/project-reports.html | 116 +- .../property-updates-report.html | 301 ++- stringhold-common/scm.html | 84 +- stringhold-common/spotbugs.html | 78 +- stringhold-common/summary.html | 78 +- stringhold-common/team.html | 76 +- .../xref-test/allclasses-frame.html | 2 + .../AsyncStringHolderSequenceTest.html | 40 +- .../stringhold/CachedIOSupplierTest.html | 2 +- .../kohlschutter/stringhold/CompareTest.html | 6 +- .../ConditionalStringHolderTest.html | 344 +++ .../stringhold/HasLengthTest.html | 2 +- .../stringhold/LazyInitReaderTest.html | 2 +- .../LimitedStringHolderScopeTest.html | 257 +- .../stringhold/ReaderShimTest.html | 61 + .../stringhold/ReaderStringHolderTest.html | 54 +- .../stringhold/SimpleStringHolderTest.html | 42 +- .../stringhold/StringHolderScopeTest.html | 729 +++--- .../stringhold/StringHolderSequenceTest.html | 1032 ++++---- .../stringhold/StringHolderTest.html | 231 +- .../stringhold/StringOnlySequenceTest.html | 50 +- .../stringhold/StringSequenceTest.html | 2 +- .../stringhold/SuppliedStringHolderTest.html | 14 +- .../stringhold/WrappedAppendable.html | 2 +- .../stringhold/WrappedCharSequence.html | 2 +- .../stringhold/package-frame.html | 8 +- .../stringhold/package-summary.html | 26 +- stringhold-common/xref-test/index.html | 2 +- .../xref-test/overview-frame.html | 4 +- .../xref-test/overview-summary.html | 8 +- stringhold-common/xref/allclasses-frame.html | 3 + .../stringhold/AbstractStringHolder.html | 976 ++++++++ .../stringhold/AsyncStringHolderSequence.html | 20 +- .../stringhold/CachedIOSupplier.html | 2 +- .../stringhold/CharSequenceReleaseShim.html | 2 +- .../stringhold/CommonStrings.html | 14 +- .../stringhold/ConditionalStringHolder.html | 320 +++ .../FixedLengthSuppliedStringHolder.html | 2 +- .../stringhold/HasExpectedLength.html | 2 +- .../stringhold/HasKnownLength.html | 2 +- .../kohlschutter/stringhold/HasLength.html | 2 +- .../stringhold/HasMinimumLength.html | 2 +- .../stringhold/IOExceptionHandler.html | 4 +- .../kohlschutter/stringhold/IOSupplier.html | 2 +- .../stringhold/LazyInitReader.html | 2 +- .../stringhold/LazyInitReaderReleaseShim.html | 2 +- .../stringhold/LimitedStringHolderScope.html | 277 +-- .../kohlschutter/stringhold/ReaderShim.html | 39 + .../stringhold/ReaderStringHolder.html | 4 +- .../stringhold/SimpleStringHolder.html | 36 +- .../kohlschutter/stringhold/StringHolder.html | 2118 ++++++----------- .../stringhold/StringHolderScope.html | 61 +- .../stringhold/StringHolderSequence.html | 1157 ++++----- .../stringhold/StringOnlySequence.html | 11 +- .../stringhold/SuppliedStringHolder.html | 434 ++-- .../stringhold/package-frame.html | 11 +- .../stringhold/package-summary.html | 53 +- stringhold-common/xref/index.html | 2 +- stringhold-common/xref/overview-frame.html | 4 +- stringhold-common/xref/overview-summary.html | 8 +- stringhold-liqp/apidocs/allclasses-index.html | 22 +- .../apidocs/allpackages-index.html | 8 +- .../stringhold/liqp/Conditional.html | 296 +++ .../stringhold/liqp/Conditionally.html | 230 ++ .../liqp/StringHolderRenderTransformer.html | 49 +- .../stringhold/liqp/StringholdLiqpHelper.html | 203 ++ .../liqp/StringsOnlyRenderTransformer.html | 8 +- .../liqp/class-use/Conditional.html | 33 +- .../liqp/class-use/Conditionally.html | 61 + .../StringHolderRenderTransformer.html | 18 +- .../liqp/class-use/StringholdLiqpHelper.html | 61 + .../StringsOnlyRenderTransformer.html | 8 +- .../stringhold/liqp/package-summary.html | 22 +- .../stringhold/liqp/package-tree.html | 27 +- .../stringhold/liqp/package-use.html | 8 +- stringhold-liqp/apidocs/help-doc.html | 10 +- stringhold-liqp/apidocs/index-all.html | 74 +- stringhold-liqp/apidocs/index.html | 5 +- .../apidocs/jquery-ui.overrides.css | 35 - .../apidocs/legal/ASSEMBLY_EXCEPTION | 6 +- stringhold-liqp/apidocs/legal/jquery.md | 6 +- stringhold-liqp/apidocs/legal/jqueryUI.md | 2 +- stringhold-liqp/apidocs/link.svg | 31 + .../apidocs/member-search-index.js | 2 +- stringhold-liqp/apidocs/overview-tree.html | 31 +- .../apidocs/script-dir/jquery-3.6.0.min.js | 2 - .../apidocs/script-dir/jquery-3.6.1.min.js | 2 + .../apidocs/script-dir/jquery-ui.min.css | 2 +- .../apidocs/script-dir/jquery-ui.min.js | 4 +- stringhold-liqp/apidocs/script.js | 47 +- stringhold-liqp/apidocs/search-page.js | 21 +- stringhold-liqp/apidocs/search.html | 10 +- stringhold-liqp/apidocs/search.js | 61 +- stringhold-liqp/apidocs/stylesheet.css | 428 ++-- stringhold-liqp/apidocs/type-search-index.js | 2 +- stringhold-liqp/checkstyle.html | 98 +- stringhold-liqp/cpd.html | 77 +- ...s => apache-maven-fluido-2.0.0-M8.min.css} | 2 +- stringhold-liqp/dependencies.html | 475 ++-- stringhold-liqp/dependency-info.html | 98 +- stringhold-liqp/dependency-management.html | 176 +- .../dependency-updates-report.html | 476 ++-- stringhold-liqp/distribution-management.html | 74 +- stringhold-liqp/index.html | 74 +- stringhold-liqp/issue-management.html | 76 +- .../Conditional.html | 1 + .../Conditional.java.html | 134 ++ .../Conditionally.html | 1 + .../Conditionally.java.html | 72 + .../StringHolderRenderTransformer$1.html | 2 +- .../StringHolderRenderTransformer.html | 2 +- .../StringHolderRenderTransformer.java.html | 135 +- .../StringholdLiqpHelper.html | 1 + .../StringholdLiqpHelper.java.html | 80 + .../StringsOnlyRenderTransformer$1.html | 2 +- .../StringsOnlyRenderTransformer.html | 2 +- .../StringsOnlyRenderTransformer.java.html | 44 +- .../index.html | 2 +- .../index.source.html | 2 +- stringhold-liqp/jacoco/index.html | 2 +- .../jacoco/jacoco-resources/sort.js | 2 +- stringhold-liqp/jacoco/jacoco-sessions.html | 2 +- stringhold-liqp/jacoco/jacoco.csv | 9 +- stringhold-liqp/jacoco/jacoco.xml | 2 +- .../js/apache-maven-fluido-2.0.0-M8.min.js | 496 ++-- stringhold-liqp/license-plugin-report.xml | 8 +- stringhold-liqp/licenses.html | 76 +- stringhold-liqp/plugin-management.html | 222 +- stringhold-liqp/plugin-updates-report.html | 736 +++--- stringhold-liqp/plugins.html | 168 +- stringhold-liqp/pmd.html | 102 +- stringhold-liqp/project-info.html | 122 +- stringhold-liqp/project-reports.html | 116 +- stringhold-liqp/property-updates-report.html | 334 ++- stringhold-liqp/scm.html | 84 +- stringhold-liqp/spotbugs.html | 78 +- stringhold-liqp/summary.html | 78 +- stringhold-liqp/team.html | 76 +- .../xref-test/allclasses-frame.html | 1 + .../stringhold/liqp/ConditionalTest.html | 166 ++ .../StringHolderRenderTransformerTest.html | 262 +- .../StringsOnlyRenderTransformerTest.html | 88 +- .../stringhold/liqp/package-frame.html | 5 +- .../stringhold/liqp/package-summary.html | 13 +- stringhold-liqp/xref-test/index.html | 2 +- stringhold-liqp/xref-test/overview-frame.html | 4 +- .../xref-test/overview-summary.html | 8 +- stringhold-liqp/xref/allclasses-frame.html | 3 + .../stringhold/liqp/Conditional.html | 146 ++ .../stringhold/liqp/Conditionally.html | 84 + .../liqp/StringHolderRenderTransformer.html | 281 ++- .../stringhold/liqp/StringholdLiqpHelper.html | 92 + .../liqp/StringsOnlyRenderTransformer.html | 118 +- .../stringhold/liqp/package-frame.html | 11 +- .../stringhold/liqp/package-summary.html | 21 +- stringhold-liqp/xref/index.html | 2 +- stringhold-liqp/xref/overview-frame.html | 4 +- stringhold-liqp/xref/overview-summary.html | 8 +- summary.html | 90 +- team.html | 84 +- 411 files changed, 29648 insertions(+), 15496 deletions(-) create mode 100644 checkstyle.html create mode 100644 cpd.html rename css/{apache-maven-fluido-2.0.0-M2.min.css => apache-maven-fluido-2.0.0-M8.min.css} (97%) create mode 100644 dependencies.html create mode 100644 dependency-updates-report.html create mode 100644 images/close.gif rename stringhold-common/js/apache-maven-fluido-2.0.0-M2.min.js => js/apache-maven-fluido-2.0.0-M8.min.js (52%) create mode 100644 license-plugin-report.xml create mode 100644 plugin-updates-report.html create mode 100644 pmd.html create mode 100644 project-reports.html create mode 100644 property-updates-report.html create mode 100644 stringhold-codecoverage/checkstyle.html rename stringhold-common/css/apache-maven-fluido-2.0.0-M2.min.css => stringhold-codecoverage/css/apache-maven-fluido-2.0.0-M8.min.css (97%) create mode 100644 stringhold-codecoverage/dependency-updates-report.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AbstractStringHolder.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AbstractStringHolder.java.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ConditionalStringHolder.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ConditionalStringHolder.java.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderShim.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderShim.java.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditional.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditional.java.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditionally.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditionally.java.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.html create mode 100644 stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.java.html rename js/apache-maven-fluido-2.0.0-M2.min.js => stringhold-codecoverage/js/apache-maven-fluido-2.0.0-M8.min.js (52%) create mode 100644 stringhold-codecoverage/license-plugin-report.xml create mode 100644 stringhold-codecoverage/plugin-updates-report.html create mode 100644 stringhold-codecoverage/project-reports.html create mode 100644 stringhold-codecoverage/property-updates-report.html create mode 100644 stringhold-common/apidocs/com/kohlschutter/stringhold/AbstractStringHolder.html delete mode 100644 stringhold-common/apidocs/com/kohlschutter/stringhold/AsyncStringHolderSequence.html create mode 100644 stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/AbstractStringHolder.html delete mode 100644 stringhold-common/apidocs/jquery-ui.overrides.css create mode 100644 stringhold-common/apidocs/link.svg delete mode 100644 stringhold-common/apidocs/script-dir/jquery-3.6.0.min.js create mode 100644 stringhold-common/apidocs/script-dir/jquery-3.6.1.min.js rename stringhold-codecoverage/css/apache-maven-fluido-2.0.0-M2.min.css => stringhold-common/css/apache-maven-fluido-2.0.0-M8.min.css (97%) create mode 100644 stringhold-common/jacoco/com.kohlschutter.stringhold/AbstractStringHolder.html create mode 100644 stringhold-common/jacoco/com.kohlschutter.stringhold/AbstractStringHolder.java.html create mode 100644 stringhold-common/jacoco/com.kohlschutter.stringhold/ConditionalStringHolder.html create mode 100644 stringhold-common/jacoco/com.kohlschutter.stringhold/ConditionalStringHolder.java.html create mode 100644 stringhold-common/jacoco/com.kohlschutter.stringhold/ReaderShim.html create mode 100644 stringhold-common/jacoco/com.kohlschutter.stringhold/ReaderShim.java.html rename stringhold-liqp/js/apache-maven-fluido-2.0.0-M2.min.js => stringhold-common/js/apache-maven-fluido-2.0.0-M8.min.js (52%) create mode 100644 stringhold-common/xref-test/com/kohlschutter/stringhold/ConditionalStringHolderTest.html create mode 100644 stringhold-common/xref-test/com/kohlschutter/stringhold/ReaderShimTest.html create mode 100644 stringhold-common/xref/com/kohlschutter/stringhold/AbstractStringHolder.html create mode 100644 stringhold-common/xref/com/kohlschutter/stringhold/ConditionalStringHolder.html create mode 100644 stringhold-common/xref/com/kohlschutter/stringhold/ReaderShim.html create mode 100644 stringhold-liqp/apidocs/com/kohlschutter/stringhold/liqp/Conditional.html create mode 100644 stringhold-liqp/apidocs/com/kohlschutter/stringhold/liqp/Conditionally.html create mode 100644 stringhold-liqp/apidocs/com/kohlschutter/stringhold/liqp/StringholdLiqpHelper.html rename stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/AsyncStringHolderSequence.html => stringhold-liqp/apidocs/com/kohlschutter/stringhold/liqp/class-use/Conditional.html (56%) create mode 100644 stringhold-liqp/apidocs/com/kohlschutter/stringhold/liqp/class-use/Conditionally.html create mode 100644 stringhold-liqp/apidocs/com/kohlschutter/stringhold/liqp/class-use/StringholdLiqpHelper.html delete mode 100644 stringhold-liqp/apidocs/jquery-ui.overrides.css create mode 100644 stringhold-liqp/apidocs/link.svg delete mode 100644 stringhold-liqp/apidocs/script-dir/jquery-3.6.0.min.js create mode 100644 stringhold-liqp/apidocs/script-dir/jquery-3.6.1.min.js rename stringhold-liqp/css/{apache-maven-fluido-2.0.0-M2.min.css => apache-maven-fluido-2.0.0-M8.min.css} (97%) create mode 100644 stringhold-liqp/jacoco/com.kohlschutter.stringhold.liqp/Conditional.html create mode 100644 stringhold-liqp/jacoco/com.kohlschutter.stringhold.liqp/Conditional.java.html create mode 100644 stringhold-liqp/jacoco/com.kohlschutter.stringhold.liqp/Conditionally.html create mode 100644 stringhold-liqp/jacoco/com.kohlschutter.stringhold.liqp/Conditionally.java.html create mode 100644 stringhold-liqp/jacoco/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.html create mode 100644 stringhold-liqp/jacoco/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.java.html rename stringhold-codecoverage/js/apache-maven-fluido-2.0.0-M2.min.js => stringhold-liqp/js/apache-maven-fluido-2.0.0-M8.min.js (52%) create mode 100644 stringhold-liqp/xref-test/com/kohlschutter/stringhold/liqp/ConditionalTest.html create mode 100644 stringhold-liqp/xref/com/kohlschutter/stringhold/liqp/Conditional.html create mode 100644 stringhold-liqp/xref/com/kohlschutter/stringhold/liqp/Conditionally.html create mode 100644 stringhold-liqp/xref/com/kohlschutter/stringhold/liqp/StringholdLiqpHelper.html diff --git a/checkstyle.html b/checkstyle.html new file mode 100644 index 0000000..6c3b68a --- /dev/null +++ b/checkstyle.html @@ -0,0 +1,157 @@ + + + + + + + + + + stringhold – Checkstyle Results + + + + + + + Fork me on GitHub +
+
+ + + +
+
+
+ + +
+
+
+

Checkstyle Results

+

The following document contains the results of Checkstyle 10.12.6 with /Users/ck/Entwicklung/workspace/stringhold/../coding-style/eclipse/checkstyle-configuration.xml ruleset.

+

Summary

+ + + + + + + + + + +
Files Info Warnings Errors
0000
+

Files

+ + + + + +
File I W E
+

Rules

+ + + + + +
CategoryRuleViolationsSeverity
+

Details

+
+
+
+
+ + + + \ No newline at end of file diff --git a/cpd.html b/cpd.html new file mode 100644 index 0000000..f1657fc --- /dev/null +++ b/cpd.html @@ -0,0 +1,131 @@ + + + + + + + + + + stringhold – CPD Results + + + + + + + Fork me on GitHub +
+
+ + + +
+
+
+ + +
+
+
+

CPD Results

+

The following document contains the results of PMD's CPD 6.55.0.

+

CPD found no problems in your source code.

+
+
+
+
+ + + + \ No newline at end of file diff --git a/css/apache-maven-fluido-2.0.0-M2.min.css b/css/apache-maven-fluido-2.0.0-M8.min.css similarity index 97% rename from css/apache-maven-fluido-2.0.0-M2.min.css rename to css/apache-maven-fluido-2.0.0-M8.min.css index caf32ee..217260f 100644 --- a/css/apache-maven-fluido-2.0.0-M2.min.css +++ b/css/apache-maven-fluido-2.0.0-M8.min.css @@ -14,7 +14,7 @@ * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media(max-width:767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.clear{clear:both;visibility:hidden}.clear hr{display:none}section>p,section>dt,section>table.table{margin-right:7px;margin-left:7px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{width:95%}.sidebar-nav .search-query{width:calc(100% - 30px)}body.topBarEnabled{padding-top:60px}body.topBarDisabled{padding-top:20px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.well{margin-bottom:10px}a.dropdown-toggle{cursor:pointer}h1>code,h2>code,h3>code,h4>code,h5>code{font-size:unset}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}/*! + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media(max-width:767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.clear{clear:both;visibility:hidden}.clear hr{display:none}section>p,section>dt,section>dl,section>table.table,section>div.verbatim{margin-right:7px;margin-left:7px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{width:95%}.sidebar-nav .search-query{width:calc(100% - 30px)}body.topBarEnabled{padding-top:43px}div.container-top,div.container-fluid-top{padding-top:10px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.well{margin-bottom:10px}a.dropdown-toggle{cursor:pointer}h1>code,h2>code,h3>code,h4>code,h5>code{font-size:unset}.table th,.table td{text-align:revert}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}/*! * "Fork me on GitHub" CSS ribbon v0.2.3 | MIT License * https://github.com/simonwhitaker/github-fork-ribbon-css */.github-fork-ribbon{width:12.1em;height:12.1em;position:absolute;overflow:hidden;top:0;right:0;z-index:9999;pointer-events:none;font-size:13px;text-decoration:none;text-indent:-999999px}.github-fork-ribbon.fixed{position:fixed}.github-fork-ribbon:hover,.github-fork-ribbon:active{background-color:rgba(0,0,0,0.0)}.github-fork-ribbon:before,.github-fork-ribbon:after{position:absolute;display:block;width:15.38em;height:1.54em;top:3.23em;right:-3.23em;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.github-fork-ribbon:before{content:"";padding:.38em 0;background-color:#a00;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,0.15)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-moz-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-ms-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-o-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,0.15));-webkit-box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);-moz-box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);pointer-events:auto}.github-fork-ribbon:after{content:attr(data-ribbon);color:#fff;font:700 1em "Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.54em;text-decoration:none;text-shadow:0 -.08em rgba(0,0,0,0.5);text-align:center;text-indent:0;padding:.15em 0;margin:.15em 0;border-width:.08em 0;border-style:dotted;border-color:#fff;border-color:rgba(255,255,255,0.7)}.github-fork-ribbon.left-top,.github-fork-ribbon.left-bottom{right:auto;left:0}.github-fork-ribbon.left-bottom,.github-fork-ribbon.right-bottom{top:auto;bottom:0}.github-fork-ribbon.left-top:before,.github-fork-ribbon.left-top:after,.github-fork-ribbon.left-bottom:before,.github-fork-ribbon.left-bottom:after{right:auto;left:-3.23em}.github-fork-ribbon.left-bottom:before,.github-fork-ribbon.left-bottom:after,.github-fork-ribbon.right-bottom:before,.github-fork-ribbon.right-bottom:after{top:auto;bottom:3.23em}.github-fork-ribbon.left-top:before,.github-fork-ribbon.left-top:after,.github-fork-ribbon.right-bottom:before,.github-fork-ribbon.right-bottom:after{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)} \ No newline at end of file diff --git a/dependencies.html b/dependencies.html new file mode 100644 index 0000000..736a04a --- /dev/null +++ b/dependencies.html @@ -0,0 +1,296 @@ + + + + + + + + + + stringhold – Project Dependencies + + + + + + + Fork me on GitHub +
+
+ + + +
+
+
+ + +
+
+
+

Project Dependencies

+

provided

+

The following is a list of provided dependencies for this project. These dependencies are required to compile the application, but should be provided by default when using the library:

+ + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicenses
com.kohlschuttercompiler-annotations1.6.6jarApache License, Version 2.0
+

Project Transitive Dependencies

+

The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.

+

provided

+

The following is a list of provided dependencies for this project. These dependencies are required to compile the application, but should be provided by default when using the library:

+ + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicenses
com.google.errorproneerror_prone_annotations2.23.0jarApache 2.0
org.eclipse.jdtorg.eclipse.jdt.annotation2.2.800jarEclipse Public License - v 2.0
+

Project Dependency Graph

+

Dependency Tree

+
+

Licenses

+

Apache 2.0: error-prone annotations

+

Apache License, Version 2.0: compiler-annotations, stringhold

+

Eclipse Public License - v 2.0: JDT Annotations for Enhanced Null Analysis

+

Dependency File Details

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FilenameSizeEntriesClassesPackagesJava VersionDebug Information
error_prone_annotations-2.23.0.jar16.8 kB392721.8Yes
compiler-annotations-1.6.6.jar7.1 kB25429No
org.eclipse.jdt.annotation-2.2.800.jar27.7 kB28611.8Yes
TotalSizeEntriesClassesPackagesJava VersionDebug Information
351.7 kB9237592
provided: 3provided: 51.7 kBprovided: 92provided: 37provided: 59provided: 2
+
+
+
+
+ + + + \ No newline at end of file diff --git a/dependency-convergence.html b/dependency-convergence.html index fa36387..68c9da3 100644 --- a/dependency-convergence.html +++ b/dependency-convergence.html @@ -2,37 +2,35 @@ - - stringhold – Reactor Dependency Convergence - + + stringhold – Reactor Dependency Convergence + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Reactor Dependency Convergence

- + - + - + - + -
@@ -96,22 +96,22 @@

Reactor Dependency Convergence

4
Number of dependencies (NOD):22
21
Number of unique artifacts (NOA):25
24
Number of version-conflicting artifacts (NOC): 3
Number of SNAPSHOT artifacts (NOS):3
0
Convergence (NOD/NOA):[Error] 88 %
[Error] 87 %
Ready for release (100% convergence and no SNAPSHOTS):[Error] Error
You do not have 100% convergence.
You have SNAPSHOT dependencies.
+[Error] Error
You do not have 100% convergence.

Dependencies used in modules

com.fasterxml.jackson.core:jackson-annotations

@@ -122,15 +122,15 @@

com.fasterxml.jackson.core:jackson-annotations

+
    +
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.2-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT:compile
       \- com.kohlschutter:liqp:jar:0.8.5.4:compile
          +- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.2:compile
          \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
             \- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.2:compile

  2. +
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT
    \- com.kohlschutter:liqp:jar:0.8.5.4:compile
       +- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.2:compile
       \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
          \- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.2:compile

2.13.2 -
    -
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.0-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT:compile
       \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
          +- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.2:compile
          \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
             \- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.2:compile

  2. -
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT
    \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
       +- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.2:compile
       \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
          \- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.2:compile

2.13.4 -
    -
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.0-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT:compile
       \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
          \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.1:compile
             \- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.4:compile

  2. -
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT
    \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
       \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.1:compile
          \- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.4:compile

+
    +
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.2-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT:compile
       \- com.kohlschutter:liqp:jar:0.8.5.4:compile
          \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.2:compile
             \- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.4:compile

  2. +
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT
    \- com.kohlschutter:liqp:jar:0.8.5.4:compile
       \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.2:compile
          \- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.4:compile

com.fasterxml.jackson.core:jackson-core

@@ -140,15 +140,15 @@

com.fasterxml.jackson.core:jackson-core

+
    +
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.2-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT:compile
       \- com.kohlschutter:liqp:jar:0.8.5.4:compile
          +- com.fasterxml.jackson.core:jackson-core:jar:2.13.2:compile
          \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
             \- com.fasterxml.jackson.core:jackson-core:jar:2.13.2:compile

  2. +
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT
    \- com.kohlschutter:liqp:jar:0.8.5.4:compile
       +- com.fasterxml.jackson.core:jackson-core:jar:2.13.2:compile
       \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
          \- com.fasterxml.jackson.core:jackson-core:jar:2.13.2:compile

2.13.2 -
    -
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.0-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT:compile
       \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
          +- com.fasterxml.jackson.core:jackson-core:jar:2.13.2:compile
          \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
             \- com.fasterxml.jackson.core:jackson-core:jar:2.13.2:compile

  2. -
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT
    \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
       +- com.fasterxml.jackson.core:jackson-core:jar:2.13.2:compile
       \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
          \- com.fasterxml.jackson.core:jackson-core:jar:2.13.2:compile

2.13.4 -
    -
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.0-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT:compile
       \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
          \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.1:compile
             \- com.fasterxml.jackson.core:jackson-core:jar:2.13.4:compile

  2. -
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT
    \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
       \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.1:compile
          \- com.fasterxml.jackson.core:jackson-core:jar:2.13.4:compile

+
    +
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.2-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT:compile
       \- com.kohlschutter:liqp:jar:0.8.5.4:compile
          \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.2:compile
             \- com.fasterxml.jackson.core:jackson-core:jar:2.13.4:compile

  2. +
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT
    \- com.kohlschutter:liqp:jar:0.8.5.4:compile
       \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.2:compile
          \- com.fasterxml.jackson.core:jackson-core:jar:2.13.4:compile

com.fasterxml.jackson.core:jackson-databind

@@ -158,48 +158,15 @@

com.fasterxml.jackson.core:jackson-databind

- - -
2.13.2 -
    -
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.0-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT:compile
       \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
          \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
             \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.2:compile

  2. -
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT
    \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
       \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
          \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.2:compile

2.13.4.1 -
    -
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.0-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT:compile
       \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
          \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.1:compile

  2. -
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT
    \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile
       \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.1:compile

-

com.kohlschutter:compiler-annotations

- - - -
[Error] - - - -
1.5.2-SNAPSHOT -
    -
  1. com.kohlschutter.stringhold:stringhold-common:jar:1.0.0-SNAPSHOT
    +- com.kohlschutter:compiler-annotations:jar:1.5.2-SNAPSHOT:provided
    \- com.kohlschutter:kohlschutter-util:jar:1.5.2-SNAPSHOT:compile
       \- com.kohlschutter:compiler-annotations:jar:1.5.2-SNAPSHOT:provided

-

com.kohlschutter:kohlschutter-util

- - - -
[Error] - - - -
1.5.2-SNAPSHOT -
    -
  1. com.kohlschutter.stringhold:stringhold-common:jar:1.0.0-SNAPSHOT
    \- com.kohlschutter:kohlschutter-util:jar:1.5.2-SNAPSHOT:compile

-

nl.big-o:liqp

- +
    +
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.2-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT:compile
       \- com.kohlschutter:liqp:jar:0.8.5.4:compile
          \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
             \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.2:compile

  2. +
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT
    \- com.kohlschutter:liqp:jar:0.8.5.4:compile
       \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.2:compile
          \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.2:compile

- -
[Error] - - - +
0.8.3.4-SNAPSHOT2.13.4.2 -
    -
  1. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.0-SNAPSHOT
    \- nl.big-o:liqp:jar:0.8.3.4-SNAPSHOT:compile

+
    +
  1. com.kohlschutter.stringhold:stringhold-codecoverage:pom:1.0.2-SNAPSHOT
    \- com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT:compile
       \- com.kohlschutter:liqp:jar:0.8.5.4:compile
          \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.2:compile

  2. +
  3. com.kohlschutter.stringhold:stringhold-liqp:jar:1.0.2-SNAPSHOT
    \- com.kohlschutter:liqp:jar:0.8.5.4:compile
       \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.2:compile

@@ -247,9 +214,9 @@

nl.big-o:liqp

\ No newline at end of file diff --git a/dependency-info.html b/dependency-info.html index 3308427..c028c3d 100644 --- a/dependency-info.html +++ b/dependency-info.html @@ -2,37 +2,35 @@ - - stringhold – Dependency Information - + + stringhold – Dependency Information + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Dependency Information

Apache Maven

-
+
<dependency>
   <groupId>com.kohlschutter.stringhold</groupId>
-  <artifactId>stringhold-parent</artifactId>
-  <version>1.0.0-SNAPSHOT</version>
+  <artifactId>stringhold</artifactId>
+  <version>1.0.2-SNAPSHOT</version>
   <type>pom</type>
 </dependency>

Apache Ivy

-
-
<dependency org="com.kohlschutter.stringhold" name="stringhold-parent" rev="1.0.0-SNAPSHOT">
-  <artifact name="stringhold-parent" type="pom" />
+
+
<dependency org="com.kohlschutter.stringhold" name="stringhold" rev="1.0.2-SNAPSHOT">
+  <artifact name="stringhold" type="pom" />
 </dependency>

Groovy Grape

-
+
@Grapes(
-@Grab(group='com.kohlschutter.stringhold', module='stringhold-parent', version='1.0.0-SNAPSHOT')
+@Grab(group='com.kohlschutter.stringhold', module='stringhold', version='1.0.2-SNAPSHOT')
 )

Gradle/Grails

-
-
compile 'com.kohlschutter.stringhold:stringhold-parent:1.0.0-SNAPSHOT'
+
+
implementation 'com.kohlschutter.stringhold:stringhold:1.0.2-SNAPSHOT'

Scala SBT

-
-
libraryDependencies += "com.kohlschutter.stringhold" % "stringhold-parent" % "1.0.0-SNAPSHOT"
+
+
libraryDependencies += "com.kohlschutter.stringhold" % "stringhold" % "1.0.2-SNAPSHOT"

Leiningen

-
-
[com.kohlschutter.stringhold/stringhold-parent "1.0.0-SNAPSHOT"]
+
+
[com.kohlschutter.stringhold/stringhold "1.0.2-SNAPSHOT"]
@@ -156,9 +156,9 @@

Leiningen

\ No newline at end of file diff --git a/dependency-management.html b/dependency-management.html index 0cdf954..df46c4a 100644 --- a/dependency-management.html +++ b/dependency-management.html @@ -2,37 +2,35 @@ - - stringhold – Project Dependency Management - + + stringhold – Project Dependency Management + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Project Dependency Management

compile

@@ -92,129 +92,147 @@

compile

Type License +com.google.errorprone +error_prone_annotations +2.23.0 +jar +Apache 2.0 + +com.google.errorprone +error_prone_core +2.23.0 +jar +Apache 2.0 + com.kohlschutter kohlschutter-test-util -1.5.2-SNAPSHOT +1.6.6 jar Apache License, Version 2.0 com.kohlschutter kohlschutter-util -1.5.2-SNAPSHOT +1.6.6 jar Apache License, Version 2.0 -org.eclipse.jdt -org.eclipse.jdt.annotation -2.2.700 +org.codehaus.mojo +animal-sniffer-annotations +1.23 jar -- +MIT license +org.eclipse.jdt +org.eclipse.jdt.annotation +2.2.800 +jar +Eclipse Public License - v 2.0 + org.junit.jupiter junit-jupiter -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.jupiter junit-jupiter-api -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.jupiter junit-jupiter-engine -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.jupiter junit-jupiter-migrationsupport -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.jupiter junit-jupiter-params -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-commons -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-console -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-engine -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-jfr -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-launcher -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-reporting -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-runner -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-suite -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-suite-api -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-suite-commons -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-suite-engine -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-testkit -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.vintage junit-vintage-engine -5.9.2 +5.10.1 jar Eclipse Public License v2.0

provided

@@ -229,7 +247,7 @@

provided

com.kohlschutter compiler-annotations -1.5.2-SNAPSHOT +1.6.6 jar Apache License, Version 2.0
@@ -279,9 +297,9 @@

provided

\ No newline at end of file diff --git a/dependency-updates-report.html b/dependency-updates-report.html new file mode 100644 index 0000000..f5a6278 --- /dev/null +++ b/dependency-updates-report.html @@ -0,0 +1,1063 @@ + + + + + + + + + + stringhold – Dependency Updates Report + + + + + + + Fork me on GitHub +
+
+ + + +
+
+
+ + +
+
+
+

Overview

+

This report summarizes newer versions that may be available for your project's various dependencies.

+ + + + + + + + + + + + + + + + + + + + + +
# of dependencies using the latest version available23
# of dependencies where the next version available is smaller than an incremental version update0
# of dependencies where the next version available is an incremental version update0
# of dependencies where the next version available is a minor version update2
# of dependencies where the next version available is a major version update0
+

Dependency Management

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest Major
com.google.errorproneerror_prone_annotations2.23.0jar2.24.0
com.google.errorproneerror_prone_core2.23.0jar2.24.0
com.kohlschuttercompiler-annotations1.6.6providedjar
com.kohlschutterkohlschutter-test-util1.6.6jar
com.kohlschutterkohlschutter-util1.6.6jar
org.codehaus.mojoanimal-sniffer-annotations1.23jar
org.eclipse.jdtorg.eclipse.jdt.annotation2.2.800jar
org.junit.jupiterjunit-jupiter5.10.1jar
org.junit.jupiterjunit-jupiter-api5.10.1jar
org.junit.jupiterjunit-jupiter-engine5.10.1jar
org.junit.jupiterjunit-jupiter-migrationsupport5.10.1jar
org.junit.jupiterjunit-jupiter-params5.10.1jar
org.junit.platformjunit-platform-commons1.10.1jar
org.junit.platformjunit-platform-console1.10.1jar
org.junit.platformjunit-platform-engine1.10.1jar
org.junit.platformjunit-platform-jfr1.10.1jar
org.junit.platformjunit-platform-launcher1.10.1jar
org.junit.platformjunit-platform-reporting1.10.1jar
org.junit.platformjunit-platform-runner1.10.1jar
org.junit.platformjunit-platform-suite1.10.1jar
org.junit.platformjunit-platform-suite-api1.10.1jar
org.junit.platformjunit-platform-suite-commons1.10.1jar
org.junit.platformjunit-platform-suite-engine1.10.1jar
org.junit.platformjunit-platform-testkit1.10.1jar
org.junit.vintagejunit-vintage-engine5.10.1jar
StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest Major
+

Dependencies

+

This project does not declare any dependencies.

+

Dependency Updates

+

+

com.google.errorprone:error_prone_annotations

+ + + + + + + + + + + + + + + + + + + + + + + + +
Status There is at least one newer minor version available. Minor updates are sometimes passive.
Group Idcom.google.errorprone
Artifact Iderror_prone_annotations
Current Version2.23.0
Scope
Classifier
Typejar
Newer versions2.24.0 Latest Minor
+

com.google.errorprone:error_prone_core

+ + + + + + + + + + + + + + + + + + + + + + + + +
Status There is at least one newer minor version available. Minor updates are sometimes passive.
Group Idcom.google.errorprone
Artifact Iderror_prone_core
Current Version2.23.0
Scope
Classifier
Typejar
Newer versions2.24.0 Latest Minor
+

com.kohlschutter:compiler-annotations

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idcom.kohlschutter
Artifact Idcompiler-annotations
Current Version1.6.6
Scopeprovided
Classifier
Typejar
+

com.kohlschutter:kohlschutter-test-util

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idcom.kohlschutter
Artifact Idkohlschutter-test-util
Current Version1.6.6
Scope
Classifier
Typejar
+

com.kohlschutter:kohlschutter-util

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idcom.kohlschutter
Artifact Idkohlschutter-util
Current Version1.6.6
Scope
Classifier
Typejar
+

org.codehaus.mojo:animal-sniffer-annotations

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.codehaus.mojo
Artifact Idanimal-sniffer-annotations
Current Version1.23
Scope
Classifier
Typejar
+

org.eclipse.jdt:org.eclipse.jdt.annotation

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.eclipse.jdt
Artifact Idorg.eclipse.jdt.annotation
Current Version2.2.800
Scope
Classifier
Typejar
+

org.junit.jupiter:junit-jupiter

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.jupiter
Artifact Idjunit-jupiter
Current Version5.10.1
Scope
Classifier
Typejar
+

org.junit.jupiter:junit-jupiter-api

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.jupiter
Artifact Idjunit-jupiter-api
Current Version5.10.1
Scope
Classifier
Typejar
+

org.junit.jupiter:junit-jupiter-engine

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.jupiter
Artifact Idjunit-jupiter-engine
Current Version5.10.1
Scope
Classifier
Typejar
+

org.junit.jupiter:junit-jupiter-migrationsupport

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.jupiter
Artifact Idjunit-jupiter-migrationsupport
Current Version5.10.1
Scope
Classifier
Typejar
+

org.junit.jupiter:junit-jupiter-params

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.jupiter
Artifact Idjunit-jupiter-params
Current Version5.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-commons

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-commons
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-console

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-console
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-engine

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-engine
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-jfr

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-jfr
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-launcher

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-launcher
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-reporting

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-reporting
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-runner

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-runner
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-suite

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-suite
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-suite-api

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-suite-api
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-suite-commons

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-suite-commons
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-suite-engine

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-suite-engine
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.platform:junit-platform-testkit

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.platform
Artifact Idjunit-platform-testkit
Current Version1.10.1
Scope
Classifier
Typejar
+

org.junit.vintage:junit-vintage-engine

+ + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.junit.vintage
Artifact Idjunit-vintage-engine
Current Version5.10.1
Scope
Classifier
Typejar
+
+
+
+
+ + + + \ No newline at end of file diff --git a/distribution-management.html b/distribution-management.html index 6280d8c..091ebe8 100644 --- a/distribution-management.html +++ b/distribution-management.html @@ -2,37 +2,35 @@ - - stringhold – Project Distribution Management - + + stringhold – Project Distribution Management + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Overview

The following is the distribution management information used by this project.

@@ -133,9 +133,9 @@

Site - github.com/kohlschutter/stringhold

- - stringhold – stringhold: A java.lang.String holder - + + stringhold – stringhold: A java.lang.String holder + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

stringhold: A java.lang.String holder

stringhold

@@ -141,14 +141,16 @@

Usage Examples

The Basics

A StringHolder using a String directly:

-
StringHolder h = StringHolder.withContent("Some string");
+
+
StringHolder h = StringHolder.withContent("Some string");
 h.isString(); // always true
 
 h.toString(); // simply returns the associated string.
 

A StringHolder using a String supplier:

-
StringHolder h = StringHolder.withSupplier(() -> "Some string");
+
+
StringHolder h = StringHolder.withSupplier(() -> "Some string");
 h.isString(); // not true yet
 
 h.toString(); // calls Supplier.get()
@@ -158,21 +160,24 @@ 

The Basics

A StringHolder using a String supplier and some length constraints:

-
StringHolder h = StringHolder.withSupplierMinimumAndExpectedLength(5, 20, () -> "Some string");
+
+
StringHolder h = StringHolder.withSupplierMinimumAndExpectedLength(5, 20, () -> "Some string");
 h.isEmpty(); // false because we claim the string is at least 5 characters long
 h.isString(); // not true yet
 

A StringHolder that reads contents from a function that supplies StringReader instances:

-
StringHolder h = StringHolder.withReaderSupplier(() -> new StringReader("hello"), (
+
+
StringHolder h = StringHolder.withReaderSupplier(() -> new StringReader("hello"), (
     e) -> IOExceptionHandler.ExceptionResponse.ILLEGAL_STATE);
 

A sequence of String(Holder)s, some are nested:

-
StringHolderSequence seq = new StringHolderSequence();
+
+
StringHolderSequence seq = StringHolder.newSequence();
 seq.append("Hello");
 seq.append(' ');
-seq.append(new StringHolderSequence().append(StringHolder.withSupplier(() -> "World"));
+seq.append(StringHolder.newSequence().append(StringHolder.withSupplier(() -> "World"));
 
 // Append to a writer
 try (Writer out = new FileWriter(new File("/tmp/out"))) {
@@ -183,13 +188,23 @@ 

The Basics

A sequence of String(Holder)s that can be assembled/appended out of order via scatter-gatter (speed up overall assembly time through parallelization):

-
AsyncStringHolderSequence seq = new AsyncStringHolderSequence();
+
+
StringHolderSequence seq = StringHolder.newAsyncSequence();
 seq.append(veryComplexStringHolder);
 seq.append(anotherStringHolder);
 
 // seq.toString() / seq.appendTo() may internally serialize the second StringHolder first.
 // The final order is still guaranteed to be correct.
 // This may save time at the cost of constructing temporary StringBuilders.
+
+

You can also define a conditional StringHolder, which may be defined but later excluded if a condition is not met:

+ +
+
StringHolder seq = StringHolder.withContent("Hello", //
+   StringHolder.withConditionalStringHolder(StringHolder.withContent(" World"), (o) -> {
+     return checkIfIncluded(o); // false: exclude; true: include
+   }));
+seq.toString() // returns "Hello" or "Hello World", depending on checkIfIncluded
 

The full API

    @@ -214,35 +229,49 @@

    Installation

    Maven

    Add the following dependency:

    -
    <dependency>
    +
    +
    <dependency>
         <groupId>com.kohlschutter.stringhold</groupId>
         <artifactId>stringhold-common</artifactId>
    -    <version>1.0.0-SNAPSHOT</version>
    +    <version>1.0.0</version>
     </dependency>
     

    Gradle

    -
    dependencies {
    -    implementation 'com.kohlschutter.stringhold:stringhold-common:1.0.0-SNAPSHOT'
    +
    +
    dependencies {
    +    implementation 'com.kohlschutter.stringhold:stringhold-common:1.0.0'
     }
     

Building from source

You currently need Maven or Eclipse with m2e, and Java 15 or later. Just run:

-
mvn clean install
+
+
mvn clean install
 

To reformat code, which simplifies pull requests and restores general sanity, use:

-
mvn process-sources -Preformat
+
+
mvn process-sources -Preformat
 

Changelog

-

(2023-XX-XX) stringhold 1.0.0

+

(2024-XX-XX) *stringhold 1.0.2

+
    + +
  • Add indexOf
  • +
+

(2023-12-11) *stringhold 1.0.1

+
    + +
  • Fix liqp dependency
  • +
+

(2023-12-10) stringhold 1.0.0

  • Initial release

Legal Notices

-

Copyright 2022 Christian Kohlschuetter christian@kohlschutter.com

+

Copyright 2022, 2023 Christian Kohlschuetter christian@kohlschutter.com

SPDX-License-Identifier: Apache-2.0 See NOTICE and LICENSE for license details.

@@ -292,9 +321,9 @@

Legal Notices

\ No newline at end of file diff --git a/issue-management.html b/issue-management.html index 70406c7..2856841 100644 --- a/issue-management.html +++ b/issue-management.html @@ -2,37 +2,35 @@ - - stringhold – Issue Management - + + stringhold – Issue Management + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Overview

This project uses GitHub to manage its issues.

Issue Management

Issues, bugs, and feature requests should be submitted to the following issue management system for this project.

-
@@ -134,9 +134,9 @@

Issue Management

\ No newline at end of file diff --git a/stringhold-common/js/apache-maven-fluido-2.0.0-M2.min.js b/js/apache-maven-fluido-2.0.0-M8.min.js similarity index 52% rename from stringhold-common/js/apache-maven-fluido-2.0.0-M2.min.js rename to js/apache-maven-fluido-2.0.0-M8.min.js index 7a84154..819716a 100644 --- a/stringhold-common/js/apache-maven-fluido-2.0.0-M2.min.js +++ b/js/apache-maven-fluido-2.0.0-M8.min.js @@ -1,287 +1,287 @@ -(function(e,p){"object"===typeof module&&"object"===typeof module.exports?module.exports=e.document?p(e,!0):function(e){if(!e.document)throw Error("jQuery requires a window with a document");return p(e)}:p(e)})("undefined"!==typeof window?window:this,function(e,p){function x(a){var b=a.length,f=d.type(a);return"function"===f||d.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===f||0===b||"number"===typeof b&&0b;b+=2)"margin"=== -f&&(u+=d.css(a,f+oa[b],!0,l)),k?("content"===f&&(u-=d.css(a,"padding"+oa[b],!0,l)),"margin"!==f&&(u-=d.css(a,"border"+oa[b]+"Width",!0,l))):(u+=d.css(a,"padding"+oa[b],!0,l),"padding"!==f&&(u+=d.css(a,"border"+oa[b]+"Width",!0,l)));return u}function U(a,b,f){var k=!0,l="width"===b?a.offsetWidth:a.offsetHeight,u=ga(a),c=w.boxSizing&&"border-box"===d.css(a,"boxSizing",!1,u);if(0>=l||null==l){l=pa(a,b,u);if(0>l||null==l)l=a.style[b];if(Ja.test(l))return l;k=c&&(w.boxSizingReliable()||l===a.style[b]); -l=parseFloat(l)||0}return l+S(a,b,f||(c?"border":"content"),k,u)+"px"}function H(a,b,f,d,l){return new H.prototype.init(a,b,f,d,l)}function J(){setTimeout(function(){wa=void 0});return wa=d.now()}function v(a,b){var f,d={height:a},l=0;for(b=b?1:0;4>l;l+=2-b)f=oa[l],d["margin"+f]=d["padding"+f]=a;b&&(d.opacity=d.width=a);return d}function da(a,b,f){for(var d,l=(xa[b]||[]).concat(xa["*"]),c=0,e=l.length;cf&&l)return b;e.resolveWith(a,[h]);return!1}, -h=e.promise({elem:a,props:d.extend({},b),opts:d.extend(!0,{specialEasing:{}},f),originalProperties:b,originalOptions:f,startTime:wa||J(),duration:f.duration,tweens:[],createTween:function(b,f){b=d.Tween(a,h.opts,b,f,h.opts.specialEasing[b]||h.opts.easing);h.tweens.push(b);return b},stop:function(b){var f=0,d=b?h.tweens.length:0;if(k)return this;for(k=!0;fa?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){a=d.merge(this.constructor(),a);a.prevObject=this;a.context=this.context;return a},each:function(a,b){return d.each(this,a,b)},map:function(a){return this.pushStack(d.map(this,function(b,f){return a.call(b,f,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)}, -last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&af?Math.max(0,d+f):f:0;fF.cacheLength&&delete a[b.shift()];return a[d+" "]=f}var b=[];return a}function k(a){a[Q]=!0;return a}function l(a){var b=I.createElement("div");try{return!!a(b)}catch(ma){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function c(a,b){var d=a.split("|");for(a=a.length;a--;)F.attrHandle[d[a]]=b}function e(a,b){var d=b&&a,f=d&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex|| --2147483648)-(~a.sourceIndex||-2147483648);if(f)return f;if(d)for(;d=d.nextSibling;)if(d===b)return-1;return a?1:-1}function g(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function h(a){return function(b){var d=b.nodeName.toLowerCase();return("input"===d||"button"===d)&&b.type===a}}function m(a){return k(function(b){b=+b;return k(function(d,f){for(var k,l=a([],d.length,b),c=l.length;c--;)d[k=l[c]]&&(d[k]=!(f[k]=d[k]))})})}function t(a){return a&&"undefined"!==typeof a.getElementsByTagName&& -a}function n(){}function v(a){for(var b=0,d=a.length,f="";bb;b+=2)"margin"=== +e&&(u+=d.css(a,e+oa[b],!0,l)),k?("content"===e&&(u-=d.css(a,"padding"+oa[b],!0,l)),"margin"!==e&&(u-=d.css(a,"border"+oa[b]+"Width",!0,l))):(u+=d.css(a,"padding"+oa[b],!0,l),"padding"!==e&&(u+=d.css(a,"border"+oa[b]+"Width",!0,l)));return u}function U(a,b,e){var k=!0,l="width"===b?a.offsetWidth:a.offsetHeight,u=ga(a),c=w.boxSizing&&"border-box"===d.css(a,"boxSizing",!1,u);if(0>=l||null==l){l=pa(a,b,u);if(0>l||null==l)l=a.style[b];if(Ja.test(l))return l;k=c&&(w.boxSizingReliable()||l===a.style[b]); +l=parseFloat(l)||0}return l+S(a,b,e||(c?"border":"content"),k,u)+"px"}function H(a,b,e,d,l){return new H.prototype.init(a,b,e,d,l)}function J(){setTimeout(function(){wa=void 0});return wa=d.now()}function v(a,b){var e,d={height:a},l=0;for(b=b?1:0;4>l;l+=2-b)e=oa[l],d["margin"+e]=d["padding"+e]=a;b&&(d.opacity=d.width=a);return d}function da(a,b,e){for(var d,l=(xa[b]||[]).concat(xa["*"]),c=0,f=l.length;ce&&l)return b;f.resolveWith(a,[h]);return!1}, +h=f.promise({elem:a,props:d.extend({},b),opts:d.extend(!0,{specialEasing:{}},e),originalProperties:b,originalOptions:e,startTime:wa||J(),duration:e.duration,tweens:[],createTween:function(b,e){b=d.Tween(a,h.opts,b,e,h.opts.specialEasing[b]||h.opts.easing);h.tweens.push(b);return b},stop:function(b){var e=0,d=b?h.tweens.length:0;if(k)return this;for(k=!0;ea?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){a=d.merge(this.constructor(),a);a.prevObject=this;a.context=this.context;return a},each:function(a,b){return d.each(this,a,b)},map:function(a){return this.pushStack(d.map(this,function(b,e){return a.call(b,e,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)}, +last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&ae?Math.max(0,d+e):e:0;eF.cacheLength&&delete a[b.shift()];return a[d+" "]=e}var b=[];return a}function k(a){a[Q]=!0;return a}function l(a){var b=I.createElement("div");try{return!!a(b)}catch(ma){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function c(a,b){var d=a.split("|");for(a=a.length;a--;)F.attrHandle[d[a]]=b}function f(a,b){var d=b&&a,e=d&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex|| +-2147483648)-(~a.sourceIndex||-2147483648);if(e)return e;if(d)for(;d=d.nextSibling;)if(d===b)return-1;return a?1:-1}function g(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function h(a){return function(b){var d=b.nodeName.toLowerCase();return("input"===d||"button"===d)&&b.type===a}}function m(a){return k(function(b){b=+b;return k(function(d,e){for(var k,l=a([],d.length,b),c=l.length;c--;)d[k=l[c]]&&(d[k]=!(e[k]=d[k]))})})}function t(a){return a&&"undefined"!==typeof a.getElementsByTagName&& +a}function n(){}function v(a){for(var b=0,d=a.length,e="";b+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,ta=/=[\x20\t\r\n\f]*([^\]'"]*?)[\x20\t\r\n\f]*\]/g,ua=new RegExp(ia),wa=new RegExp("^"+ka+"$"),ja={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG:new RegExp("^("+"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w","w*")+")"),ATTR:new RegExp("^"+la),PSEUDO:new RegExp("^"+ia), CHILD:/^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i,bool:/^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,needsContext:/^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i},ya=/^(?:input|select|textarea|button)$/i,za=/^h\d$/i,ha= -/^[^{]+\{\s*\[native \w/,Aa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,na=/[+~]/,Ca=/'|\\/g,qa=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,ra=function(a,b,d){a="0x"+b-65536;return a!==a||d?b:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,a&1023|56320)},xa=function(){R()};try{Y.apply(V=Ga.call(E.childNodes),E.childNodes),V[E.childNodes.length].nodeType}catch(T){Y={apply:V.length?function(a,b){La.apply(a,Ga.call(b))}:function(a,b){for(var d=a.length,f=0;a[d++]=b[f++];);a.length= +/^[^{]+\{\s*\[native \w/,Aa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,na=/[+~]/,Ca=/'|\\/g,qa=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,ra=function(a,b,d){a="0x"+b-65536;return a!==a||d?b:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,a&1023|56320)},xa=function(){R()};try{Y.apply(V=Ga.call(E.childNodes),E.childNodes),V[E.childNodes.length].nodeType}catch(T){Y={apply:V.length?function(a,b){La.apply(a,Ga.call(b))}:function(a,b){for(var d=a.length,e=0;a[d++]=b[e++];);a.length= d-1}}}B=b.support={};G=b.isXML=function(a){return(a=a&&(a.ownerDocument||a).documentElement)?"HTML"!==a.nodeName:!1};R=b.setDocument=function(a){var b=a?a.ownerDocument||a:E;if(b===I||9!==b.nodeType||!b.documentElement)return I;I=b;O=b.documentElement;(a=b.defaultView)&&a!==a.top&&(a.addEventListener?a.addEventListener("unload",xa,!1):a.attachEvent&&a.attachEvent("onunload",xa));H=!G(b);B.attributes=l(function(a){a.className="i";return!a.getAttribute("className")});B.getElementsByTagName=l(function(a){a.appendChild(b.createComment("")); return!a.getElementsByTagName("*").length});B.getElementsByClassName=ha.test(b.getElementsByClassName);B.getById=l(function(a){O.appendChild(a).id=Q;return!b.getElementsByName||!b.getElementsByName(Q).length});B.getById?(F.find.ID=function(a,b){if("undefined"!==typeof b.getElementById&&H)return(a=b.getElementById(a))&&a.parentNode?[a]:[]},F.filter.ID=function(a){var b=a.replace(qa,ra);return function(a){return a.getAttribute("id")===b}}):(delete F.find.ID,F.filter.ID=function(a){var b=a.replace(qa, -ra);return function(a){return(a="undefined"!==typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}});F.find.TAG=B.getElementsByTagName?function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a);if(B.qsa)return b.querySelectorAll(a)}:function(a,b){var d=[],f=0;b=b.getElementsByTagName(a);if("*"===a){for(;a=b[f++];)1===a.nodeType&&d.push(a);return d}return b};F.find.CLASS=B.getElementsByClassName&&function(a,b){if(H)return b.getElementsByClassName(a)}; +ra);return function(a){return(a="undefined"!==typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}});F.find.TAG=B.getElementsByTagName?function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a);if(B.qsa)return b.querySelectorAll(a)}:function(a,b){var d=[],e=0;b=b.getElementsByTagName(a);if("*"===a){for(;a=b[e++];)1===a.nodeType&&d.push(a);return d}return b};F.find.CLASS=B.getElementsByClassName&&function(a,b){if(H)return b.getElementsByClassName(a)}; J=[];r=[];if(B.qsa=ha.test(b.querySelectorAll))l(function(a){O.appendChild(a).innerHTML="\x3ca id\x3d'"+Q+"'\x3e\x3c/a\x3e\x3cselect id\x3d'"+Q+"-\f]' msallowcapture\x3d''\x3e\x3coption selected\x3d''\x3e\x3c/option\x3e\x3c/select\x3e";a.querySelectorAll("[msallowcapture^\x3d'']").length&&r.push("[*^$]\x3d[\\x20\\t\\r\\n\\f]*(?:''|\"\")");a.querySelectorAll("[selected]").length||r.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)"); a.querySelectorAll("[id~\x3d"+Q+"-]").length||r.push("~\x3d");a.querySelectorAll(":checked").length||r.push(":checked");a.querySelectorAll("a#"+Q+"+*").length||r.push(".#.+[+~]")}),l(function(a){var d=b.createElement("input");d.setAttribute("type","hidden");a.appendChild(d).setAttribute("name","D");a.querySelectorAll("[name\x3dd]").length&&r.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?\x3d");a.querySelectorAll(":enabled").length||r.push(":enabled",":disabled");a.querySelectorAll("*,:x");r.push(",.*:")}); (B.matchesSelector=ha.test(Ba=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&l(function(a){B.disconnectedMatch=Ba.call(a,"div");Ba.call(a,"[s!\x3d'']:x");J.push("!\x3d",ia)});r=r.length&&new RegExp(r.join("|"));J=J.length&&new RegExp(J.join("|"));va=(a=ha.test(O.compareDocumentPosition))||ha.test(O.contains)?function(a,b){var d=9===a.nodeType?a.documentElement:a;b=b&&b.parentNode;return a===b||!!(b&&1===b.nodeType&&(d.contains?d.contains(b):a.compareDocumentPosition&& -a.compareDocumentPosition(b)&16))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1};ca=a?function(a,d){if(a===d)return x=!0,0;var f=!a.compareDocumentPosition-!d.compareDocumentPosition;if(f)return f;f=(a.ownerDocument||a)===(d.ownerDocument||d)?a.compareDocumentPosition(d):1;return f&1||!B.sortDetached&&d.compareDocumentPosition(a)===f?a===b||a.ownerDocument===E&&va(E,a)?-1:d===b||d.ownerDocument===E&&va(E,d)?1:P?ba(P,a)-ba(P,d):0:f&4?-1:1}:function(a,d){if(a===d)return x=!0,0; -var f=0,k=a.parentNode,l=d.parentNode,c=[a],u=[d];if(!k||!l)return a===b?-1:d===b?1:k?-1:l?1:P?ba(P,a)-ba(P,d):0;if(k===l)return e(a,d);for(;a=a.parentNode;)c.unshift(a);for(a=d;a=a.parentNode;)u.unshift(a);for(;c[f]===u[f];)f++;return f?e(c[f],u[f]):c[f]===E?-1:u[f]===E?1:0};return b};b.matches=function(a,d){return b(a,null,null,d)};b.matchesSelector=function(a,d){(a.ownerDocument||a)!==I&&R(a);d=d.replace(ta,"\x3d'$1']");if(!(!B.matchesSelector||!H||J&&J.test(d)||r&&r.test(d)))try{var f=Ba.call(a, -d);if(f||B.disconnectedMatch||a.document&&11!==a.document.nodeType)return f}catch(Da){}return 0a.nodeType)return!1;return!0},parent:function(a){return!F.pseudos.empty(a)},header:function(a){return za.test(a.nodeName)},input:function(a){return ya.test(a.nodeName)}, button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:m(function(){return[0]}),last:m(function(a,b){return[b-1]}),eq:m(function(a,b,d){return[0>d?d+b:d]}),even:m(function(a,b){for(var d=0;dd?d+b:d;0<=--b;)a.push(b);return a}),gt:m(function(a,b,d){for(d=0>d?d+b:d;++d(?:<\/\1>|)$/,Gb=/^.[^:#\[\.,]*$/;d.filter=function(a,b,f){var k=b[0];f&&(a=":not("+a+")");return 1===b.length&&1===k.nodeType?d.find.matchesSelector(k,a)?[k]:[]:d.find.matches(a,d.grep(b,function(a){return 1===a.nodeType}))};d.fn.extend({find:function(a){var b,f=[],k=this,l=k.length;if("string"!==typeof a)return this.pushStack(d(a).filter(function(){for(b= -0;b)[^>]*|#([\w-]*))$/;(d.fn.init=function(a,b){var f;if(!a)return this;if("string"=== -typeof a){f="\x3c"===a.charAt(0)&&"\x3e"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:Vb.exec(a);if(!f||!f[1]&&b)return!b||b.jquery?(b||Ha).find(a):this.constructor(b).find(a);if(f[1]){if(b=b instanceof d?b[0]:b,d.merge(this,d.parseHTML(f[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),mb.test(f[1])&&d.isPlainObject(b))for(f in b)if(d.isFunction(this[f]))this[f](b[f]);else this.attr(f,b[f])}else{if((b=z.getElementById(f[2]))&&b.parentNode){if(b.id!==f[2])return Ha.find(a);this.length=1;this[0]=b}this.context= -z;this.selector=a}return this}if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(d.isFunction(a))return"undefined"!==typeof Ha.ready?Ha.ready(a):a(d);void 0!==a.selector&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)}).prototype=d.fn;Ha=d(z);var Wb=/^(?:parents|prev(?:Until|All))/,Xb={children:!0,contents:!0,next:!0,prev:!0};d.extend({dir:function(a,b,f){var k=[];for(a=a[b];a&&9!==a.nodeType&&(void 0===f||1!==a.nodeType||!d(a).is(f));)1===a.nodeType&& -k.push(a),a=a[b];return k},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&d.push(a);return d}});d.fn.extend({has:function(a){var b,f=d(a,this),k=f.length;return this.filter(function(){for(b=0;bf.nodeType&&(e?-1d?d+b:d;0<=--b;)a.push(b);return a}),gt:m(function(a,b,d){for(d=0>d?d+b:d;++d(?:<\/\1>|)$/,Gb=/^.[^:#\[\.,]*$/;d.filter=function(a,b,e){var k=b[0];e&&(a=":not("+a+")");return 1===b.length&&1===k.nodeType?d.find.matchesSelector(k,a)?[k]:[]:d.find.matches(a,d.grep(b,function(a){return 1===a.nodeType}))};d.fn.extend({find:function(a){var b,e=[],k=this,l=k.length;if("string"!==typeof a)return this.pushStack(d(a).filter(function(){for(b= +0;b)[^>]*|#([\w-]*))$/;(d.fn.init=function(a,b){var e;if(!a)return this;if("string"=== +typeof a){e="\x3c"===a.charAt(0)&&"\x3e"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:Vb.exec(a);if(!e||!e[1]&&b)return!b||b.jquery?(b||Ha).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof d?b[0]:b,d.merge(this,d.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),mb.test(e[1])&&d.isPlainObject(b))for(e in b)if(d.isFunction(this[e]))this[e](b[e]);else this.attr(e,b[e])}else{if((b=z.getElementById(e[2]))&&b.parentNode){if(b.id!==e[2])return Ha.find(a);this.length=1;this[0]=b}this.context= +z;this.selector=a}return this}if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(d.isFunction(a))return"undefined"!==typeof Ha.ready?Ha.ready(a):a(d);void 0!==a.selector&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)}).prototype=d.fn;Ha=d(z);var Wb=/^(?:parents|prev(?:Until|All))/,Xb={children:!0,contents:!0,next:!0,prev:!0};d.extend({dir:function(a,b,e){var k=[];for(a=a[b];a&&9!==a.nodeType&&(void 0===e||1!==a.nodeType||!d(a).is(e));)1===a.nodeType&& +k.push(a),a=a[b];return k},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&d.push(a);return d}});d.fn.extend({has:function(a){var b,e=d(a,this),k=e.length;return this.filter(function(){for(b=0;be.nodeType&&(f?-1p.indexOf(":")&&"on"+p,a=a[d.expando]?a: -new d.Event(p,"object"===typeof a&&a),a.isTrigger=k?2:3,a.namespace=n.join("."),a.namespace_re=a.namespace?new RegExp("(^|\\.)"+n.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=f),b=null==b?[a]:d.makeArray(b,[a]),n=d.event.special[p]||{},k||!n.trigger||!1!==n.trigger.apply(f,b))){if(!k&&!n.noBubble&&!d.isWindow(f)){m=n.delegateType||p;nb.test(m+p)||(h=h.parentNode);for(;h;h=h.parentNode)t.push(h),c=h;c===(f.ownerDocument||z)&&t.push(c.defaultView||c.parentWindow||e)}for(v= -0;(h=t[v++])&&!a.isPropagationStopped();)a.type=1p.indexOf(":")&&"on"+p,a=a[d.expando]?a: +new d.Event(p,"object"===typeof a&&a),a.isTrigger=k?2:3,a.namespace=n.join("."),a.namespace_re=a.namespace?new RegExp("(^|\\.)"+n.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=e),b=null==b?[a]:d.makeArray(b,[a]),n=d.event.special[p]||{},k||!n.trigger||!1!==n.trigger.apply(e,b))){if(!k&&!n.noBubble&&!d.isWindow(e)){m=n.delegateType||p;nb.test(m+p)||(h=h.parentNode);for(;h;h=h.parentNode)t.push(h),c=h;c===(e.ownerDocument||z)&&t.push(c.defaultView||c.parentWindow||g)}for(v= +0;(h=t[v++])&&!a.isPropagationStopped();)a.type=1]*)\/>/gi,rb=/<([\w:]+)/,sb=/\s*$/g,ca={option:[1,"\x3cselect multiple\x3d'multiple'\x3e","\x3c/select\x3e"],legend:[1,"\x3cfieldset\x3e","\x3c/fieldset\x3e"],area:[1, "\x3cmap\x3e","\x3c/map\x3e"],param:[1,"\x3cobject\x3e","\x3c/object\x3e"],thead:[1,"\x3ctable\x3e","\x3c/table\x3e"],tr:[2,"\x3ctable\x3e\x3ctbody\x3e","\x3c/tbody\x3e\x3c/table\x3e"],col:[2,"\x3ctable\x3e\x3ctbody\x3e\x3c/tbody\x3e\x3ccolgroup\x3e","\x3c/colgroup\x3e\x3c/table\x3e"],td:[3,"\x3ctable\x3e\x3ctbody\x3e\x3ctr\x3e","\x3c/tr\x3e\x3c/tbody\x3e\x3c/table\x3e"],_default:w.htmlSerialize?[0,"",""]:[1,"X\x3cdiv\x3e","\x3c/div\x3e"]},Za=Aa(z).appendChild(z.createElement("div"));ca.optgroup= -ca.option;ca.tbody=ca.tfoot=ca.colgroup=ca.caption=ca.thead;ca.th=ca.td;d.extend({clone:function(a,b,f){var c,l,e,g,h,m=d.contains(a.ownerDocument,a);w.html5Clone||d.isXMLDoc(a)||!pb.test("\x3c"+a.nodeName+"\x3e")?e=a.cloneNode(!0):(Za.innerHTML=a.outerHTML,Za.removeChild(e=Za.firstChild));if(!(w.noCloneEvent&&w.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||d.isXMLDoc(a)))for(c=N(e),h=N(a),g=0;null!=(l=h[g]);++g)if(c[g]){var n=c[g],t,p=void 0,v;if(1===n.nodeType){t=n.nodeName.toLowerCase();if(!w.noCloneEvent&& +ca.option;ca.tbody=ca.tfoot=ca.colgroup=ca.caption=ca.thead;ca.th=ca.td;d.extend({clone:function(a,b,e){var c,l,f,g,h,m=d.contains(a.ownerDocument,a);w.html5Clone||d.isXMLDoc(a)||!pb.test("\x3c"+a.nodeName+"\x3e")?f=a.cloneNode(!0):(Za.innerHTML=a.outerHTML,Za.removeChild(f=Za.firstChild));if(!(w.noCloneEvent&&w.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||d.isXMLDoc(a)))for(c=N(f),h=N(a),g=0;null!=(l=h[g]);++g)if(c[g]){var n=c[g],t,p=void 0,v;if(1===n.nodeType){t=n.nodeName.toLowerCase();if(!w.noCloneEvent&& n[d.expando]){v=d._data(n);for(p in v.events)d.removeEvent(n,p,v.handle);n.removeAttribute(d.expando)}if("script"===t&&n.text!==l.text)ia(n).text=l.text,A(n);else if("object"===t)n.parentNode&&(n.outerHTML=l.outerHTML),w.html5Clone&&l.innerHTML&&!d.trim(n.innerHTML)&&(n.innerHTML=l.innerHTML);else if("input"===t&&Ua.test(l.type))n.defaultChecked=n.checked=l.checked,n.value!==l.value&&(n.value=l.value);else if("option"===t)n.defaultSelected=n.selected=l.defaultSelected;else if("input"===t||"textarea"=== -t)n.defaultValue=l.defaultValue}}if(b)if(f)for(h=h||N(a),c=c||N(e),g=0;null!=(l=h[g]);g++)P(l,c[g]);else P(a,e);c=N(e,"script");0f;f++)c[a+oa[f]+b]=d[f]||d[f-2]||d[0];return c}};ub.test(a)||(d.cssHooks[a+b].set=va)});d.fn.extend({css:function(a,b){return sa(this,function(a,b,c){var f,e={},k=0;if(d.isArray(b)){c=ga(a);for(f=b.length;kc)?null:[],g=a?c+1:f.length,h=0>c?g:a?c:0;he;e++)c[a+oa[e]+b]=d[e]||d[e-2]||d[0];return c}};ub.test(a)||(d.cssHooks[a+b].set=va)});d.fn.extend({css:function(a,b){return sa(this,function(a,b,c){var e,f={},k=0;if(d.isArray(b)){c=ga(a);for(e=b.length;kc)?null:[],g=a?c+1:e.length,h=0>c?g:a?c:0;hc.indexOf(" "+e+" ")&&(c+=e+" ");c=d.trim(c);f.className!==c&&(f.className=c)}return this},removeClass:function(a){var b, -f,c,e,g,h=0,m=this.length;b=0===arguments.length||"string"===typeof a&&a;if(d.isFunction(a))return this.each(function(b){d(this).removeClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(Y)||[];hc.indexOf(" "+f+" ")&&(c+=f+" ");c=d.trim(c);e.className!==c&&(e.className=c)}return this},removeClass:function(a){var b, +e,c,f,g,h=0,m=this.length;b=0===arguments.length||"string"===typeof a&&a;if(d.isFunction(a))return this.each(function(b){d(this).removeClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(Y)||[];ha||304===a;if(c){l=t;for(var p=B,I,z,r,D,G=l.contents,K=l.dataTypes;"*"===K[0];)K.shift(),void 0===z&&(z=l.mimeType||p.getResponseHeader("Content-Type"));if(z)for(D in G)if(G[D]&&G[D].test(z)){K.unshift(D);break}if(K[0]in c)r=K[0];else{for(D in c){if(!K[0]||l.converters[D+" "+K[0]]){r=D;break}I||(I=D)}r=r||I}r?(r!==K[0]&&K.unshift(r),l=c[r]):l=void 0}a:{c=t;I=l;z=B;r=f;var P, +b){function c(a,b,c,e){var f,k,l,u;u=b;if(2!==L){L=2;m&&clearTimeout(m);v=void 0;h=e||"";B.readyState=0a||304===a;if(c){l=t;for(var p=B,I,z,r,D,G=l.contents,K=l.dataTypes;"*"===K[0];)K.shift(),void 0===z&&(z=l.mimeType||p.getResponseHeader("Content-Type"));if(z)for(D in G)if(G[D]&&G[D].test(z)){K.unshift(D);break}if(K[0]in c)r=K[0];else{for(D in c){if(!K[0]||l.converters[D+" "+K[0]]){r=D;break}I||(I=D)}r=r||I}r?(r!==K[0]&&K.unshift(r),l=c[r]):l=void 0}a:{c=t;I=l;z=B;r=e;var P, O,F,p={},G=c.dataTypes.slice();if(G[1])for(O in c.converters)p[O.toLowerCase()]=c.converters[O];for(D=G.shift();D;)if(c.responseFields[D]&&(z[c.responseFields[D]]=I),!F&&r&&c.dataFilter&&(I=c.dataFilter(I,c.dataType)),F=D,D=G.shift())if("*"===D)D=F;else if("*"!==F&&F!==D){O=p[F+" "+D]||p["* "+D];if(!O)for(P in p)if(l=P.split(" "),l[1]===D&&(O=p[F+" "+l[0]]||p["* "+l[0]])){!0===O?O=p[P]:!0!==p[P]&&(D=l[0],G.unshift(l[1]));break}if(!0!==O)if(O&&c["throws"])I=O(I);else try{I=O(I)}catch(Tb){l={state:"parsererror", -error:O?Tb:"No conversion from "+F+" to "+D};break a}}l={state:"success",data:I}}if(f)t.ifModified&&((u=B.getResponseHeader("Last-Modified"))&&(d.lastModified[g]=u),(u=B.getResponseHeader("etag"))&&(d.etag[g]=u)),204===a||"HEAD"===t.type?u="nocontent":304===a?u="notmodified":(u=l.state,e=l.data,k=l.error,f=!k);else if(k=u,a||!u)u="error",0>a&&(a=0);B.status=a;B.statusText=(b||u)+"";f?w.resolveWith(y,[e,u,B]):w.rejectWith(y,[B,u,k]);B.statusCode(da);da=void 0;n&&C.trigger(f?"ajaxSuccess":"ajaxError", -[B,t,f?e:k]);A.fireWith(y,[B,u]);n&&(C.trigger("ajaxComplete",[B,t]),--d.active||d.event.trigger("ajaxStop"))}}"object"===typeof a&&(b=a,a=void 0);b=b||{};var e,g,h,m,n,v,p,t=d.ajaxSetup({},b),y=t.context||t,C=t.context&&(y.nodeType||y.jquery)?d(y):d.event,w=d.Deferred(),A=d.Callbacks("once memory"),da=t.statusCode||{},I={},z={},L=0,r="canceled",B={readyState:0,getResponseHeader:function(a){var b;if(2===L){if(!p)for(p={};b=rc.exec(h);)p[b[1].toLowerCase()]=b[2];b=p[a.toLowerCase()]}return null==b? +error:O?Tb:"No conversion from "+F+" to "+D};break a}}l={state:"success",data:I}}if(e)t.ifModified&&((u=B.getResponseHeader("Last-Modified"))&&(d.lastModified[g]=u),(u=B.getResponseHeader("etag"))&&(d.etag[g]=u)),204===a||"HEAD"===t.type?u="nocontent":304===a?u="notmodified":(u=l.state,f=l.data,k=l.error,e=!k);else if(k=u,a||!u)u="error",0>a&&(a=0);B.status=a;B.statusText=(b||u)+"";e?w.resolveWith(y,[f,u,B]):w.rejectWith(y,[B,u,k]);B.statusCode(da);da=void 0;n&&C.trigger(e?"ajaxSuccess":"ajaxError", +[B,t,e?f:k]);A.fireWith(y,[B,u]);n&&(C.trigger("ajaxComplete",[B,t]),--d.active||d.event.trigger("ajaxStop"))}}"object"===typeof a&&(b=a,a=void 0);b=b||{};var f,g,h,m,n,v,p,t=d.ajaxSetup({},b),y=t.context||t,C=t.context&&(y.nodeType||y.jquery)?d(y):d.event,w=d.Deferred(),A=d.Callbacks("once memory"),da=t.statusCode||{},I={},z={},L=0,r="canceled",B={readyState:0,getResponseHeader:function(a){var b;if(2===L){if(!p)for(p={};b=rc.exec(h);)p[b[1].toLowerCase()]=b[2];b=p[a.toLowerCase()]}return null==b? null:b},getAllResponseHeaders:function(){return 2===L?h:null},setRequestHeader:function(a,b){var d=a.toLowerCase();L||(a=z[d]=z[d]||a,I[a]=b);return this},overrideMimeType:function(a){L||(t.mimeType=a);return this},statusCode:function(a){var b;if(a)if(2>L)for(b in a)da[b]=[da[b],a[b]];else B.always(a[B.status]);return this},abort:function(a){a=a||r;v&&v.abort(a);c(0,a);return this}};w.promise(B).complete=A.add;B.success=B.done;B.error=B.fail;t.url=((a||t.url||la)+"").replace(qc,"").replace(tc,ua[1]+ "//");t.type=b.method||b.type||t.method||t.type;t.dataTypes=d.trim(t.dataType||"*").toLowerCase().match(Y)||[""];null==t.crossDomain&&(a=zb.exec(t.url.toLowerCase()),t.crossDomain=!(!a||a[1]===ua[1]&&a[2]===ua[2]&&(a[3]||("http:"===a[1]?"80":"443"))===(ua[3]||("http:"===ua[1]?"80":"443"))));t.data&&t.processData&&"string"!==typeof t.data&&(t.data=d.param(t.data,t.traditional));D(Ab,t,b,B);if(2===L)return B;(n=d.event&&t.global)&&0===d.active++&&d.event.trigger("ajaxStart");t.type=t.type.toUpperCase(); t.hasContent=!sc.test(t.type);g=t.url;t.hasContent||(t.data&&(g=t.url+=(db.test(g)?"\x26":"?")+t.data,delete t.data),!1===t.cache&&(t.url=yb.test(g)?g.replace(yb,"$1_\x3d"+cb++):g+(db.test(g)?"\x26":"?")+"_\x3d"+cb++));t.ifModified&&(d.lastModified[g]&&B.setRequestHeader("If-Modified-Since",d.lastModified[g]),d.etag[g]&&B.setRequestHeader("If-None-Match",d.etag[g]));(t.data&&t.hasContent&&!1!==t.contentType||b.contentType)&&B.setRequestHeader("Content-Type",t.contentType);B.setRequestHeader("Accept", -t.dataTypes[0]&&t.accepts[t.dataTypes[0]]?t.accepts[t.dataTypes[0]]+("*"!==t.dataTypes[0]?", "+Bb+"; q\x3d0.01":""):t.accepts["*"]);for(e in t.headers)B.setRequestHeader(e,t.headers[e]);if(t.beforeSend&&(!1===t.beforeSend.call(y,B,t)||2===L))return B.abort();r="abort";for(e in{success:1,error:1,complete:1})B[e](t[e]);if(v=D(Va,t,b,B)){B.readyState=1;n&&C.trigger("ajaxSend",[B,t]);t.async&&0L)c(-1, -F);else throw F;}}else c(-1,"No Transport");return B},getJSON:function(a,b,c){return d.get(a,b,c,"json")},getScript:function(a,b){return d.get(a,void 0,b,"script")}});d.each(["get","post"],function(a,b){d[b]=function(a,c,e,g){d.isFunction(c)&&(g=g||e,e=c,c=void 0);return d.ajax({url:a,type:b,dataType:g,data:c,success:e})}});d._evalUrl=function(a){return d.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})};d.fn.extend({wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this, +t.dataTypes[0]&&t.accepts[t.dataTypes[0]]?t.accepts[t.dataTypes[0]]+("*"!==t.dataTypes[0]?", "+Bb+"; q\x3d0.01":""):t.accepts["*"]);for(f in t.headers)B.setRequestHeader(f,t.headers[f]);if(t.beforeSend&&(!1===t.beforeSend.call(y,B,t)||2===L))return B.abort();r="abort";for(f in{success:1,error:1,complete:1})B[f](t[f]);if(v=D(Va,t,b,B)){B.readyState=1;n&&C.trigger("ajaxSend",[B,t]);t.async&&0L)c(-1, +F);else throw F;}}else c(-1,"No Transport");return B},getJSON:function(a,b,c){return d.get(a,b,c,"json")},getScript:function(a,b){return d.get(a,void 0,b,"script")}});d.each(["get","post"],function(a,b){d[b]=function(a,c,f,g){d.isFunction(c)&&(g=g||f,f=c,c=void 0);return d.ajax({url:a,type:b,dataType:g,data:c,success:f})}});d._evalUrl=function(a){return d.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})};d.fn.extend({wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this, b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return d.isFunction(a)?this.each(function(b){d(this).wrapInner(a.call(this,b))}):this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=d.isFunction(a);return this.each(function(c){d(this).wrapAll(b? a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()}});d.expr.filters.hidden=function(a){return 0>=a.offsetWidth&&0>=a.offsetHeight||!w.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||d.css(a,"display"))};d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)};var uc=/%20/g,Nb=/\[\]$/,Cb=/\r?\n/g,vc=/^(?:submit|button|image|reset|file)$/i,wc=/^(?:input|select|textarea|keygen)/i;d.param= -function(a,b){var c,e=[],g=function(a,b){b=d.isFunction(b)?b():null==b?"":b;e[e.length]=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)};void 0===b&&(b=d.ajaxSettings&&d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){g(this.name,this.value)});else for(c in a)ea(c,a[c],b,g);return e.join("\x26").replace(uc,"+")};d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=d.prop(this, -"elements");return a?d.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!d(this).is(":disabled")&&wc.test(this.nodeName)&&!vc.test(a)&&(this.checked||!Ua.test(a))}).map(function(a,b){a=d(this).val();return null==a?null:d.isArray(a)?d.map(a,function(a){return{name:b.name,value:a.replace(Cb,"\r\n")}}):{name:b.name,value:a.replace(Cb,"\r\n")}}).get()}});d.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){var a;if(!(a=!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&& -La()))a:{try{a=new e.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}a=void 0}return a}:La;var xc=0,Ra={},Sa=d.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var a in Ra)Ra[a](void 0,!0)});w.cors=!!Sa&&"withCredentials"in Sa;(Sa=w.ajax=!!Sa)&&d.ajaxTransport(function(a){if(!a.crossDomain||w.cors){var b;return{send:function(c,e){var f,g=a.xhr(),k=++xc;g.open(a.type,a.url,a.async,a.username,a.password);if(a.xhrFields)for(f in a.xhrFields)g[f]=a.xhrFields[f];a.mimeType&& -g.overrideMimeType&&g.overrideMimeType(a.mimeType);a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(f in c)void 0!==c[f]&&g.setRequestHeader(f,c[f]+"");g.send(a.hasContent&&a.data||null);b=function(c,f){var h,l,m;if(b&&(f||4===g.readyState))if(delete Ra[k],b=void 0,g.onreadystatechange=d.noop,f)4!==g.readyState&&g.abort();else{m={};h=g.status;"string"===typeof g.responseText&&(m.text=g.responseText);try{l=g.statusText}catch(Mb){l=""}h||!a.isLocal||a.crossDomain?1223=== -h&&(h=204):h=m.text?200:404}m&&e(h,l,m,g.getAllResponseHeaders())};a.async?4===g.readyState?setTimeout(b):g.onreadystatechange=Ra[k]=b:b()},abort:function(){b&&b(void 0,!0)}}}});d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){d.globalEval(a);return a}}});d.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1);a.crossDomain&&(a.type="GET", -a.global=!1)});d.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||d("head")[0]||z.documentElement;return{send:function(d,f){b=z.createElement("script");b.async=!0;a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,d){if(d||!b.readyState||/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,d||f(200,"success")};c.insertBefore(b,c.firstChild)},abort:function(){if(b)b.onload(void 0, -!0)}}}});var Db=[],eb=/(=)\?(?=&|$)|\?\?/;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Db.pop()||d.expando+"_"+cb++;this[a]=!0;return a}});d.ajaxPrefilter("json jsonp",function(a,b,c){var f,g,h,m=!1!==a.jsonp&&(eb.test(a.url)?"url":"string"===typeof a.data&&!(a.contentType||"").indexOf("application/x-www-form-urlencoded")&&eb.test(a.data)&&"data");if(m||"jsonp"===a.dataTypes[0])return f=a.jsonpCallback=d.isFunction(a.jsonpCallback)?a.jsonpCallback():a.jsonpCallback,m?a[m]=a[m].replace(eb, -"$1"+f):!1!==a.jsonp&&(a.url+=(db.test(a.url)?"\x26":"?")+a.jsonp+"\x3d"+f),a.converters["script json"]=function(){h||d.error(f+" was not called");return h[0]},a.dataTypes[0]="json",g=e[f],e[f]=function(){h=arguments},c.always(function(){e[f]=g;a[f]&&(a.jsonpCallback=b.jsonpCallback,Db.push(f));h&&d.isFunction(g)&&g(h[0]);h=g=void 0}),"script"});d.parseHTML=function(a,b,c){if(!a||"string"!==typeof a)return null;"boolean"===typeof b&&(c=b,b=!1);b=b||z;var f=mb.exec(a);c=!c&&[];if(f)return[b.createElement(f[1])]; -f=d.buildFragment([a],b,c);c&&c.length&&d(c).remove();return d.merge([],f.childNodes)};var Eb=d.fn.load;d.fn.load=function(a,b,c){if("string"!==typeof a&&Eb)return Eb.apply(this,arguments);var f,e,g,h=this,m=a.indexOf(" ");0<=m&&(f=d.trim(a.slice(m,a.length)),a=a.slice(0,m));d.isFunction(b)?(c=b,b=void 0):b&&"object"===typeof b&&(g="POST");0this.$items.length-1||0>c))return this.sliding?this.$element.one("slid",function(){h.to(c)}):g==c?this.pause().cycle():this.slide(c>g?"next":"prev",e(this.$items[c]))},pause:function(c){c||(this.paused=!0);this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end), -this.cycle(!0));clearInterval(this.interval);this.interval=null;return this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(c,g){var h=this.$element.find(".item.active"),m=g||h[c]();g=this.interval;var n="next"==c?"left":"right",p="next"==c?"first":"last",r=this;this.sliding=!0;g&&this.pause();m=m.length?m:this.$element.find(".item")[p]();p=e.Event("slide",{relatedTarget:m[0],direction:n});if(!m.hasClass("active")){this.$indicators.length&& -(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var c=e(r.$indicators.children()[r.getActiveIndex()]);c&&c.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(p);if(p.isDefaultPrevented())return;m.addClass(c);m[0].offsetWidth;h.addClass(n);m.addClass(n);this.$element.one(e.support.transition.end,function(){m.removeClass([c,n].join(" ")).addClass("active");h.removeClass(["active",n].join(" "));r.sliding=!1; -setTimeout(function(){r.$element.trigger("slid")},0)})}else{this.$element.trigger(p);if(p.isDefaultPrevented())return;h.removeClass("active");m.addClass("active");this.sliding=!1;this.$element.trigger("slid")}g&&this.cycle();return this}}};var x=e.fn.carousel;e.fn.carousel=function(c){return this.each(function(){var g=e(this),h=g.data("carousel"),m=e.extend({},e.fn.carousel.defaults,"object"==typeof c&&c),n="string"==typeof c?c:m.slide;h||g.data("carousel",h=new p(this,m));if("number"==typeof c)h.to(c); -else if(n)h[n]();else m.interval&&h.pause().cycle()})};e.fn.carousel.defaults={interval:5E3,pause:"hover"};e.fn.carousel.Constructor=p;e.fn.carousel.noConflict=function(){e.fn.carousel=x;return this};e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(c){var g=e(this),h,m=e(g.attr("data-target")||(h=g.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,""));h=e.extend({},m.data(),g.data());var n;m.carousel(h);(n=g.attr("data-slide-to"))&&m.data("carousel").pause().to(n).cycle(); +function(a,b){var c,f=[],g=function(a,b){b=d.isFunction(b)?b():null==b?"":b;f[f.length]=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)};void 0===b&&(b=d.ajaxSettings&&d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){g(this.name,this.value)});else for(c in a)ea(c,a[c],b,g);return f.join("\x26").replace(uc,"+")};d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=d.prop(this, +"elements");return a?d.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!d(this).is(":disabled")&&wc.test(this.nodeName)&&!vc.test(a)&&(this.checked||!Ua.test(a))}).map(function(a,b){a=d(this).val();return null==a?null:d.isArray(a)?d.map(a,function(a){return{name:b.name,value:a.replace(Cb,"\r\n")}}):{name:b.name,value:a.replace(Cb,"\r\n")}}).get()}});d.ajaxSettings.xhr=void 0!==g.ActiveXObject?function(){var a;if(!(a=!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&& +La()))a:{try{a=new g.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}a=void 0}return a}:La;var xc=0,Ra={},Sa=d.ajaxSettings.xhr();g.attachEvent&&g.attachEvent("onunload",function(){for(var a in Ra)Ra[a](void 0,!0)});w.cors=!!Sa&&"withCredentials"in Sa;(Sa=w.ajax=!!Sa)&&d.ajaxTransport(function(a){if(!a.crossDomain||w.cors){var b;return{send:function(c,f){var e,g=a.xhr(),k=++xc;g.open(a.type,a.url,a.async,a.username,a.password);if(a.xhrFields)for(e in a.xhrFields)g[e]=a.xhrFields[e];a.mimeType&& +g.overrideMimeType&&g.overrideMimeType(a.mimeType);a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&g.setRequestHeader(e,c[e]+"");g.send(a.hasContent&&a.data||null);b=function(c,e){var h,l,m;if(b&&(e||4===g.readyState))if(delete Ra[k],b=void 0,g.onreadystatechange=d.noop,e)4!==g.readyState&&g.abort();else{m={};h=g.status;"string"===typeof g.responseText&&(m.text=g.responseText);try{l=g.statusText}catch(Mb){l=""}h||!a.isLocal||a.crossDomain?1223=== +h&&(h=204):h=m.text?200:404}m&&f(h,l,m,g.getAllResponseHeaders())};a.async?4===g.readyState?setTimeout(b):g.onreadystatechange=Ra[k]=b:b()},abort:function(){b&&b(void 0,!0)}}}});d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){d.globalEval(a);return a}}});d.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1);a.crossDomain&&(a.type="GET", +a.global=!1)});d.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||d("head")[0]||z.documentElement;return{send:function(d,e){b=z.createElement("script");b.async=!0;a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,d){if(d||!b.readyState||/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,d||e(200,"success")};c.insertBefore(b,c.firstChild)},abort:function(){if(b)b.onload(void 0, +!0)}}}});var Db=[],eb=/(=)\?(?=&|$)|\?\?/;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Db.pop()||d.expando+"_"+cb++;this[a]=!0;return a}});d.ajaxPrefilter("json jsonp",function(a,b,c){var e,f,h,m=!1!==a.jsonp&&(eb.test(a.url)?"url":"string"===typeof a.data&&!(a.contentType||"").indexOf("application/x-www-form-urlencoded")&&eb.test(a.data)&&"data");if(m||"jsonp"===a.dataTypes[0])return e=a.jsonpCallback=d.isFunction(a.jsonpCallback)?a.jsonpCallback():a.jsonpCallback,m?a[m]=a[m].replace(eb, +"$1"+e):!1!==a.jsonp&&(a.url+=(db.test(a.url)?"\x26":"?")+a.jsonp+"\x3d"+e),a.converters["script json"]=function(){h||d.error(e+" was not called");return h[0]},a.dataTypes[0]="json",f=g[e],g[e]=function(){h=arguments},c.always(function(){g[e]=f;a[e]&&(a.jsonpCallback=b.jsonpCallback,Db.push(e));h&&d.isFunction(f)&&f(h[0]);h=f=void 0}),"script"});d.parseHTML=function(a,b,c){if(!a||"string"!==typeof a)return null;"boolean"===typeof b&&(c=b,b=!1);b=b||z;var e=mb.exec(a);c=!c&&[];if(e)return[b.createElement(e[1])]; +e=d.buildFragment([a],b,c);c&&c.length&&d(c).remove();return d.merge([],e.childNodes)};var Eb=d.fn.load;d.fn.load=function(a,b,c){if("string"!==typeof a&&Eb)return Eb.apply(this,arguments);var e,f,g,h=this,m=a.indexOf(" ");0<=m&&(e=d.trim(a.slice(m,a.length)),a=a.slice(0,m));d.isFunction(b)?(c=b,b=void 0):b&&"object"===typeof b&&(g="POST");0this.$items.length-1||0>c))return this.sliding?this.$element.one("slid",function(){h.to(c)}):f==c?this.pause().cycle():this.slide(c>f?"next":"prev",g(this.$items[c]))},pause:function(c){c||(this.paused=!0);this.$element.find(".next, .prev").length&&g.support.transition.end&&(this.$element.trigger(g.support.transition.end), +this.cycle(!0));clearInterval(this.interval);this.interval=null;return this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(c,f){var h=this.$element.find(".item.active"),m=f||h[c]();f=this.interval;var n="next"==c?"left":"right",p="next"==c?"first":"last",r=this;this.sliding=!0;f&&this.pause();m=m.length?m:this.$element.find(".item")[p]();p=g.Event("slide",{relatedTarget:m[0],direction:n});if(!m.hasClass("active")){this.$indicators.length&& +(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var c=g(r.$indicators.children()[r.getActiveIndex()]);c&&c.addClass("active")}));if(g.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(p);if(p.isDefaultPrevented())return;m.addClass(c);m[0].offsetWidth;h.addClass(n);m.addClass(n);this.$element.one(g.support.transition.end,function(){m.removeClass([c,n].join(" ")).addClass("active");h.removeClass(["active",n].join(" "));r.sliding=!1; +setTimeout(function(){r.$element.trigger("slid")},0)})}else{this.$element.trigger(p);if(p.isDefaultPrevented())return;h.removeClass("active");m.addClass("active");this.sliding=!1;this.$element.trigger("slid")}f&&this.cycle();return this}}};var x=g.fn.carousel;g.fn.carousel=function(c){return this.each(function(){var f=g(this),h=f.data("carousel"),m=g.extend({},g.fn.carousel.defaults,"object"==typeof c&&c),n="string"==typeof c?c:m.slide;h||f.data("carousel",h=new p(this,m));if("number"==typeof c)h.to(c); +else if(n)h[n]();else m.interval&&h.pause().cycle()})};g.fn.carousel.defaults={interval:5E3,pause:"hover"};g.fn.carousel.Constructor=p;g.fn.carousel.noConflict=function(){g.fn.carousel=x;return this};g(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(c){var f=g(this),h,m=g(f.attr("data-target")||(h=f.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,""));h=g.extend({},m.data(),f.data());var n;m.carousel(h);(n=f.attr("data-slide-to"))&&m.data("carousel").pause().to(n).cycle(); c.preventDefault()})}(window.jQuery); -!function(e){var p=function(c,g){this.$element=e(c);this.options=e.extend({},e.fn.collapse.defaults,g);this.options.parent&&(this.$parent=e(this.options.parent));this.options.toggle&&this.toggle()};p.prototype={constructor:p,dimension:function(){return this.$element.hasClass("width")?"width":"height"},show:function(){var c,g,h,m;if(!this.transitioning&&!this.$element.hasClass("in")){c=this.dimension();g=e.camelCase(["scroll",c].join("-"));if((h=this.$parent&&this.$parent.find("\x3e .accordion-group \x3e .in"))&&h.length){if((m= -h.data("collapse"))&&m.transitioning)return;h.collapse("hide");m||h.data("collapse",null)}this.$element[c](0);this.transition("addClass",e.Event("show"),"shown");e.support.transition&&this.$element[c](this.$element[0][g])}},hide:function(){var c;!this.transitioning&&this.$element.hasClass("in")&&(c=this.dimension(),this.reset(this.$element[c]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[c](0))},reset:function(c){var e=this.dimension();this.$element.removeClass("collapse")[e](c|| -"auto")[0].offsetWidth;this.$element[null!==c?"addClass":"removeClass"]("collapse");return this},transition:function(c,g,h){var m=this,n=function(){"show"==g.type&&m.reset();m.transitioning=0;m.$element.trigger(h)};this.$element.trigger(g);g.isDefaultPrevented()||(this.transitioning=1,this.$element[c]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,n):n())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var x=e.fn.collapse; -e.fn.collapse=function(c){return this.each(function(){var g=e(this),h=g.data("collapse"),m=e.extend({},e.fn.collapse.defaults,g.data(),"object"==typeof c&&c);h||g.data("collapse",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.collapse.defaults={toggle:!0};e.fn.collapse.Constructor=p;e.fn.collapse.noConflict=function(){e.fn.collapse=x;return this};e(document).on("click.collapse.data-api","[data-toggle\x3dcollapse]",function(c){var g=e(this),h;c=g.attr("data-target")||c.preventDefault()||(h= -g.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,"");h=e(c).data("collapse")?"toggle":g.data();g[e(c).hasClass("in")?"addClass":"removeClass"]("collapsed");e(c).collapse(h)})}(window.jQuery); -!function(e){function p(){e(".dropdown-backdrop").remove();e("[data-toggle\x3ddropdown]").each(function(){x(e(this)).removeClass("open")})}function x(c){var g=c.attr("data-target");g||(g=(g=c.attr("href"))&&/#/.test(g)&&g.replace(/.*(?=#[^\s]*$)/,""));(g=g&&e(g))&&g.length||(g=c.parent());return g}var c=function(c){var g=e(c).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){g.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(c){c= -e(this);var g,h;if(!c.is(".disabled, :disabled")){g=x(c);h=g.hasClass("open");p();if(!h){if("ontouchstart"in document.documentElement)e('\x3cdiv class\x3d"dropdown-backdrop"/\x3e').insertBefore(e(this)).on("click",p);g.toggleClass("open")}c.focus();return!1}},keydown:function(c){var g,h,p;if(/(38|40|27)/.test(c.keyCode)&&(g=e(this),c.preventDefault(),c.stopPropagation(),!g.is(".disabled, :disabled"))){h=x(g);p=h.hasClass("open");if(!p||p&&27==c.keyCode)return 27==c.which&&h.find("[data-toggle\x3ddropdown]").focus(), -g.click();g=e("[role\x3dmenu] li:not(.divider):visible a",h);g.length&&(h=g.index(g.filter(":focus")),38==c.keyCode&&0c.left&&(e=-2*c.left,c.left=0,g.offset(c),p=g[0].offsetWidth),this.replaceArrow(e-m+p,p,"left")):this.replaceArrow(r-n,r,"top");x&&g.offset(c)},replaceArrow:function(c,e,h){this.arrow().css(h,c?50*(1-c/e)+"%":"")},setContent:function(){var c=this.tip(),e=this.getTitle();c.find(".tooltip-inner")[this.options.html?"html":"text"](e);c.removeClass("fade in top bottom left right")},hide:function(){function c(){var c= -setTimeout(function(){g.off(e.support.transition.end).detach()},500);g.one(e.support.transition.end,function(){clearTimeout(c);g.detach()})}var g=this.tip(),h=e.Event("hide");this.$element.trigger(h);if(!h.isDefaultPrevented())return g.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?c():g.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var c=this.$element;(c.attr("title")||"string"!=typeof c.attr("data-original-title"))&&c.attr("data-original-title",c.attr("title")|| -"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var c=this.$element[0];return e.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():{width:c.offsetWidth,height:c.offsetHeight},this.$element.offset())},getTitle:function(){var c=this.$element,e=this.options;return c.attr("data-original-title")||("function"==typeof e.title?e.title.call(c[0]):e.title)},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow= -this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(c){c=c?e(c.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var x=e.fn.tooltip; -e.fn.tooltip=function(c){return this.each(function(){var g=e(this),h=g.data("tooltip"),m="object"==typeof c&&c;h||g.data("tooltip",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.tooltip.Constructor=p;e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'\x3cdiv class\x3d"tooltip"\x3e\x3cdiv class\x3d"tooltip-arrow"\x3e\x3c/div\x3e\x3cdiv class\x3d"tooltip-inner"\x3e\x3c/div\x3e\x3c/div\x3e',trigger:"hover focus",title:"",delay:0,html:!1,container:!1};e.fn.tooltip.noConflict= -function(){e.fn.tooltip=x;return this}}(window.jQuery); -!function(e){var p=function(c,e){this.init("popover",c,e)};p.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:p,setContent:function(){var c=this.tip(),e=this.getTitle(),h=this.getContent();c.find(".popover-title")[this.options.html?"html":"text"](e);c.find(".popover-content")[this.options.html?"html":"text"](h);c.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var c=this.$element,e=this.options; -return("function"==typeof e.content?e.content.call(c[0]):e.content)||c.attr("data-content")},tip:function(){this.$tip||(this.$tip=e(this.options.template));return this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var x=e.fn.popover;e.fn.popover=function(c){return this.each(function(){var g=e(this),h=g.data("popover"),m="object"==typeof c&&c;h||g.data("popover",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.popover.Constructor=p;e.fn.popover.defaults= -e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'\x3cdiv class\x3d"popover"\x3e\x3cdiv class\x3d"arrow"\x3e\x3c/div\x3e\x3ch3 class\x3d"popover-title"\x3e\x3c/h3\x3e\x3cdiv class\x3d"popover-content"\x3e\x3c/div\x3e\x3c/div\x3e'});e.fn.popover.noConflict=function(){e.fn.popover=x;return this}}(window.jQuery); -!function(e){function p(c,g){var h=e.proxy(this.process,this),m=e(c).is("body")?e(window):e(c),n;this.options=e.extend({},e.fn.scrollspy.defaults,g);this.$scrollElement=m.on("scroll.scroll-spy.data-api",h);this.selector=(this.options.target||(n=e(c).attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li \x3e a";this.$body=e("body");this.refresh();this.process()}p.prototype={constructor:p,refresh:function(){var c=this;this.offsets=e([]);this.targets=e([]);this.$body.find(this.selector).map(function(){var g= -e(this),g=g.data("target")||g.attr("href"),h=/^#\w/.test(g)&&e(g);return h&&h.length&&[[h.position().top+(!e.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),g]]||null}).sort(function(c,e){return c[0]-e[0]}).each(function(){c.offsets.push(this[0]);c.targets.push(this[1])})},process:function(){var c=this.$scrollElement.scrollTop()+this.options.offset,e=(this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight)-this.$scrollElement.height(),h=this.offsets,m=this.targets,n=this.activeTarget, -p;if(c>=e)return n!=(p=m.last()[0])&&this.activate(p);for(p=h.length;p--;)n!=m[p]&&c>=h[p]&&(!h[p+1]||c<=h[p+1])&&this.activate(m[p])},activate:function(c){this.activeTarget=c;e(this.selector).parent(".active").removeClass("active");c=e(this.selector+'[data-target\x3d"'+c+'"],'+this.selector+'[href\x3d"'+c+'"]').parent("li").addClass("active");c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active"));c.trigger("activate")}};var x=e.fn.scrollspy;e.fn.scrollspy=function(c){return this.each(function(){var g= -e(this),h=g.data("scrollspy"),m="object"==typeof c&&c;h||g.data("scrollspy",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.scrollspy.Constructor=p;e.fn.scrollspy.defaults={offset:10};e.fn.scrollspy.noConflict=function(){e.fn.scrollspy=x;return this};e(window).on("load",function(){e('[data-spy\x3d"scroll"]').each(function(){var c=e(this);c.scrollspy(c.data())})})}(window.jQuery); -!function(e){var p=function(c){this.element=e(c)};p.prototype={constructor:p,show:function(){var c=this.element,g=c.closest("ul:not(.dropdown-menu)"),h=c.attr("data-target"),m,n;h||(h=(h=c.attr("href"))&&h.replace(/.*(?=#[^\s]*$)/,""));c.parent("li").hasClass("active")||(m=g.find(".active:last a")[0],n=e.Event("show",{relatedTarget:m}),c.trigger(n),n.isDefaultPrevented()||(h=e(h),this.activate(c.parent("li"),g),this.activate(h,h.parent(),function(){c.trigger({type:"shown",relatedTarget:m})})))},activate:function(c, -g,h){function m(){n.removeClass("active").find("\x3e .dropdown-menu \x3e .active").removeClass("active");c.addClass("active");p?(c[0].offsetWidth,c.addClass("in")):c.removeClass("fade");c.parent(".dropdown-menu")&&c.closest("li.dropdown").addClass("active");h&&h()}var n=g.find("\x3e .active"),p=h&&e.support.transition&&n.hasClass("fade");p?n.one(e.support.transition.end,m):m();n.removeClass("in")}};var x=e.fn.tab;e.fn.tab=function(c){return this.each(function(){var g=e(this),h=g.data("tab");h||g.data("tab", -h=new p(this));if("string"==typeof c)h[c]()})};e.fn.tab.Constructor=p;e.fn.tab.noConflict=function(){e.fn.tab=x;return this};e(document).on("click.tab.data-api",'[data-toggle\x3d"tab"], [data-toggle\x3d"pill"]',function(c){c.preventDefault();e(this).tab("show")})}(window.jQuery); -!function(e){var p=function(c,g){this.$element=e(c);this.options=e.extend({},e.fn.typeahead.defaults,g);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=e(this.options.menu);this.shown=!1;this.listen()};p.prototype={constructor:p,select:function(){var c=this.$menu.find(".active").attr("data-value");this.$element.val(this.updater(c)).change(); -return this.hide()},updater:function(c){return c},show:function(){var c=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});this.$menu.insertAfter(this.$element).css({top:c.top+c.height,left:c.left}).show();this.shown=!0;return this},hide:function(){this.$menu.hide();this.shown=!1;return this},lookup:function(c){this.query=this.$element.val();return!this.query||this.query.lengthc.left&&(f=-2*c.left,c.left=0,g.offset(c),p=g[0].offsetWidth),this.replaceArrow(f-m+p,p,"left")):this.replaceArrow(r-n,r,"top");x&&g.offset(c)},replaceArrow:function(c,f,g){this.arrow().css(g,c?50*(1-c/f)+"%":"")},setContent:function(){var c=this.tip(),f=this.getTitle();c.find(".tooltip-inner")[this.options.html?"html":"text"](f);c.removeClass("fade in top bottom left right")},hide:function(){function c(){var c= +setTimeout(function(){f.off(g.support.transition.end).detach()},500);f.one(g.support.transition.end,function(){clearTimeout(c);f.detach()})}var f=this.tip(),h=g.Event("hide");this.$element.trigger(h);if(!h.isDefaultPrevented())return f.removeClass("in"),g.support.transition&&this.$tip.hasClass("fade")?c():f.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var c=this.$element;(c.attr("title")||"string"!=typeof c.attr("data-original-title"))&&c.attr("data-original-title",c.attr("title")|| +"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var c=this.$element[0];return g.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():{width:c.offsetWidth,height:c.offsetHeight},this.$element.offset())},getTitle:function(){var c=this.$element,f=this.options;return c.attr("data-original-title")||("function"==typeof f.title?f.title.call(c[0]):f.title)},tip:function(){return this.$tip=this.$tip||g(this.options.template)},arrow:function(){return this.$arrow= +this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(c){c=c?g(c.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var x=g.fn.tooltip; +g.fn.tooltip=function(c){return this.each(function(){var f=g(this),h=f.data("tooltip"),m="object"==typeof c&&c;h||f.data("tooltip",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.tooltip.Constructor=p;g.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'\x3cdiv class\x3d"tooltip"\x3e\x3cdiv class\x3d"tooltip-arrow"\x3e\x3c/div\x3e\x3cdiv class\x3d"tooltip-inner"\x3e\x3c/div\x3e\x3c/div\x3e',trigger:"hover focus",title:"",delay:0,html:!1,container:!1};g.fn.tooltip.noConflict= +function(){g.fn.tooltip=x;return this}}(window.jQuery); +!function(g){var p=function(c,f){this.init("popover",c,f)};p.prototype=g.extend({},g.fn.tooltip.Constructor.prototype,{constructor:p,setContent:function(){var c=this.tip(),f=this.getTitle(),g=this.getContent();c.find(".popover-title")[this.options.html?"html":"text"](f);c.find(".popover-content")[this.options.html?"html":"text"](g);c.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var c=this.$element,f=this.options; +return("function"==typeof f.content?f.content.call(c[0]):f.content)||c.attr("data-content")},tip:function(){this.$tip||(this.$tip=g(this.options.template));return this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var x=g.fn.popover;g.fn.popover=function(c){return this.each(function(){var f=g(this),h=f.data("popover"),m="object"==typeof c&&c;h||f.data("popover",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.popover.Constructor=p;g.fn.popover.defaults= +g.extend({},g.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'\x3cdiv class\x3d"popover"\x3e\x3cdiv class\x3d"arrow"\x3e\x3c/div\x3e\x3ch3 class\x3d"popover-title"\x3e\x3c/h3\x3e\x3cdiv class\x3d"popover-content"\x3e\x3c/div\x3e\x3c/div\x3e'});g.fn.popover.noConflict=function(){g.fn.popover=x;return this}}(window.jQuery); +!function(g){function p(c,f){var h=g.proxy(this.process,this),m=g(c).is("body")?g(window):g(c),n;this.options=g.extend({},g.fn.scrollspy.defaults,f);this.$scrollElement=m.on("scroll.scroll-spy.data-api",h);this.selector=(this.options.target||(n=g(c).attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li \x3e a";this.$body=g("body");this.refresh();this.process()}p.prototype={constructor:p,refresh:function(){var c=this;this.offsets=g([]);this.targets=g([]);this.$body.find(this.selector).map(function(){var f= +g(this),f=f.data("target")||f.attr("href"),h=/^#\w/.test(f)&&g(f);return h&&h.length&&[[h.position().top+(!g.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),f]]||null}).sort(function(c,g){return c[0]-g[0]}).each(function(){c.offsets.push(this[0]);c.targets.push(this[1])})},process:function(){var c=this.$scrollElement.scrollTop()+this.options.offset,f=(this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight)-this.$scrollElement.height(),g=this.offsets,m=this.targets,n=this.activeTarget, +p;if(c>=f)return n!=(p=m.last()[0])&&this.activate(p);for(p=g.length;p--;)n!=m[p]&&c>=g[p]&&(!g[p+1]||c<=g[p+1])&&this.activate(m[p])},activate:function(c){this.activeTarget=c;g(this.selector).parent(".active").removeClass("active");c=g(this.selector+'[data-target\x3d"'+c+'"],'+this.selector+'[href\x3d"'+c+'"]').parent("li").addClass("active");c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active"));c.trigger("activate")}};var x=g.fn.scrollspy;g.fn.scrollspy=function(c){return this.each(function(){var f= +g(this),h=f.data("scrollspy"),m="object"==typeof c&&c;h||f.data("scrollspy",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.scrollspy.Constructor=p;g.fn.scrollspy.defaults={offset:10};g.fn.scrollspy.noConflict=function(){g.fn.scrollspy=x;return this};g(window).on("load",function(){g('[data-spy\x3d"scroll"]').each(function(){var c=g(this);c.scrollspy(c.data())})})}(window.jQuery); +!function(g){var p=function(c){this.element=g(c)};p.prototype={constructor:p,show:function(){var c=this.element,f=c.closest("ul:not(.dropdown-menu)"),h=c.attr("data-target"),m,n;h||(h=(h=c.attr("href"))&&h.replace(/.*(?=#[^\s]*$)/,""));c.parent("li").hasClass("active")||(m=f.find(".active:last a")[0],n=g.Event("show",{relatedTarget:m}),c.trigger(n),n.isDefaultPrevented()||(h=g(h),this.activate(c.parent("li"),f),this.activate(h,h.parent(),function(){c.trigger({type:"shown",relatedTarget:m})})))},activate:function(c, +f,h){function m(){n.removeClass("active").find("\x3e .dropdown-menu \x3e .active").removeClass("active");c.addClass("active");p?(c[0].offsetWidth,c.addClass("in")):c.removeClass("fade");c.parent(".dropdown-menu")&&c.closest("li.dropdown").addClass("active");h&&h()}var n=f.find("\x3e .active"),p=h&&g.support.transition&&n.hasClass("fade");p?n.one(g.support.transition.end,m):m();n.removeClass("in")}};var x=g.fn.tab;g.fn.tab=function(c){return this.each(function(){var f=g(this),h=f.data("tab");h||f.data("tab", +h=new p(this));if("string"==typeof c)h[c]()})};g.fn.tab.Constructor=p;g.fn.tab.noConflict=function(){g.fn.tab=x;return this};g(document).on("click.tab.data-api",'[data-toggle\x3d"tab"], [data-toggle\x3d"pill"]',function(c){c.preventDefault();g(this).tab("show")})}(window.jQuery); +!function(g){var p=function(c,f){this.$element=g(c);this.options=g.extend({},g.fn.typeahead.defaults,f);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=g(this.options.menu);this.shown=!1;this.listen()};p.prototype={constructor:p,select:function(){var c=this.$menu.find(".active").attr("data-value");this.$element.val(this.updater(c)).change(); +return this.hide()},updater:function(c){return c},show:function(){var c=g.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});this.$menu.insertAfter(this.$element).css({top:c.top+c.height,left:c.left}).show();this.shown=!0;return this},hide:function(){this.$menu.hide();this.shown=!1;return this},lookup:function(c){this.query=this.$element.val();return!this.query||this.query.length=c-n?"bottom":null!=p&&g<=p?"top":!1;this.affixed!==c&&(this.affixed=c,this.unpin="bottom"==c?h.top-g:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(c?"-"+c:"")))}};var x=e.fn.affix;e.fn.affix=function(c){return this.each(function(){var g=e(this),h=g.data("affix"),m="object"==typeof c&&c;h||g.data("affix", -h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.affix.Constructor=p;e.fn.affix.defaults={offset:0};e.fn.affix.noConflict=function(){e.fn.affix=x;return this};e(window).on("load",function(){e('[data-spy\x3d"affix"]').each(function(){var c=e(this),g=c.data();g.offset=g.offset||{};g.offsetBottom&&(g.offset.bottom=g.offsetBottom);g.offsetTop&&(g.offset.top=g.offsetTop);c.affix(g)})})}(window.jQuery);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; -(function(){function e(c){function e(c){var e=c.charCodeAt(0);if(92!==e)return e;var g=c.charAt(1);return(e=H[g])?e:"0"<=g&&"7">=g?parseInt(c.substring(1),8):"u"===g||"x"===g?parseInt(c.substring(2),16):c.charCodeAt(1)}function g(c){if(32>c)return(16>c?"\\x0":"\\x")+c.toString(16);c=String.fromCharCode(c);if("\\"===c||"-"===c||"["===c||"]"===c)c="\\"+c;return c}function h(c){var h=c.substring(1,c.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g);c= -[];for(var m=[],n="^"===h[0],p=n?1:0,v=h.length;pr||122r||90r||122v[0]&&(v[1]+1>v[0]&&m.push("-"),m.push(g(v[1])));m.push("]");return m.join("")}function m(c){for(var e=c.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),g=e.length,m=[],v=0,A=0;v/, -q])):g.push(["com",/^#[^\n\r]*/,q,"#"]));e.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,q]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));e.regexLiterals&&h.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(m=e.types)&& -h.push(["typ",m]);e=(""+e.keywords).replace(/^ | $/g,"");e.length&&h.push(["kwd",RegExp("^(?:"+e.replace(/[\s,]+/g,"|")+")\\b"),q]);g.push(["pln",/^\s+/,q," \r\n\t "]);h.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return c(g,h)}function h(c,e){function g(c){switch(c.nodeType){case 1:if(m.test(c.className))break; -if("BR"===c.nodeName)h(c),c.parentNode&&c.parentNode.removeChild(c);else for(c=c.firstChild;c;c=c.nextSibling)g(c);break;case 3:case 4:if(A){var e=c.nodeValue,r=e.match(p);if(r){var v=e.substring(0,r.index);c.nodeValue=v;(e=e.substring(r.index+r[0].length))&&c.parentNode.insertBefore(n.createTextNode(e),c.nextSibling);h(c);v||c.parentNode.removeChild(c)}}}}function h(c){function e(c,g){g=g?c.cloneNode(!1):c;var h=c.parentNode;if(h){h=e(h,1);c=c.nextSibling;h.appendChild(g);for(var m=c;m;m=c)c=m.nextSibling, -h.appendChild(m)}return g}for(;!c.nextSibling;)if(c=c.parentNode,!c)return;c=e(c.nextSibling,0);for(var g;(g=c.parentNode)&&1===g.nodeType;)c=g;x.push(c)}var m=/(?:^|\s)nocode(?:\s|$)/,p=/\r\n?|\n/,n=c.ownerDocument,r;c.currentStyle?r=c.currentStyle.whiteSpace:window.getComputedStyle&&(r=n.defaultView.getComputedStyle(c,q).getPropertyValue("white-space"));var A=r&&"pre"===r.substring(0,3);for(r=n.createElement("LI");c.firstChild;)r.appendChild(c.firstChild);for(var x=[r],E=0;E=G&&(h+=2);g>=C&&(c+=2)}}catch(Z){"console"in window&&console.log(Z&&Z.stack?Z.stack:Z)}}var r=["break,continue,do,else,for,if,return,while"],E=[[r,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +this.select();this.$element.focus()},mouseenter:function(c){this.mousedover=!0;this.$menu.find(".active").removeClass("active");g(c.currentTarget).addClass("active")},mouseleave:function(c){this.mousedover=!1;!this.focused&&this.shown&&this.hide()}};var x=g.fn.typeahead;g.fn.typeahead=function(c){return this.each(function(){var f=g(this),h=f.data("typeahead"),m="object"==typeof c&&c;h||f.data("typeahead",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.typeahead.defaults={source:[],items:8,menu:'\x3cul class\x3d"typeahead dropdown-menu"\x3e\x3c/ul\x3e', +item:'\x3cli\x3e\x3ca href\x3d"#"\x3e\x3c/a\x3e\x3c/li\x3e',minLength:1};g.fn.typeahead.Constructor=p;g.fn.typeahead.noConflict=function(){g.fn.typeahead=x;return this};g(document).on("focus.typeahead.data-api",'[data-provide\x3d"typeahead"]',function(c){c=g(this);c.data("typeahead")||c.typeahead(c.data())})}(window.jQuery); +!function(g){var p=function(c,f){this.options=g.extend({},g.fn.affix.defaults,f);this.$window=g(window).on("scroll.affix.data-api",g.proxy(this.checkPosition,this)).on("click.affix.data-api",g.proxy(function(){setTimeout(g.proxy(this.checkPosition,this),1)},this));this.$element=g(c);this.checkPosition()};p.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=g(document).height(),f=this.$window.scrollTop(),h=this.$element.offset(),m=this.options.offset,n=m.bottom,p=m.top;"object"!= +typeof m&&(n=p=m);"function"==typeof p&&(p=m.top());"function"==typeof n&&(n=m.bottom());c=null!=this.unpin&&f+this.unpin<=h.top?!1:null!=n&&h.top+this.$element.height()>=c-n?"bottom":null!=p&&f<=p?"top":!1;this.affixed!==c&&(this.affixed=c,this.unpin="bottom"==c?h.top-f:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(c?"-"+c:"")))}};var x=g.fn.affix;g.fn.affix=function(c){return this.each(function(){var f=g(this),h=f.data("affix"),m="object"==typeof c&&c;h||f.data("affix", +h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.affix.Constructor=p;g.fn.affix.defaults={offset:0};g.fn.affix.noConflict=function(){g.fn.affix=x;return this};g(window).on("load",function(){g('[data-spy\x3d"affix"]').each(function(){var c=g(this),f=c.data();f.offset=f.offset||{};f.offsetBottom&&(f.offset.bottom=f.offsetBottom);f.offsetTop&&(f.offset.top=f.offsetTop);c.affix(f)})})}(window.jQuery);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function g(c){function f(c){var f=c.charCodeAt(0);if(92!==f)return f;var g=c.charAt(1);return(f=H[g])?f:"0"<=g&&"7">=g?parseInt(c.substring(1),8):"u"===g||"x"===g?parseInt(c.substring(2),16):c.charCodeAt(1)}function g(c){if(32>c)return(16>c?"\\x0":"\\x")+c.toString(16);c=String.fromCharCode(c);if("\\"===c||"-"===c||"["===c||"]"===c)c="\\"+c;return c}function h(c){var h=c.substring(1,c.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g);c= +[];for(var m=[],n="^"===h[0],p=n?1:0,v=h.length;pr||122r||90r||122v[0]&&(v[1]+1>v[0]&&m.push("-"),m.push(g(v[1])));m.push("]");return m.join("")}function m(c){for(var f=c.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),g=f.length,m=[],v=0,A=0;v/, +q])):g.push(["com",/^#[^\n\r]*/,q,"#"]));f.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,q]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));f.regexLiterals&&h.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(m=f.types)&& +h.push(["typ",m]);f=(""+f.keywords).replace(/^ | $/g,"");f.length&&h.push(["kwd",RegExp("^(?:"+f.replace(/[\s,]+/g,"|")+")\\b"),q]);g.push(["pln",/^\s+/,q," \r\n\t "]);h.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return c(g,h)}function h(c,f){function g(c){switch(c.nodeType){case 1:if(m.test(c.className))break; +if("BR"===c.nodeName)h(c),c.parentNode&&c.parentNode.removeChild(c);else for(c=c.firstChild;c;c=c.nextSibling)g(c);break;case 3:case 4:if(A){var f=c.nodeValue,r=f.match(p);if(r){var v=f.substring(0,r.index);c.nodeValue=v;(f=f.substring(r.index+r[0].length))&&c.parentNode.insertBefore(n.createTextNode(f),c.nextSibling);h(c);v||c.parentNode.removeChild(c)}}}}function h(c){function f(c,g){g=g?c.cloneNode(!1):c;var h=c.parentNode;if(h){h=f(h,1);c=c.nextSibling;h.appendChild(g);for(var m=c;m;m=c)c=m.nextSibling, +h.appendChild(m)}return g}for(;!c.nextSibling;)if(c=c.parentNode,!c)return;c=f(c.nextSibling,0);for(var g;(g=c.parentNode)&&1===g.nodeType;)c=g;x.push(c)}var m=/(?:^|\s)nocode(?:\s|$)/,p=/\r\n?|\n/,n=c.ownerDocument,r;c.currentStyle?r=c.currentStyle.whiteSpace:window.getComputedStyle&&(r=n.defaultView.getComputedStyle(c,q).getPropertyValue("white-space"));var A=r&&"pre"===r.substring(0,3);for(r=n.createElement("LI");c.firstChild;)r.appendChild(c.firstChild);for(var x=[r],E=0;E=G&&(h+=2);g>=C&&(c+=2)}}catch(Z){"console"in window&&console.log(Z&&Z.stack?Z.stack:Z)}}var r=["break,continue,do,else,for,if,return,while"],E=[[r,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],fa=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],aa=[E,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], V=[aa,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],ha=[r,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], -Aa=[r,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],r=[r,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,Ta=/\S/,Ia=g({keywords:[fa,V,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +Aa=[r,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],r=[r,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,Ta=/\S/,Ia=f({keywords:[fa,V,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ ha,Aa,r],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),ia={};m(Ia,["default-code"]);m(c([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), "default-markup htm html mxml xhtml xml xsl".split(" "));m(c([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", -/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);m(c([],[["atv",/^[\S\s]+/]]),["uq.val"]);m(g({keywords:fa,hashComments:!0,cStyleComments:!0,types:N}),"c cc cpp cxx cyc m".split(" "));m(g({keywords:"null,true,false"}),["json"]);m(g({keywords:V,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}),["cs"]);m(g({keywords:aa,cStyleComments:!0}),["java"]);m(g({keywords:r,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);m(g({keywords:ha,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), -["cv","py"]);m(g({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);m(g({keywords:Aa,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);m(g({keywords:E,cStyleComments:!0,regexLiterals:!0}),["js"]);m(g({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", -hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);m(c([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(c,e,g){var m=document.createElement("PRE");m.innerHTML=c;g&&h(m,g);W({g:e,i:g,h:m});return m.innerHTML};window.prettyPrint=function(c){function e(){for(var g=window.PR_SHOULD_USE_CONTINUATION?x.now()+250:Infinity;A\]\.\/\(\)\*\\\n\t\b\v]/g, -"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()};this.hasAnchorJSLink=function(c){var e=c.firstChild&&-1<(" "+c.firstChild.className+" ").indexOf(" anchorjs-link ");c=c.lastChild&&-1<(" "+c.lastChild.className+" ").indexOf(" anchorjs-link ");return e||c||!1}}}); \ No newline at end of file +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);m(c([],[["atv",/^[\S\s]+/]]),["uq.val"]);m(f({keywords:fa,hashComments:!0,cStyleComments:!0,types:N}),"c cc cpp cxx cyc m".split(" "));m(f({keywords:"null,true,false"}),["json"]);m(f({keywords:V,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}),["cs"]);m(f({keywords:aa,cStyleComments:!0}),["java"]);m(f({keywords:r,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);m(f({keywords:ha,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);m(f({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);m(f({keywords:Aa,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);m(f({keywords:E,cStyleComments:!0,regexLiterals:!0}),["js"]);m(f({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);m(c([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(c,f,g){var m=document.createElement("PRE");m.innerHTML=c;g&&h(m,g);W({g:f,i:g,h:m});return m.innerHTML};window.prettyPrint=function(c){function f(){for(var g=window.PR_SHOULD_USE_CONTINUATION?x.now()+250:Infinity;A\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()};this.hasAnchorJSLink=function(c){var f=c.firstChild&&-1<(" "+c.firstChild.className+" ").indexOf(" anchorjs-link ");c=c.lastChild&&-1<(" "+c.lastChild.className+" ").indexOf(" anchorjs-link ");return f||c||!1}}}); \ No newline at end of file diff --git a/license-plugin-report.xml b/license-plugin-report.xml new file mode 100644 index 0000000..c52ecb5 --- /dev/null +++ b/license-plugin-report.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/licenses.html b/licenses.html index 7cb175a..325cc79 100644 --- a/licenses.html +++ b/licenses.html @@ -2,37 +2,35 @@ - - stringhold – Project Licenses - + + stringhold – Project Licenses + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Overview

Typically the licenses listed for the project are that of the project itself, and not of dependencies.

Project Licenses

Apache License, Version 2.0

-
+
                                  Apache License
                            Version 2.0, January 2004
@@ -336,9 +336,9 @@ 

Apache License, Version 2.0

\ No newline at end of file diff --git a/modules.html b/modules.html index 273a448..8ea17b0 100644 --- a/modules.html +++ b/modules.html @@ -2,37 +2,35 @@ - - stringhold – Project Modules - + + stringhold – Project Modules + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Project Modules

This project has declared the following modules:

@@ -143,9 +143,9 @@

Project Modules

\ No newline at end of file diff --git a/plugin-management.html b/plugin-management.html index 1cccc09..21895b0 100644 --- a/plugin-management.html +++ b/plugin-management.html @@ -2,37 +2,35 @@ - - stringhold – Project Plugin Management - + + stringhold – Project Plugin Management + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Project Plugin Management

@@ -88,138 +88,158 @@

Project Plugin Management

- - - - - + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + - + + + + + - - + + + + + + + + + + - + + + + + - - + +
ArtifactId Version
com.coderplus.maven.pluginscopy-rename-maven-plugin1.0.1
com.github.spotbugs spotbugs-maven-plugin4.7.3.0
4.8.2.0
com.kohlschutter.mavenpluginscopy-rename-maven-plugin2.0.0
com.kohlschutter.retrolambdaretrolambda-maven-plugin2.5.8.2
com.mycila license-maven-plugin4.2.rc3
4.3
de.thetaphi forbiddenapis3.4
3.6
io.github.git-commit-id git-commit-id-maven-plugin5.0.0
7.0.0
net.revelc.code impsort-maven-plugin1.8.0
1.9.0
net.revelc.code.formatter formatter-maven-plugin2.21.0
2.23.0
org.apache.maven.plugins maven-antrun-plugin 3.1.0
org.apache.maven.pluginsmaven-assembly-plugin3.4.2
org.apache.maven.pluginsmaven-checkstyle-plugin3.2.1
maven-assembly-plugin3.6.0
org.apache.maven.pluginsmaven-clean-plugin3.2.0
maven-checkstyle-plugin3.3.1
org.apache.maven.pluginsmaven-compiler-plugin3.10.1
maven-clean-plugin3.3.2
org.apache.maven.pluginsmaven-dependency-plugin3.5.0
maven-compiler-plugin3.12.1
org.apache.maven.pluginsmaven-deploy-plugin3.0.0
maven-dependency-plugin3.6.1
org.apache.maven.pluginsmaven-enforcer-plugin3.1.0
maven-deploy-plugin3.1.1
org.apache.maven.pluginsmaven-gpg-plugin3.0.1
maven-enforcer-plugin3.4.1
org.apache.maven.pluginsmaven-install-pluginmaven-gpg-plugin 3.1.0
org.apache.maven.pluginsmaven-invoker-plugin3.4.0
maven-install-plugin3.1.1
org.apache.maven.pluginsmaven-jar-plugin3.3.0
maven-invoker-plugin3.6.0
org.apache.maven.pluginsmaven-javadoc-plugin3.4.1
maven-jar-plugin3.3.0
org.apache.maven.pluginsmaven-pmd-plugin3.20.0
maven-javadoc-plugin3.6.3
org.apache.maven.pluginsmaven-project-info-reports-plugin3.4.2
maven-pmd-plugin3.21.2
org.apache.maven.pluginsmaven-release-plugin2.5.3
maven-project-info-reports-plugin3.5.0
org.apache.maven.pluginsmaven-resources-plugin3.3.0
maven-release-plugin3.0.1
org.apache.maven.pluginsmaven-scm-plugin2.0.0-M3
maven-resources-plugin3.3.1
org.apache.maven.pluginsmaven-scm-publish-plugin3.1.0
maven-scm-plugin2.0.1
org.apache.maven.pluginsmaven-shade-plugin3.4.1
maven-scm-publish-plugin3.2.1
org.apache.maven.pluginsmaven-site-plugin4.0.0-M4
maven-shade-plugin3.5.1
org.apache.maven.pluginsmaven-source-plugin3.2.1
maven-site-plugin4.0.0-M11
org.apache.maven.pluginsmaven-source-plugin3.3.0
org.apache.maven.plugins maven-surefire-plugin3.0.0-M8
3.2.3
org.codehaus.mojoanimal-sniffer-maven-plugin1.23
org.codehaus.mojobuild-helper-maven-plugin3.3.0
build-helper-maven-plugin3.5.0
org.codehaus.mojoproperties-maven-plugin1.2.1
org.codehaus.mojotemplating-maven-plugin3.0.0
org.codehaus.mojo versions-maven-plugin2.14.2
2.16.2
org.eclipse.m2elifecycle-mapping1.0.0
org.jacoco jacoco-maven-plugin0.8.8
0.8.11
org.sonatype.plugins nexus-staging-maven-plugin 1.6.13
@@ -270,9 +290,9 @@

Project Plugin Management

\ No newline at end of file diff --git a/plugin-updates-report.html b/plugin-updates-report.html new file mode 100644 index 0000000..abb0cc6 --- /dev/null +++ b/plugin-updates-report.html @@ -0,0 +1,1289 @@ + + + + + + + + + + stringhold – Plugin Updates Report + + + + + + + Fork me on GitHub +
+
+ + + +
+
+
+ + +
+
+
+

Overview

+

This report summarizes newer versions that may be available for your project's various plugins.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
# of plugins using the latest version available39
# of plugins where the next version available is smaller than an incremental version update0
# of plugins where the next version available is an incremental version update0
# of plugins where the next version available is a minor version update0
# of plugins where the next version available is a major version update0
# of plugins where a dependencies section containes a dependency with an updated version0
+

Plugin Management

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusGroup IdArtifact IdCurrent VersionLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
com.github.spotbugsspotbugs-maven-plugin4.8.2.0
com.kohlschutter.mavenpluginscopy-rename-maven-plugin2.0.0
com.kohlschutter.retrolambdaretrolambda-maven-plugin2.5.8.2
com.mycilalicense-maven-plugin4.3
de.thetaphiforbiddenapis3.6
io.github.git-commit-idgit-commit-id-maven-plugin7.0.0
net.revelc.codeimpsort-maven-plugin1.9.0
net.revelc.code.formatterformatter-maven-plugin2.23.0
org.apache.maven.pluginsmaven-antrun-plugin3.1.0
org.apache.maven.pluginsmaven-assembly-plugin3.6.0
org.apache.maven.pluginsmaven-checkstyle-plugin3.3.1
org.apache.maven.pluginsmaven-clean-plugin3.3.2
org.apache.maven.pluginsmaven-compiler-plugin3.12.1
org.apache.maven.pluginsmaven-dependency-plugin3.6.1
org.apache.maven.pluginsmaven-deploy-plugin3.1.1
org.apache.maven.pluginsmaven-enforcer-plugin3.4.1
org.apache.maven.pluginsmaven-gpg-plugin3.1.0
org.apache.maven.pluginsmaven-install-plugin3.1.1
org.apache.maven.pluginsmaven-invoker-plugin3.6.0
org.apache.maven.pluginsmaven-jar-plugin3.3.0
org.apache.maven.pluginsmaven-javadoc-plugin3.6.3
org.apache.maven.pluginsmaven-pmd-plugin3.21.2
org.apache.maven.pluginsmaven-project-info-reports-plugin3.5.0
org.apache.maven.pluginsmaven-release-plugin3.0.1
org.apache.maven.pluginsmaven-resources-plugin3.3.1
org.apache.maven.pluginsmaven-scm-plugin2.0.1
org.apache.maven.pluginsmaven-scm-publish-plugin3.2.1
org.apache.maven.pluginsmaven-shade-plugin3.5.1
org.apache.maven.pluginsmaven-site-plugin4.0.0-M11
org.apache.maven.pluginsmaven-source-plugin3.3.0
org.apache.maven.pluginsmaven-surefire-plugin3.2.3
org.codehaus.mojoanimal-sniffer-maven-plugin1.23
org.codehaus.mojobuild-helper-maven-plugin3.5.0
org.codehaus.mojoproperties-maven-plugin1.2.1
org.codehaus.mojotemplating-maven-plugin3.0.0
org.codehaus.mojoversions-maven-plugin2.16.2
org.eclipse.m2elifecycle-mapping1.0.0
org.jacocojacoco-maven-plugin0.8.11
org.sonatype.pluginsnexus-staging-maven-plugin1.6.13
StatusGroup IdArtifact IdCurrent VersionLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
+

Plugins

+

This project does not declare any plugins in a build/plugins section.

+

Plugin Updates

+

+

Plugin com.github.spotbugs:spotbugs-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idcom.github.spotbugs
Artifact Idspotbugs-maven-plugin
Current Version4.8.2.0
+

Plugin com.kohlschutter.mavenplugins:copy-rename-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idcom.kohlschutter.mavenplugins
Artifact Idcopy-rename-maven-plugin
Current Version2.0.0
+

Plugin com.kohlschutter.retrolambda:retrolambda-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idcom.kohlschutter.retrolambda
Artifact Idretrolambda-maven-plugin
Current Version2.5.8.2
+

Plugin com.mycila:license-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idcom.mycila
Artifact Idlicense-maven-plugin
Current Version4.3
+

Plugin de.thetaphi:forbiddenapis

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idde.thetaphi
Artifact Idforbiddenapis
Current Version3.6
+

Plugin io.github.git-commit-id:git-commit-id-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idio.github.git-commit-id
Artifact Idgit-commit-id-maven-plugin
Current Version7.0.0
+

Plugin net.revelc.code:impsort-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idnet.revelc.code
Artifact Idimpsort-maven-plugin
Current Version1.9.0
+

Plugin net.revelc.code.formatter:formatter-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idnet.revelc.code.formatter
Artifact Idformatter-maven-plugin
Current Version2.23.0
+

Plugin org.apache.maven.plugins:maven-antrun-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-antrun-plugin
Current Version3.1.0
+

Plugin org.apache.maven.plugins:maven-assembly-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-assembly-plugin
Current Version3.6.0
+

Plugin org.apache.maven.plugins:maven-checkstyle-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-checkstyle-plugin
Current Version3.3.1
+

Dependencies of org.apache.maven.plugins:maven-checkstyle-plugin

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
com.puppycrawl.toolscheckstyle10.12.6jar
StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
+

Dependency com.puppycrawl.tools:checkstyle

+ + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idcom.puppycrawl.tools
Artifact Idcheckstyle
Current Version10.12.6
Classifier
Typejar
+

Plugin org.apache.maven.plugins:maven-clean-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-clean-plugin
Current Version3.3.2
+

Plugin org.apache.maven.plugins:maven-compiler-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-compiler-plugin
Current Version3.12.1
+

Plugin org.apache.maven.plugins:maven-dependency-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-dependency-plugin
Current Version3.6.1
+

Plugin org.apache.maven.plugins:maven-deploy-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-deploy-plugin
Current Version3.1.1
+

Plugin org.apache.maven.plugins:maven-enforcer-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-enforcer-plugin
Current Version3.4.1
+

Plugin org.apache.maven.plugins:maven-gpg-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-gpg-plugin
Current Version3.1.0
+

Plugin org.apache.maven.plugins:maven-install-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-install-plugin
Current Version3.1.1
+

Plugin org.apache.maven.plugins:maven-invoker-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-invoker-plugin
Current Version3.6.0
+

Plugin org.apache.maven.plugins:maven-jar-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-jar-plugin
Current Version3.3.0
+

Plugin org.apache.maven.plugins:maven-javadoc-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-javadoc-plugin
Current Version3.6.3
+

Plugin org.apache.maven.plugins:maven-pmd-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-pmd-plugin
Current Version3.21.2
+

Plugin org.apache.maven.plugins:maven-project-info-reports-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-project-info-reports-plugin
Current Version3.5.0
+

Plugin org.apache.maven.plugins:maven-release-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-release-plugin
Current Version3.0.1
+

Plugin org.apache.maven.plugins:maven-resources-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-resources-plugin
Current Version3.3.1
+

Plugin org.apache.maven.plugins:maven-scm-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-scm-plugin
Current Version2.0.1
+

Plugin org.apache.maven.plugins:maven-scm-publish-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-scm-publish-plugin
Current Version3.2.1
+

Plugin org.apache.maven.plugins:maven-shade-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-shade-plugin
Current Version3.5.1
+

Plugin org.apache.maven.plugins:maven-site-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-site-plugin
Current Version4.0.0-M11
+

Dependencies of org.apache.maven.plugins:maven-site-plugin

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
org.apache.maven.skinsmaven-fluido-skin2.0.0-M8jar
StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
+

Dependency org.apache.maven.skins:maven-fluido-skin

+ + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.skins
Artifact Idmaven-fluido-skin
Current Version2.0.0-M8
Classifier
Typejar
+

Plugin org.apache.maven.plugins:maven-source-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-source-plugin
Current Version3.3.0
+

Plugin org.apache.maven.plugins:maven-surefire-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.apache.maven.plugins
Artifact Idmaven-surefire-plugin
Current Version3.2.3
+

Plugin org.codehaus.mojo:animal-sniffer-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.codehaus.mojo
Artifact Idanimal-sniffer-maven-plugin
Current Version1.23
+

Plugin org.codehaus.mojo:build-helper-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.codehaus.mojo
Artifact Idbuild-helper-maven-plugin
Current Version3.5.0
+

Plugin org.codehaus.mojo:properties-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.codehaus.mojo
Artifact Idproperties-maven-plugin
Current Version1.2.1
+

Plugin org.codehaus.mojo:templating-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.codehaus.mojo
Artifact Idtemplating-maven-plugin
Current Version3.0.0
+

Plugin org.codehaus.mojo:versions-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.codehaus.mojo
Artifact Idversions-maven-plugin
Current Version2.16.2
+

Dependencies of org.codehaus.mojo:versions-maven-plugin

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
com.kohlschuttermaven-plugin-config1.6.6jar
StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
+

Dependency com.kohlschutter:maven-plugin-config

+ + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Group Idcom.kohlschutter
Artifact Idmaven-plugin-config
Current Version1.6.6
Classifier
Typejar
+

Plugin org.eclipse.m2e:lifecycle-mapping

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.eclipse.m2e
Artifact Idlifecycle-mapping
Current Version1.0.0
+

Plugin org.jacoco:jacoco-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.jacoco
Artifact Idjacoco-maven-plugin
Current Version0.8.11
+

Plugin org.sonatype.plugins:nexus-staging-maven-plugin

+ + + + + + + + + + + + +
Status No newer versions available.
Group Idorg.sonatype.plugins
Artifact Idnexus-staging-maven-plugin
Current Version1.6.13
+
+
+
+
+ + + + \ No newline at end of file diff --git a/plugins.html b/plugins.html index bfe3bd3..11da08b 100644 --- a/plugins.html +++ b/plugins.html @@ -2,37 +2,35 @@ - - stringhold – Project Plugins - + + stringhold – Project Plugins + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Project Build Plugins

@@ -88,65 +88,101 @@

Project Build Plugins

- - - + + + + + + + + + + + + + + + - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + - - + + - - + + - - + + - - + + + + + + - + + + + + -
ArtifactId Version
com.coderplus.maven.pluginscopy-rename-maven-plugin1.0.1
com.github.spotbugsspotbugs-maven-plugin4.8.2.0
com.kohlschutter.mavenpluginscopy-rename-maven-plugin2.0.0
com.mycilalicense-maven-plugin4.3
de.thetaphiforbiddenapis3.6
io.github.git-commit-id git-commit-id-maven-plugin5.0.0
7.0.0
org.apache.maven.pluginsmaven-antrun-plugin3.1.0
org.apache.maven.pluginsmaven-clean-plugin3.2.0
maven-checkstyle-plugin3.3.1
org.apache.maven.pluginsmaven-compiler-plugin3.10.1
maven-clean-plugin3.3.2
org.apache.maven.pluginsmaven-dependency-plugin3.5.0
maven-compiler-plugin3.12.1
org.apache.maven.pluginsmaven-deploy-plugin3.0.0
maven-dependency-plugin3.6.1
org.apache.maven.pluginsmaven-enforcer-plugin3.1.0
maven-deploy-plugin3.1.1
org.apache.maven.pluginsmaven-install-plugin3.1.0
maven-enforcer-plugin3.4.1
org.apache.maven.pluginsmaven-install-plugin3.1.1
org.apache.maven.plugins maven-jar-plugin 3.3.0
org.apache.maven.pluginsmaven-javadoc-plugin3.6.3
org.apache.maven.pluginsmaven-resources-plugin3.3.0
maven-pmd-plugin3.21.2
org.apache.maven.pluginsmaven-scm-plugin2.0.0-M3
maven-resources-plugin3.3.1
org.apache.maven.pluginsmaven-site-plugin4.0.0-M4
maven-scm-plugin2.0.1
org.apache.maven.pluginsmaven-source-plugin3.2.1
maven-site-plugin4.0.0-M11
org.apache.maven.pluginsmaven-source-plugin3.3.0
org.apache.maven.plugins maven-surefire-plugin3.0.0-M8
3.2.3
org.codehaus.mojoproperties-maven-plugin1.2.1
org.codehaus.mojo versions-maven-plugin2.14.2
+2.16.2 + +org.jacoco +jacoco-maven-plugin +0.8.11

Project Report Plugins

@@ -154,17 +190,41 @@

Project Report Plugins

+ + + + + + + + + + + + - + + + + + - + -
ArtifactId Version
com.github.spotbugsspotbugs-maven-plugin4.8.2.0
org.apache.maven.pluginsmaven-checkstyle-plugin3.3.1
org.apache.maven.pluginsmaven-javadoc-plugin3.6.3
org.apache.maven.plugins maven-jxr-plugin3.3.0
3.3.1
org.apache.maven.pluginsmaven-pmd-plugin3.21.2
org.apache.maven.plugins maven-project-info-reports-plugin3.4.2
3.5.0
org.apache.maven.plugins maven-site-plugin4.0.0-M4
+4.0.0-M11 + +org.codehaus.mojo +versions-maven-plugin +2.16.2 + +org.jacoco +jacoco-maven-plugin +0.8.11
@@ -212,9 +272,9 @@

Project Report Plugins

\ No newline at end of file diff --git a/pmd.html b/pmd.html new file mode 100644 index 0000000..33fc32a --- /dev/null +++ b/pmd.html @@ -0,0 +1,344 @@ + + + + + + + + + + stringhold – PMD Results + + + + + + + Fork me on GitHub +
+
+ + + +
+
+
+ + +
+
+
+

PMD Results

+

The following document contains the results of PMD 6.55.0.

+

Violations By Priority

+

Priority 3

+

stringhold-common - com/kohlschutter/stringhold/AbstractStringHolder.java

+ + + + + + + + + + + + +
RuleViolationLine
CollapsibleIfStatementsThese nested if statements could be combined318320
UselessQualifiedThisUseless qualified this usage in the same class.591
+

stringhold-common - com/kohlschutter/stringhold/ReaderStringHolder.java

+ + + + + + + + + + + + +
RuleViolationLine
EmptyCatchBlockAvoid empty catch blocks156158
EmptyCatchBlockAvoid empty catch blocks166168
+

stringhold-common - com/kohlschutter/stringhold/StringHolder.java

+ + + + + + + + +
RuleViolationLine
CollapsibleIfStatementsThese nested if statements could be combined765768
+

Priority 4

+

stringhold-common - com/kohlschutter/stringhold/AbstractStringHolder.java

+ + + + + + + + + + + + + + + + +
RuleViolationLine
UselessParenthesesUseless parentheses.125
UselessParenthesesUseless parentheses.137
UselessParenthesesUseless parentheses.137
+

stringhold-common - com/kohlschutter/stringhold/LazyInitReader.java

+ + + + + + + + +
RuleViolationLine
UselessParenthesesUseless parentheses.83
+

stringhold-common - com/kohlschutter/stringhold/StringHolder.java

+ + + + + + + + +
RuleViolationLine
UselessParenthesesUseless parentheses.766
+

stringhold-common - com/kohlschutter/stringhold/SuppliedStringHolder.java

+ + + + + + + + +
RuleViolationLine
UselessParenthesesUseless parentheses.235
+

stringhold-liqp - com/kohlschutter/stringhold/liqp/StringHolderRenderTransformer.java

+ + + + + + + + +
RuleViolationLine
UselessParenthesesUseless parentheses.169
+

Files

+

stringhold-common - com/kohlschutter/stringhold/AbstractStringHolder.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RuleViolationPriorityLine
UselessParenthesesUseless parentheses.4125
UselessParenthesesUseless parentheses.4137
UselessParenthesesUseless parentheses.4137
CollapsibleIfStatementsThese nested if statements could be combined3318320
UselessQualifiedThisUseless qualified this usage in the same class.3591
+

stringhold-common - com/kohlschutter/stringhold/LazyInitReader.java

+ + + + + + + + + + +
RuleViolationPriorityLine
UselessParenthesesUseless parentheses.483
+

stringhold-common - com/kohlschutter/stringhold/ReaderStringHolder.java

+ + + + + + + + + + + + + + + +
RuleViolationPriorityLine
EmptyCatchBlockAvoid empty catch blocks3156158
EmptyCatchBlockAvoid empty catch blocks3166168
+

stringhold-common - com/kohlschutter/stringhold/StringHolder.java

+ + + + + + + + + + + + + + + +
RuleViolationPriorityLine
CollapsibleIfStatementsThese nested if statements could be combined3765768
UselessParenthesesUseless parentheses.4766
+

stringhold-common - com/kohlschutter/stringhold/SuppliedStringHolder.java

+ + + + + + + + + + +
RuleViolationPriorityLine
UselessParenthesesUseless parentheses.4235
+

stringhold-liqp - com/kohlschutter/stringhold/liqp/StringHolderRenderTransformer.java

+ + + + + + + + + + +
RuleViolationPriorityLine
UselessParenthesesUseless parentheses.4169
+

Suppressed Violations

+ + + + + + + + + + +
FilenameRule messageSuppression typeReason
com/kohlschutter/stringhold/StringHolderSequence.javaEnsure you override both equals() and hashCode()nopmd.OverrideBothEqualsAndHashcode
+
+
+
+
+ + + + \ No newline at end of file diff --git a/project-info.html b/project-info.html index 4d9bae2..e3644ee 100644 --- a/project-info.html +++ b/project-info.html @@ -2,37 +2,35 @@ - - stringhold – Project Information - + + stringhold – Project Information + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Project Information

-

This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by Maven on behalf of the project.

+

This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by Maven on behalf of the project.

Overview

- - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - -
Document Description
Dependency ConvergenceThis document presents the convergence of dependency versions across the entire project, and its sub modules.
DependenciesThis document lists the project's dependencies and provides information on each dependency.
Dependency InformationThis document describes how to include this project as a dependency using various dependency management tools.
Dependency ConvergenceThis document presents the convergence of dependency versions across the entire project, and its sub modules.
Dependency ManagementThis document lists the dependencies that are defined through dependencyManagement.
Dependency InformationThis document describes how to include this project as a dependency using various dependency management tools.
Distribution ManagementThis document provides informations on the distribution management of this project.
Dependency ManagementThis document lists the dependencies that are defined through dependencyManagement.
AboutParent POM for multi-release jar projects
Distribution ManagementThis document provides informations on the distribution management of this project.
Issue ManagementThis document provides information on the issue management system used in this project.
AboutParent POM for multi-release jar projects
LicensesThis document lists the project license(s).
Issue ManagementThis document provides information on the issue management system used in this project.
Project ModulesThis document lists the modules (sub-projects) of this project.
LicensesThis document lists the project license(s).
Plugin ManagementThis document lists the plugins that are defined through pluginManagement.
Project ModulesThis document lists the modules (sub-projects) of this project.
PluginsThis document lists the build plugins and the report plugins used by this project.
Plugin ManagementThis document lists the plugins that are defined through pluginManagement.
Source Code ManagementThis document lists ways to access the online source repository.
PluginsThis document lists the build plugins and the report plugins used by this project.
SummaryThis document lists other related information of this project
Source Code ManagementThis document lists ways to access the online source repository.
TeamThis document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.
+Summary +This document lists other related information of this project + +Team +This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.
@@ -174,9 +177,9 @@

Overview

\ No newline at end of file diff --git a/project-reports.html b/project-reports.html new file mode 100644 index 0000000..8cd6a46 --- /dev/null +++ b/project-reports.html @@ -0,0 +1,153 @@ + + + + + + + + + + stringhold – Generated Reports + + + + + + + Fork me on GitHub +
+
+ + + +
+
+
+ + +
+
+
+

Generated Reports

+

This document provides an overview of the various reports that are automatically generated by Maven . Each report is briefly described below.

+

Overview

+ + + + + + + + + + + + + + + + + + + + + +
DocumentDescription
CheckstyleReport on coding style conventions.
CPDDuplicate code detection.
PMDVerification of coding rules.
Dependency Updates ReportProvides details of the dependencies which have updated versions available.
Plugin Updates ReportProvides details of the plugins used by this project which have newer versions available.
Property Updates ReportProvides details of properties which control versions of dependencies and/or plugins, and indicates any newer versions which are available.
+
+
+
+
+ + + + \ No newline at end of file diff --git a/property-updates-report.html b/property-updates-report.html new file mode 100644 index 0000000..dac70e6 --- /dev/null +++ b/property-updates-report.html @@ -0,0 +1,474 @@ + + + + + + + + + + stringhold – Property Updates Report + + + + + + + Fork me on GitHub +
+
+ + + +
+
+
+ + +
+
+
+

Overview

+

This report summarizes newer versions that may be available for your project's various properties associated with artifacts.

+ + + + + + + + + + + + + + + + + + + + + +
# of properties using the latest version available6
# of properties where the next version available is smaller than an incremental version update0
# of properties where the next version available is an incremental version update0
# of properties where the next version available is a minor version update2
# of properties where the next version available is a major version update0
+

Summary of properties associated with artifact versions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusPropertyCurrent VersionLatest SubincrementalLatest IncrementalLatest MinorLatest Major
${checkstyle.version}10.12.6
${eclipsejdt.annotations.version}2.2.800
${errorprone.annotations.version}2.23.02.24.0
${errorprone.version}2.23.02.24.0
${forbiddenapis.version}3.6
${kohlschutter.parent.version}1.6.6
${pmd.plugin.version}3.21.2
${spotbugs.plugin.version}4.8.2.0
StatusPropertyCurrent VersionLatest SubincrementalLatest IncrementalLatest MinorLatest Major
+

Properties associated with artifact versions

+

+

${checkstyle.version}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Property${checkstyle.version}
Associated artifactscom.puppycrawl.tools:checkstyle
Current Version10.12.6
Allowed version range10.12.6
Infer associations from projectYes
Only use release versionsNo
Include projects from reactorYes
Always use reactor projects (even if older or -SNAPSHOT)Yes
+

${eclipsejdt.annotations.version}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Property${eclipsejdt.annotations.version}
Associated artifactsorg.eclipse.jdt:org.eclipse.jdt.annotation
Current Version2.2.800
Allowed version range2.2.800
Infer associations from projectYes
Only use release versionsNo
Include projects from reactorYes
Always use reactor projects (even if older or -SNAPSHOT)Yes
+

${errorprone.annotations.version}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status There is at least one newer minor version available. Minor updates are sometimes passive.
Property${errorprone.annotations.version}
Associated artifactscom.google.errorprone:error_prone_annotations
Current Version2.23.0
Newer versions2.24.0 Latest Minor
Allowed version range2.23.0
Infer associations from projectYes
Only use release versionsNo
Include projects from reactorYes
Always use reactor projects (even if older or -SNAPSHOT)Yes
+

${errorprone.version}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status There is at least one newer minor version available. Minor updates are sometimes passive.
Property${errorprone.version}
Associated artifactscom.google.errorprone:error_prone_core
Current Version2.23.0
Newer versions2.24.0 Latest Minor
Allowed version range2.23.0
Infer associations from projectYes
Only use release versionsNo
Include projects from reactorYes
Always use reactor projects (even if older or -SNAPSHOT)Yes
+

${forbiddenapis.version}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Property${forbiddenapis.version}
Associated artifactsde.thetaphi:forbiddenapis
Current Version3.6
Allowed version range3.6
Infer associations from projectYes
Only use release versionsNo
Include projects from reactorYes
Always use reactor projects (even if older or -SNAPSHOT)Yes
+

${kohlschutter.parent.version}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Property${kohlschutter.parent.version}
Associated artifactscom.kohlschutter:compiler-annotations
com.kohlschutter:kohlschutter-test-util
com.kohlschutter:kohlschutter-util
com.kohlschutter:maven-plugin-config
Current Version1.6.6
Allowed version range1.6.6
Infer associations from projectYes
Only use release versionsNo
Include projects from reactorYes
Always use reactor projects (even if older or -SNAPSHOT)Yes
+

${pmd.plugin.version}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Property${pmd.plugin.version}
Associated artifactsorg.apache.maven.plugins:maven-pmd-plugin
Current Version3.21.2
Allowed version range3.21.2
Infer associations from projectYes
Only use release versionsNo
Include projects from reactorYes
Always use reactor projects (even if older or -SNAPSHOT)Yes
+

${spotbugs.plugin.version}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status No newer versions available.
Property${spotbugs.plugin.version}
Associated artifactscom.github.spotbugs:spotbugs-maven-plugin
Current Version4.8.2.0
Allowed version range4.8.2.0
Infer associations from projectYes
Only use release versionsNo
Include projects from reactorYes
Always use reactor projects (even if older or -SNAPSHOT)Yes
+
+
+
+
+ + + + \ No newline at end of file diff --git a/scm.html b/scm.html index a23bc03..e48f601 100644 --- a/scm.html +++ b/scm.html @@ -2,37 +2,35 @@ - - stringhold – Source Code Management - + + stringhold – Source Code Management + - + - - Fork me on GitHub -
+ + Fork me on GitHub + -
+

Overview

This project uses Git to manage its source code. Instructions on Git use can be found at https://git-scm.com/documentation.

Web Browser Access

The following is a link to a browsable version of the source repository:

-

Anonymous Access

The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

-
-
$ git clone https://github.com/kohlschutter/stringhold.git
+
+
$ git clone git@github.com:kohlschutter/stringhold.git

Developer Access

Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

-
-
$ git clone https://github.com/kohlschutter/stringhold.git
+
+
$ git clone git@github.com:kohlschutter/stringhold.git

Access from Behind a Firewall

Refer to the documentation of the SCM used for more information about access behind a firewall.

@@ -144,9 +144,9 @@

Access from Behind a Firewall

\ No newline at end of file diff --git a/stringhold-codecoverage/checkstyle.html b/stringhold-codecoverage/checkstyle.html new file mode 100644 index 0000000..bb854bc --- /dev/null +++ b/stringhold-codecoverage/checkstyle.html @@ -0,0 +1,135 @@ + + + + + + + + + + stringhold-codecoverage – Checkstyle Results + + + + + + + Fork me on GitHub +
+
+ + + +
+
+
+ + +
+
+
+

Checkstyle Results

+

The following document contains the results of Checkstyle 10.12.6 with /Users/ck/Entwicklung/workspace/stringhold/stringhold-codecoverage/../../coding-style/eclipse/checkstyle-configuration.xml ruleset.

+

Summary

+ + + + + + + + + + +
Files Info Warnings Errors
0000
+

Files

+ + + + + +
File I W E
+

Rules

+ + + + + +
CategoryRuleViolationsSeverity
+

Details

+
+
+
+
+ + + + \ No newline at end of file diff --git a/stringhold-common/css/apache-maven-fluido-2.0.0-M2.min.css b/stringhold-codecoverage/css/apache-maven-fluido-2.0.0-M8.min.css similarity index 97% rename from stringhold-common/css/apache-maven-fluido-2.0.0-M2.min.css rename to stringhold-codecoverage/css/apache-maven-fluido-2.0.0-M8.min.css index caf32ee..217260f 100644 --- a/stringhold-common/css/apache-maven-fluido-2.0.0-M2.min.css +++ b/stringhold-codecoverage/css/apache-maven-fluido-2.0.0-M8.min.css @@ -14,7 +14,7 @@ * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media(max-width:767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.clear{clear:both;visibility:hidden}.clear hr{display:none}section>p,section>dt,section>table.table{margin-right:7px;margin-left:7px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{width:95%}.sidebar-nav .search-query{width:calc(100% - 30px)}body.topBarEnabled{padding-top:60px}body.topBarDisabled{padding-top:20px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.well{margin-bottom:10px}a.dropdown-toggle{cursor:pointer}h1>code,h2>code,h3>code,h4>code,h5>code{font-size:unset}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}/*! + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media(max-width:767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.clear{clear:both;visibility:hidden}.clear hr{display:none}section>p,section>dt,section>dl,section>table.table,section>div.verbatim{margin-right:7px;margin-left:7px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{width:95%}.sidebar-nav .search-query{width:calc(100% - 30px)}body.topBarEnabled{padding-top:43px}div.container-top,div.container-fluid-top{padding-top:10px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.well{margin-bottom:10px}a.dropdown-toggle{cursor:pointer}h1>code,h2>code,h3>code,h4>code,h5>code{font-size:unset}.table th,.table td{text-align:revert}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}/*! * "Fork me on GitHub" CSS ribbon v0.2.3 | MIT License * https://github.com/simonwhitaker/github-fork-ribbon-css */.github-fork-ribbon{width:12.1em;height:12.1em;position:absolute;overflow:hidden;top:0;right:0;z-index:9999;pointer-events:none;font-size:13px;text-decoration:none;text-indent:-999999px}.github-fork-ribbon.fixed{position:fixed}.github-fork-ribbon:hover,.github-fork-ribbon:active{background-color:rgba(0,0,0,0.0)}.github-fork-ribbon:before,.github-fork-ribbon:after{position:absolute;display:block;width:15.38em;height:1.54em;top:3.23em;right:-3.23em;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.github-fork-ribbon:before{content:"";padding:.38em 0;background-color:#a00;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,0.15)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-moz-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-ms-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:-o-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.15));background-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,0.15));-webkit-box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);-moz-box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);box-shadow:0 .15em .23em 0 rgba(0,0,0,0.5);pointer-events:auto}.github-fork-ribbon:after{content:attr(data-ribbon);color:#fff;font:700 1em "Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.54em;text-decoration:none;text-shadow:0 -.08em rgba(0,0,0,0.5);text-align:center;text-indent:0;padding:.15em 0;margin:.15em 0;border-width:.08em 0;border-style:dotted;border-color:#fff;border-color:rgba(255,255,255,0.7)}.github-fork-ribbon.left-top,.github-fork-ribbon.left-bottom{right:auto;left:0}.github-fork-ribbon.left-bottom,.github-fork-ribbon.right-bottom{top:auto;bottom:0}.github-fork-ribbon.left-top:before,.github-fork-ribbon.left-top:after,.github-fork-ribbon.left-bottom:before,.github-fork-ribbon.left-bottom:after{right:auto;left:-3.23em}.github-fork-ribbon.left-bottom:before,.github-fork-ribbon.left-bottom:after,.github-fork-ribbon.right-bottom:before,.github-fork-ribbon.right-bottom:after{top:auto;bottom:3.23em}.github-fork-ribbon.left-top:before,.github-fork-ribbon.left-top:after,.github-fork-ribbon.right-bottom:before,.github-fork-ribbon.right-bottom:after{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)} \ No newline at end of file diff --git a/stringhold-codecoverage/dependencies.html b/stringhold-codecoverage/dependencies.html index 81ba1f4..27c4b46 100644 --- a/stringhold-codecoverage/dependencies.html +++ b/stringhold-codecoverage/dependencies.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Project Dependencies - + + stringhold-codecoverage – Project Dependencies + - + - - Fork me on GitHub -
+ + Fork me on GitHub +
@@ -47,11 +45,11 @@
-Built by Maven +Built by Maven
-
+

Project Dependencies

compile

@@ -65,14 +63,29 @@

compile

Licenses com.kohlschutter.stringhold -stringhold-common -1.0.0-SNAPSHOT +stringhold-common +1.0.2-SNAPSHOT jar Apache License, Version 2.0 com.kohlschutter.stringhold -stringhold-liqp -1.0.0-SNAPSHOT +stringhold-liqp +1.0.2-SNAPSHOT +jar +Apache License, Version 2.0
+

provided

+

The following is a list of provided dependencies for this project. These dependencies are required to compile the application, but should be provided by default when using the library:

+ + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicenses
com.kohlschuttercompiler-annotations1.6.6 jar Apache License, Version 2.0

Project Transitive Dependencies

@@ -101,7 +114,7 @@

compile

com.fasterxml.jackson.core jackson-databind -2.13.4.1 +2.13.4.2 jar The Apache Software License, Version 2.0 @@ -113,35 +126,49 @@

compile

com.kohlschutter kohlschutter-util -1.5.2-SNAPSHOT +1.6.6 jar Apache License, Version 2.0 -nl.big-o +com.kohlschutter liqp -0.8.3.4-SNAPSHOT +0.8.5.4 jar MIT License -org.antlr -antlr4-runtime -4.7.2 -jar -The BSD License - org.jsoup jsoup 1.15.3 jar The MIT License - + ua.co.k strftime4j -1.0.5 +1.0.6 +jar +MIT License
+

provided

+

The following is a list of provided dependencies for this project. These dependencies are required to compile the application, but should be provided by default when using the library:

+ + + + + + + + + + + -
GroupIdArtifactIdVersionTypeLicenses
com.google.errorproneerror_prone_annotations2.23.0 jarMIT License
-

Project Dependency Graph

- -
+

Dependency Tree

+

Project Licenses: MIT License

+
  • com.kohlschutter:compiler-annotations:jar:1.6.6 (provided) [Information] +
  • Licenses

    -

    The BSD License: ANTLR 4 Runtime

    +

    Apache 2.0: error-prone annotations

    MIT License: Liqp, strftime4j

    The MIT License: jsoup Java HTML Parser

    -

    Apache License, Version 2.0: kohlschutter-util, stringhold-codecoverage, stringhold-common, stringhold-liqp

    +

    Apache License, Version 2.0: compiler-annotations, kohlschutter-util, stringhold-codecoverage, stringhold-common, stringhold-liqp

    +

    Eclipse Public License - v 2.0: JDT Annotations for Enhanced Null Analysis

    The Apache Software License, Version 2.0: Jackson datatype: JSR310, Jackson-annotations, Jackson-core, jackson-databind

    Dependency File Details

    @@ -297,7 +343,7 @@

    Dependency File Details

    - + @@ -305,15 +351,15 @@

    Dependency File Details

    - + - + - + @@ -321,47 +367,63 @@

    Dependency File Details

    - + - - - - + + + + - + - - - - - - - - - - - + + + - - + + + + + + + + + + - - - - - + + + + + - - - - + + + + + + + + + + + - + + + + + + + + + + @@ -372,8 +434,8 @@

    Dependency File Details

    - - + + @@ -388,21 +450,28 @@

    Dependency File Details

    - - - - - - - - - - - - - - -
    84 72 2-9 Yes
    jackson-core-2.13.2.jar 156 128 13-9 Yes
    jackson-databind-2.13.4.1.jarjackson-databind-2.13.4.2.jar 1.5 MB 746 708 23-9 Yes
    jackson-datatype-jsr310-2.13.2.jar 81 59 7-9 Yes
    kohlschutter-util-1.5.2-SNAPSHOT.jar42.6 kB4113error_prone_annotations-2.23.0.jar16.8 kB3927 2-1.8 Yes
    stringhold-common-1.0.0-SNAPSHOT.jar195.6 kB156331-Yes
    stringhold-liqp-1.0.0-SNAPSHOT.jar26.4 kB35compiler-annotations-1.6.6.jar7.1 kB25 41-29No
    kohlschutter-util-1.6.6.jar37.3 kB431429 Yes
    liqp-0.8.3.4-SNAPSHOT.jar328 kB27625312liqp-0.8.5.4.jar674.5 kB50746820 1.8 Yes
    antlr4-runtime-4.7.2.jar337.9 kB237220stringhold-common-1.0.2-SNAPSHOT.jar282.5 kB20836115Yes
    stringhold-liqp-1.0.2-SNAPSHOT.jar41.4 kB44 71.7115Yes
    org.eclipse.jdt.annotation-2.2.800.jar27.7 kB28611.8 Yes
    jsoup-1.15.3.jar 1.8 Yes
    strftime4j-1.0.5.jar31.5 kBstrftime4j-1.0.6.jar31.6 kB 38 26 2 Java Version Debug Information
    113.5 MB21341782771.811
    compile: 11compile: 3.5 MBcompile: 2134compile: 1782compile: 77-compile: 11
    +13 +3.7 MB +2283 +1821 +83 +15 +12 + +compile: 10 +compile: 3.6 MB +compile: 2191 +compile: 1784 +compile: 78 +15 +compile: 10 + +provided: 3 +provided: 51.7 kB +provided: 92 +provided: 37 +provided: 5 +provided: 2
    @@ -450,9 +519,9 @@

    Dependency File Details

    \ No newline at end of file diff --git a/stringhold-codecoverage/dependency-info.html b/stringhold-codecoverage/dependency-info.html index 7ec0bca..a585802 100644 --- a/stringhold-codecoverage/dependency-info.html +++ b/stringhold-codecoverage/dependency-info.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Dependency Information - + + stringhold-codecoverage – Dependency Information + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,40 +45,40 @@
    -Built by Maven +Built by Maven
    -
    +

    Dependency Information

    Apache Maven

    -
    +
    <dependency>
       <groupId>com.kohlschutter.stringhold</groupId>
       <artifactId>stringhold-codecoverage</artifactId>
    -  <version>1.0.0-SNAPSHOT</version>
    +  <version>1.0.2-SNAPSHOT</version>
       <type>pom</type>
     </dependency>

    Apache Ivy

    -
    -
    <dependency org="com.kohlschutter.stringhold" name="stringhold-codecoverage" rev="1.0.0-SNAPSHOT">
    +
    +
    <dependency org="com.kohlschutter.stringhold" name="stringhold-codecoverage" rev="1.0.2-SNAPSHOT">
       <artifact name="stringhold-codecoverage" type="pom" />
     </dependency>

    Groovy Grape

    -
    +
    @Grapes(
    -@Grab(group='com.kohlschutter.stringhold', module='stringhold-codecoverage', version='1.0.0-SNAPSHOT')
    +@Grab(group='com.kohlschutter.stringhold', module='stringhold-codecoverage', version='1.0.2-SNAPSHOT')
     )

    Gradle/Grails

    -
    -
    compile 'com.kohlschutter.stringhold:stringhold-codecoverage:1.0.0-SNAPSHOT'
    +
    +
    implementation 'com.kohlschutter.stringhold:stringhold-codecoverage:1.0.2-SNAPSHOT'

    Scala SBT

    -
    -
    libraryDependencies += "com.kohlschutter.stringhold" % "stringhold-codecoverage" % "1.0.0-SNAPSHOT"
    +
    +
    libraryDependencies += "com.kohlschutter.stringhold" % "stringhold-codecoverage" % "1.0.2-SNAPSHOT"

    Leiningen

    -
    -
    [com.kohlschutter.stringhold/stringhold-codecoverage "1.0.0-SNAPSHOT"]
    +
    +
    [com.kohlschutter.stringhold/stringhold-codecoverage "1.0.2-SNAPSHOT"]
    @@ -128,9 +126,9 @@

    Leiningen

    \ No newline at end of file diff --git a/stringhold-codecoverage/dependency-management.html b/stringhold-codecoverage/dependency-management.html index 2e2c60f..42ade11 100644 --- a/stringhold-codecoverage/dependency-management.html +++ b/stringhold-codecoverage/dependency-management.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Project Dependency Management - + + stringhold-codecoverage – Project Dependency Management + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,11 +45,11 @@
    -Built by Maven +Built by Maven
    -
    +

    Project Dependency Management

    compile

    @@ -64,129 +62,147 @@

    compile

    Type License +com.google.errorprone +error_prone_annotations +2.23.0 +jar +Apache 2.0 + +com.google.errorprone +error_prone_core +2.23.0 +jar +Apache 2.0 + com.kohlschutter kohlschutter-test-util -1.5.2-SNAPSHOT +1.6.6 jar Apache License, Version 2.0 com.kohlschutter kohlschutter-util -1.5.2-SNAPSHOT +1.6.6 jar Apache License, Version 2.0 -org.eclipse.jdt -org.eclipse.jdt.annotation -2.2.700 +org.codehaus.mojo +animal-sniffer-annotations +1.23 jar -- +MIT license +org.eclipse.jdt +org.eclipse.jdt.annotation +2.2.800 +jar +Eclipse Public License - v 2.0 + org.junit.jupiter junit-jupiter -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.jupiter junit-jupiter-api -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.jupiter junit-jupiter-engine -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.jupiter junit-jupiter-migrationsupport -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.jupiter junit-jupiter-params -5.9.2 +5.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-commons -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-console -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-engine -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-jfr -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-launcher -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-reporting -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-runner -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-suite -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-suite-api -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-suite-commons -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-suite-engine -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.platform junit-platform-testkit -1.9.2 +1.10.1 jar Eclipse Public License v2.0 - + org.junit.vintage junit-vintage-engine -5.9.2 +5.10.1 jar Eclipse Public License v2.0

    provided

    @@ -201,7 +217,7 @@

    provided

    com.kohlschutter compiler-annotations -1.5.2-SNAPSHOT +1.6.6 jar Apache License, Version 2.0
    @@ -251,9 +267,9 @@

    provided

    \ No newline at end of file diff --git a/stringhold-codecoverage/dependency-updates-report.html b/stringhold-codecoverage/dependency-updates-report.html new file mode 100644 index 0000000..e5fa64f --- /dev/null +++ b/stringhold-codecoverage/dependency-updates-report.html @@ -0,0 +1,1135 @@ + + + + + + + + + + stringhold-codecoverage – Dependency Updates Report + + + + + + + Fork me on GitHub +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Overview

    +

    This report summarizes newer versions that may be available for your project's various dependencies.

    + + + + + + + + + + + + + + + + + + + + + +
    # of dependencies using the latest version available25
    # of dependencies where the next version available is smaller than an incremental version update0
    # of dependencies where the next version available is an incremental version update0
    # of dependencies where the next version available is a minor version update2
    # of dependencies where the next version available is a major version update0
    +

    Dependency Management

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest Major
    com.google.errorproneerror_prone_annotations2.23.0jar2.24.0
    com.google.errorproneerror_prone_core2.23.0jar2.24.0
    com.kohlschuttercompiler-annotations1.6.6providedjar
    com.kohlschutterkohlschutter-test-util1.6.6jar
    com.kohlschutterkohlschutter-util1.6.6jar
    org.codehaus.mojoanimal-sniffer-annotations1.23jar
    org.eclipse.jdtorg.eclipse.jdt.annotation2.2.800jar
    org.junit.jupiterjunit-jupiter5.10.1jar
    org.junit.jupiterjunit-jupiter-api5.10.1jar
    org.junit.jupiterjunit-jupiter-engine5.10.1jar
    org.junit.jupiterjunit-jupiter-migrationsupport5.10.1jar
    org.junit.jupiterjunit-jupiter-params5.10.1jar
    org.junit.platformjunit-platform-commons1.10.1jar
    org.junit.platformjunit-platform-console1.10.1jar
    org.junit.platformjunit-platform-engine1.10.1jar
    org.junit.platformjunit-platform-jfr1.10.1jar
    org.junit.platformjunit-platform-launcher1.10.1jar
    org.junit.platformjunit-platform-reporting1.10.1jar
    org.junit.platformjunit-platform-runner1.10.1jar
    org.junit.platformjunit-platform-suite1.10.1jar
    org.junit.platformjunit-platform-suite-api1.10.1jar
    org.junit.platformjunit-platform-suite-commons1.10.1jar
    org.junit.platformjunit-platform-suite-engine1.10.1jar
    org.junit.platformjunit-platform-testkit1.10.1jar
    org.junit.vintagejunit-vintage-engine5.10.1jar
    StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest Major
    +

    Dependencies

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest Major
    com.kohlschutter.stringholdstringhold-common1.0.2-SNAPSHOTcompilejar
    com.kohlschutter.stringholdstringhold-liqp1.0.2-SNAPSHOTcompilejar
    StatusGroup IdArtifact IdCurrent VersionScopeClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest Major
    +

    Dependency Updates

    +

    +

    com.google.errorprone:error_prone_annotations

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Idcom.google.errorprone
    Artifact Iderror_prone_annotations
    Current Version2.23.0
    Scope
    Classifier
    Typejar
    Newer versions2.24.0 Latest Minor
    +

    com.google.errorprone:error_prone_core

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Idcom.google.errorprone
    Artifact Iderror_prone_core
    Current Version2.23.0
    Scope
    Classifier
    Typejar
    Newer versions2.24.0 Latest Minor
    +

    com.kohlschutter:compiler-annotations

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.kohlschutter
    Artifact Idcompiler-annotations
    Current Version1.6.6
    Scopeprovided
    Classifier
    Typejar
    +

    com.kohlschutter:kohlschutter-test-util

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.kohlschutter
    Artifact Idkohlschutter-test-util
    Current Version1.6.6
    Scope
    Classifier
    Typejar
    +

    com.kohlschutter:kohlschutter-util

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.kohlschutter
    Artifact Idkohlschutter-util
    Current Version1.6.6
    Scope
    Classifier
    Typejar
    +

    com.kohlschutter.stringhold:stringhold-common

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.kohlschutter.stringhold
    Artifact Idstringhold-common
    Current Version1.0.2-SNAPSHOT
    Scopecompile
    Classifier
    Typejar
    +

    com.kohlschutter.stringhold:stringhold-liqp

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.kohlschutter.stringhold
    Artifact Idstringhold-liqp
    Current Version1.0.2-SNAPSHOT
    Scopecompile
    Classifier
    Typejar
    +

    org.codehaus.mojo:animal-sniffer-annotations

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idanimal-sniffer-annotations
    Current Version1.23
    Scope
    Classifier
    Typejar
    +

    org.eclipse.jdt:org.eclipse.jdt.annotation

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.eclipse.jdt
    Artifact Idorg.eclipse.jdt.annotation
    Current Version2.2.800
    Scope
    Classifier
    Typejar
    +

    org.junit.jupiter:junit-jupiter

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.jupiter
    Artifact Idjunit-jupiter
    Current Version5.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.jupiter:junit-jupiter-api

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.jupiter
    Artifact Idjunit-jupiter-api
    Current Version5.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.jupiter:junit-jupiter-engine

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.jupiter
    Artifact Idjunit-jupiter-engine
    Current Version5.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.jupiter:junit-jupiter-migrationsupport

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.jupiter
    Artifact Idjunit-jupiter-migrationsupport
    Current Version5.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.jupiter:junit-jupiter-params

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.jupiter
    Artifact Idjunit-jupiter-params
    Current Version5.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-commons

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-commons
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-console

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-console
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-engine

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-engine
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-jfr

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-jfr
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-launcher

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-launcher
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-reporting

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-reporting
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-runner

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-runner
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-suite

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-suite
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-suite-api

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-suite-api
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-suite-commons

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-suite-commons
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-suite-engine

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-suite-engine
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.platform:junit-platform-testkit

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.platform
    Artifact Idjunit-platform-testkit
    Current Version1.10.1
    Scope
    Classifier
    Typejar
    +

    org.junit.vintage:junit-vintage-engine

    + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.junit.vintage
    Artifact Idjunit-vintage-engine
    Current Version5.10.1
    Scope
    Classifier
    Typejar
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/stringhold-codecoverage/distribution-management.html b/stringhold-codecoverage/distribution-management.html index aa345db..1b6c88c 100644 --- a/stringhold-codecoverage/distribution-management.html +++ b/stringhold-codecoverage/distribution-management.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Project Distribution Management - + + stringhold-codecoverage – Project Distribution Management + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,11 +45,11 @@
    -Built by Maven +Built by Maven
    -
    +

    Overview

    The following is the distribution management information used by this project.

    @@ -105,9 +103,9 @@

    Site - github.com/kohlschutter/stringhold

    - - stringhold-codecoverage – About - + + stringhold-codecoverage – About + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,11 +45,11 @@
    -Built by Maven +Built by Maven
    -
    +

    About stringhold-codecoverage

    Code coverage

    @@ -102,9 +100,9 @@

    About stringhold-codecoverage

    \ No newline at end of file diff --git a/stringhold-codecoverage/issue-management.html b/stringhold-codecoverage/issue-management.html index 9126697..4bd1776 100644 --- a/stringhold-codecoverage/issue-management.html +++ b/stringhold-codecoverage/issue-management.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Issue Management - + + stringhold-codecoverage – Issue Management + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,17 +45,17 @@
    -Built by Maven +Built by Maven
    -
    +

    Overview

    This project uses GitHub to manage its issues.

    Issue Management

    Issues, bugs, and feature requests should be submitted to the following issue management system for this project.

    -
    @@ -106,9 +104,9 @@

    Issue Management

    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/index.html b/stringhold-codecoverage/jacoco-aggregate/index.html index 761c11b..c9393d4 100644 --- a/stringhold-codecoverage/jacoco-aggregate/index.html +++ b/stringhold-codecoverage/jacoco-aggregate/index.html @@ -1 +1 @@ -stringhold-codecoverage

    stringhold-codecoverage

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 4,594100%0 of 554100%053201,1900252029
    stringhold-common4,238100%538100%049801,1120226025
    stringhold-liqp356100%16100%03407802604
    \ No newline at end of file +stringhold-codecoverage

    stringhold-codecoverage

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 5,377100%0 of 680100%066201,4110318035
    stringhold-common4,832100%650100%060701,2830279028
    stringhold-liqp545100%30100%055012803907
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/jacoco-resources/sort.js b/stringhold-codecoverage/jacoco-aggregate/jacoco-resources/sort.js index cb99d22..7b789a2 100644 --- a/stringhold-codecoverage/jacoco-aggregate/jacoco-resources/sort.js +++ b/stringhold-codecoverage/jacoco-aggregate/jacoco-resources/sort.js @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2022 Mountainminds GmbH & Co. KG and Contributors + * Copyright (c) 2009, 2023 Mountainminds GmbH & Co. KG and Contributors * This program and the accompanying materials are made available under * the terms of the Eclipse Public License 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0 diff --git a/stringhold-codecoverage/jacoco-aggregate/jacoco-sessions.html b/stringhold-codecoverage/jacoco-aggregate/jacoco-sessions.html index 65f279d..b6b7e8c 100644 --- a/stringhold-codecoverage/jacoco-aggregate/jacoco-sessions.html +++ b/stringhold-codecoverage/jacoco-aggregate/jacoco-sessions.html @@ -1 +1 @@ -Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    retsina-5.local-2bef5e4dFeb 5, 2023, 11:37:47 PMFeb 5, 2023, 11:37:48 PM
    retsina-5.local-cc69c081Feb 5, 2023, 11:37:55 PMFeb 5, 2023, 11:37:56 PM

    Execution data for the following classes is considered in this report:

    ClassId
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonFormat.Features8a42630725ca176f
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Valuec867e2a0cd371606
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include8027810309051bc0
    com.fasterxml.jackson.annotation.JsonInclude.Value6e8a74b3c696aac1
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.core.Base64Variantc0e8197f954dd06f
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviour843a0ab5e9f9bc15
    com.fasterxml.jackson.core.Base64Variants706d40c092962881
    com.fasterxml.jackson.core.JsonFactory92d2e770b8f35f8e
    com.fasterxml.jackson.core.JsonFactory.Feature8361ffaea30cff48
    com.fasterxml.jackson.core.JsonGenerator.Feature5a49f8113c26ac2f
    com.fasterxml.jackson.core.JsonParser087ba07afe7d06ce
    com.fasterxml.jackson.core.JsonParser.Feature004fd2ec010ce098
    com.fasterxml.jackson.core.JsonParser.NumberTypef7a23e271b922f44
    com.fasterxml.jackson.core.JsonStreamContext8f79ce44d6acb1f0
    com.fasterxml.jackson.core.JsonToken12337f269c55f88a
    com.fasterxml.jackson.core.ObjectCodecbcfadd4a47d8d174
    com.fasterxml.jackson.core.PrettyPrinter522e543d2d203e0c
    com.fasterxml.jackson.core.StreamReadCapability4961b524041bfae0
    com.fasterxml.jackson.core.TokenStreamFactoryeeb403e3105a4c39
    com.fasterxml.jackson.core.TreeCodec9b794ee2c027e6c5
    com.fasterxml.jackson.core.Version0af4bf326090c50c
    com.fasterxml.jackson.core.base.ParserBase09e44d2aba8e329d
    com.fasterxml.jackson.core.base.ParserMinimalBased1dfef4481f52146
    com.fasterxml.jackson.core.io.CharTypes3948d29ac237c8f4
    com.fasterxml.jackson.core.io.ContentReferenceb7ba13bd0ff9bdf3
    com.fasterxml.jackson.core.io.IOContext904cd3765ace74f5
    com.fasterxml.jackson.core.io.JsonStringEncoder034ac13887946240
    com.fasterxml.jackson.core.io.NumberInput02755e0c4bbed6ec
    com.fasterxml.jackson.core.io.SerializedString297ea024d97582cf
    com.fasterxml.jackson.core.json.JsonReadContext4a5d2465f91a7f95
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser1d969dbf6059e320
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer291229256a021e25
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfo795012ec0e6c889b
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer35a1ac98a1bad939
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo2e560d79a52cf0a8
    com.fasterxml.jackson.core.type.ResolvedType15807997628a0aa4
    com.fasterxml.jackson.core.util.BufferRecycler9b42a79424df3f8e
    com.fasterxml.jackson.core.util.BufferRecyclers5fa617e1462e0caf
    com.fasterxml.jackson.core.util.DefaultIndenter3b2beace17e888ee
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterd1ebc5e64e35699e
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter4845911bdeabaf2a
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter23ef20344a80184e
    com.fasterxml.jackson.core.util.InternCache5a30c73b3b03a45e
    com.fasterxml.jackson.core.util.JacksonFeatureSet23f70a20c39e4603
    com.fasterxml.jackson.core.util.Separators2a5b790142732290
    com.fasterxml.jackson.core.util.TextBuffer789cefae4beae965
    com.fasterxml.jackson.core.util.VersionUtil1413be786bc77d26
    com.fasterxml.jackson.databind.AnnotationIntrospectoraf9daa2158870a32
    com.fasterxml.jackson.databind.BeanDescriptionc5613af91861c976
    com.fasterxml.jackson.databind.DatabindContext171ac5f27083d860
    com.fasterxml.jackson.databind.DeserializationConfigbeec5c0ed081b28e
    com.fasterxml.jackson.databind.DeserializationContext63ca2b9e4cf1e650
    com.fasterxml.jackson.databind.DeserializationFeature7892aa29da749006
    com.fasterxml.jackson.databind.JavaType6774433437db819f
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonSerializer580d874493a44de7
    com.fasterxml.jackson.databind.KeyDeserializer57c3ce9990767641
    com.fasterxml.jackson.databind.MapperFeaturef1485765752306d7
    com.fasterxml.jackson.databind.MappingJsonFactoryf3cae28c0c458d13
    com.fasterxml.jackson.databind.Modulebb66b81d910dbd05
    com.fasterxml.jackson.databind.ObjectMapper9e2bf7d65aebeb2d
    com.fasterxml.jackson.databind.ObjectMapper.1d7d5c5df61482732
    com.fasterxml.jackson.databind.PropertyNamef0fe669cc1f8057b
    com.fasterxml.jackson.databind.SerializationConfigdd23e85db1772fa1
    com.fasterxml.jackson.databind.SerializationFeaturea7f6fb742e4bb5ac
    com.fasterxml.jackson.databind.SerializerProvidere3847c31e373e473
    com.fasterxml.jackson.databind.cfg.BaseSettingsee09f14529f6cfde
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs63f7b0f9840aafbd
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides6eccdb4ac13ab18a
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Impl7e49bf155839b753
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig797011776bfed729
    com.fasterxml.jackson.databind.cfg.MapperConfigec06db667daccfe8
    com.fasterxml.jackson.databind.cfg.MapperConfigBase82a2129d5033ef15
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig0fd510ce548c5df5
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfig97a0b951463407ed
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory35353283d28857e3
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappings6b760ad9e06a7e59
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactoryebb2fb6497ab6fd1
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext23471bff48f2d14a
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl0c311b9cfe6a8407
    com.fasterxml.jackson.databind.deser.DeserializerCache2d98eb7f38fe0ade
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.Deserializers.Basea3b8086adb6ca320
    com.fasterxml.jackson.databind.deser.ValueInstantiator7de15bbcecdec668
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base74d442e4bb57cf15
    com.fasterxml.jackson.databind.deser.ValueInstantiators.Base409ddb33d4295a19
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators899467f4ced76f52
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiatorf835a690be876264
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.HashMapInstantiator57ca39c90391702b
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.LinkedHashMapInstantiator2c8fe12c485f587f
    com.fasterxml.jackson.databind.deser.impl.JavaUtilCollectionsDeserializersba11da1dfe05e910
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProviderddb643ddeb01e747
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer68b7a77554bf6c94
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBasec68510ec00c11ce2
    com.fasterxml.jackson.databind.deser.std.MapDeserializercb8fed36672f08c3
    com.fasterxml.jackson.databind.deser.std.NumberDeserializersaf4aa96d306dfbb7
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.NumberDeserializeracca61df8e576b9e
    com.fasterxml.jackson.databind.deser.std.StdDeserializer1fef92d543fe2c09
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializerc80c89050723096c
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.StringKDb1203fb69e79d221
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializerse277ef5e873fdf87
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StringDeserializer400a7aba0eeb3d31
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerd9352f6cdc59b396
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.Vanillafda27ced3fcdd12f
    com.fasterxml.jackson.databind.ext.Java7Supportb7ed61265dad1e05
    com.fasterxml.jackson.databind.ext.Java7SupportImpl4bb02b62d1f4b08e
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClassd7618104caa817e7
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creators6d9ba5d6c00f185b
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolverb71c842acb1f38fa
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.BasicBeanDescriptionfcd042c4339e4ae6
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospector9b81bae8d2bdc7a9
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy3b7b9e1fd9ca60c0
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider279a8d9b45166f1b
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector6ee54de73eb44d10
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1e1c8f2eaab4288a
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver05d0015e0b63d267
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Stddcf4500664436616
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver353a51b197dba4be
    com.fasterxml.jackson.databind.module.SimpleDeserializers6399f6a0f689fbda
    com.fasterxml.jackson.databind.module.SimpleKeyDeserializersa819432235e4437e
    com.fasterxml.jackson.databind.module.SimpleModule142df66a318ceef6
    com.fasterxml.jackson.databind.module.SimpleSerializers39516f87ef2c71bf
    com.fasterxml.jackson.databind.node.JsonNodeFactory0f18f4e6ce6152ad
    com.fasterxml.jackson.databind.ser.BasicSerializerFactory97a7135d9fa67778
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory01c553b8a2e9ae12
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider94637395bab35717
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl53b6a802688e5c4a
    com.fasterxml.jackson.databind.ser.SerializerCachec9e57915400fb429
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.Serializers.Base443d0df59bde7b26
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer97051ea56a50f09d
    com.fasterxml.jackson.databind.ser.std.BooleanSerializer6d935809cc70dedf
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBase0f179763daa16b3e
    com.fasterxml.jackson.databind.ser.std.NullSerializer0db019a5d28b6525
    com.fasterxml.jackson.databind.ser.std.NumberSerializerb49271a382f5acb0
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Basee89fd22d3e157080
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializerb3b7c0a4dc5aa3c9
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializerfd8000468d95d100
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer19a0e7c41fcbbb05
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer3b0eb434a3630ccd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer8b431cced5b1b076
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializer8613a6cf439f0b06
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializerc49a8b0a712a1383
    com.fasterxml.jackson.databind.ser.std.StdSerializer4f003e0e5a335c53
    com.fasterxml.jackson.databind.ser.std.StringSerializer3d337f1cb01ba05b
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializeree5696656f5b577b
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBasec323d855ecbf9188
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer6409650c33e1c5b2
    com.fasterxml.jackson.databind.type.ClassKeyafd44456d80534c1
    com.fasterxml.jackson.databind.type.ClassStack7c85624aef6e3562
    com.fasterxml.jackson.databind.type.CollectionLikeType160a6991673d32be
    com.fasterxml.jackson.databind.type.CollectionTyped93ee41eed402006
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.MapLikeTypea930cb208bd12632
    com.fasterxml.jackson.databind.type.MapType67ed0c0a97104570
    com.fasterxml.jackson.databind.type.SimpleType6d6674d2612a166a
    com.fasterxml.jackson.databind.type.TypeBase30f634bc18651f68
    com.fasterxml.jackson.databind.type.TypeBindings86a76fcb5c2bba33
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey8ebf3d4e93855157
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStash4550b96ac1086bd3
    com.fasterxml.jackson.databind.type.TypeFactoryd3a3629803fd686e
    com.fasterxml.jackson.databind.type.TypeParser2ce747808bc5c380
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayBuilders8d854885f317f7a5
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.ClassUtilfc6e81ed78dbbcd4
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil2c9cb2f0c7499b84
    com.fasterxml.jackson.databind.util.LRUMap7761915724985acc
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.ObjectBuffer22f0b3bc035ced26
    com.fasterxml.jackson.databind.util.RootNameLookup0a1b6f208f22829a
    com.fasterxml.jackson.databind.util.StdDateFormatc7d18d58ada26440
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule4110e68e5dc8a33b
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule.16269c84e29480142
    com.fasterxml.jackson.datatype.jsr310.PackageVersion12303845b900cff8
    com.fasterxml.jackson.datatype.jsr310.deser.DurationDeserializerab973e050cc98685
    com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer9a2ebf5dc1053184
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase451bbdbcdd0b2f3d
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DeserializerBasea42a100eb3db5063
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310StringParsableDeserializerec40549afa8898ca
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer4ec9cd420b6efa6f
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer9cf25a0b2bde4767
    com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer7889361dabb08019
    com.fasterxml.jackson.datatype.jsr310.deser.MonthDayDeserializerd43b9f169fd06f00
    com.fasterxml.jackson.datatype.jsr310.deser.OffsetTimeDeserializer2a5d44e03892ea5c
    com.fasterxml.jackson.datatype.jsr310.deser.YearDeserializerd56b6ecd9b0717ca
    com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializerf88f7121ace6966c
    com.fasterxml.jackson.datatype.jsr310.deser.key.DurationKeyDeserializer86dee43d5fd8de58
    com.fasterxml.jackson.datatype.jsr310.deser.key.InstantKeyDeserializerc323cc187e10bdcd
    com.fasterxml.jackson.datatype.jsr310.deser.key.Jsr310KeyDeserializer64893f60684210d1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateKeyDeserializer3639e2ff55da7fa1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateTimeKeyDeserializered7e026ffd090c77
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalTimeKeyDeserializerc058ad0a221814f2
    com.fasterxml.jackson.datatype.jsr310.deser.key.MonthDayKeyDeserializerfe54a17b388e76da
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetDateTimeKeyDeserializer1bfce89e8c6142a4
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetTimeKeyDeserializer7e7c73d8f28d4c13
    com.fasterxml.jackson.datatype.jsr310.deser.key.PeriodKeyDeserializer1fb27ade4fa213e5
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearKeyDeserializerded209cf80f75df6
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearMonthKeyDeserializerbbb3a607d3512540
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneIdKeyDeserializer010f3e4e2802434d
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneOffsetKeyDeserializerb8b591cfa6cb7be9
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZonedDateTimeKeyDeserializerc3b6fe868b1396e4
    com.fasterxml.jackson.datatype.jsr310.ser.DurationSerializer1e922bfe151864ec
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializer61c7dc946aa7e67a
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerBase7878f0b5f564caa3
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBasebd4e59d7380ca96c
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310SerializerBase2ad341990e9021dc
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer8f84db74e8d2427f
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer014d82d656c93b81
    com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer30ef053f4ce38983
    com.fasterxml.jackson.datatype.jsr310.ser.MonthDaySerializer99c8e56bc8812c47
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetDateTimeSerializer8a0e8bd7a69de71e
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetTimeSerializerff84bad2852f3bf7
    com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializerb9428592c48c4dbc
    com.fasterxml.jackson.datatype.jsr310.ser.YearSerializer0f06fc30937c7746
    com.fasterxml.jackson.datatype.jsr310.ser.ZoneIdSerializer04f155c4ebbe4db1
    com.fasterxml.jackson.datatype.jsr310.ser.ZonedDateTimeSerializerf3edd0908d04ed41
    com.fasterxml.jackson.datatype.jsr310.ser.key.ZonedDateTimeKeySerializer244ed33273b7bb0f
    com.kohlschutter.stringhold.AsyncStringHolderSequence724e4c6ef8bd9620
    com.kohlschutter.stringhold.AsyncStringHolderSequenceTest9cbf629da9e085e1
    com.kohlschutter.stringhold.CachedIOSupplier385310568aaf12c0
    com.kohlschutter.stringhold.CachedIOSupplierTesta794fd075fc92ff1
    com.kohlschutter.stringhold.CharSequenceReleaseShim76b2a2f7f45228ef
    com.kohlschutter.stringhold.CommonStrings054d6cb5a26078c1
    com.kohlschutter.stringhold.CompareTest4ac0673cea63a970
    com.kohlschutter.stringhold.CompareTest.CustomCharAtStringHolderf3c91dd4ab7dc37c
    com.kohlschutter.stringhold.CompareTest.CustomEmptyStringHolderf4c0fd0a4b40ea47
    com.kohlschutter.stringhold.CompareTest.KnownLengthCustomCharAtStringHolder36b5b3c30409ff98
    com.kohlschutter.stringhold.CompareTest.StringTurningCharAtStringHolderb24aa831af22c0cf
    com.kohlschutter.stringhold.FixedLengthSuppliedStringHolder169e8814ef11be17
    com.kohlschutter.stringhold.HasExpectedLengthfbb08ec5978b85e0
    com.kohlschutter.stringhold.HasKnownLengthda572a2750889bf1
    com.kohlschutter.stringhold.HasLength2b70c9fe06d8d6fe
    com.kohlschutter.stringhold.HasLengthTest63e735de0e4ff79f
    com.kohlschutter.stringhold.HasLengthTest.1c110f0bb79e51119
    com.kohlschutter.stringhold.HasMinimumLength272f5e95d74f3388
    com.kohlschutter.stringhold.IOExceptionHandler3ea884311fee9b8a
    com.kohlschutter.stringhold.IOExceptionHandler.ExceptionResponse761b17bf049e601d
    com.kohlschutter.stringhold.LazyInitReader459c36c23b0437e5
    com.kohlschutter.stringhold.LazyInitReader.KickstartPlaceholder606cd39cb3f653fa
    com.kohlschutter.stringhold.LazyInitReaderReleaseShim7f9dc3525939a97f
    com.kohlschutter.stringhold.LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShimb604a74e0f0e2412
    com.kohlschutter.stringhold.LazyInitReaderTestade4f2701fe6d6f1
    com.kohlschutter.stringhold.LazyInitReaderTest.CountingSupplier25b4203c050883dc
    com.kohlschutter.stringhold.LimitedStringHolderScopef8fbd7d46ce24ba3
    com.kohlschutter.stringhold.LimitedStringHolderScopeTestb765eb81578010da
    com.kohlschutter.stringhold.LimitedStringHolderScopeTest.CustomResizeStringHoldercc3001132221c089
    com.kohlschutter.stringhold.LimitedStringHolderScopeTest.QuotaExceededException46363203b7636952
    com.kohlschutter.stringhold.ReaderStringHolder745d3c3b88644ced
    com.kohlschutter.stringhold.ReaderStringHolder.1cce0a8ef156ba197
    com.kohlschutter.stringhold.ReaderStringHolderTest29d80f34f901cf00
    com.kohlschutter.stringhold.ReaderStringHolderTest.10ef4d1aaea9715ec
    com.kohlschutter.stringhold.ReaderStringHolderTest.2006cdde11c15c4b8
    com.kohlschutter.stringhold.ReaderStringHolderTest.3ff789c0a9dae8425
    com.kohlschutter.stringhold.ReaderStringHolderTest.416e95b7ca5cfd754
    com.kohlschutter.stringhold.ReaderStringHolderTest.5e208600c92c2cf21
    com.kohlschutter.stringhold.ReaderStringHolderTest.6561fbd7500544f2c
    com.kohlschutter.stringhold.ReaderStringHolderTest.77ac8af1506ec75f1
    com.kohlschutter.stringhold.ReaderStringHolderTest.MyIOException352ab652ff09c5c6
    com.kohlschutter.stringhold.SimpleStringHolder84966e6ee5845473
    com.kohlschutter.stringhold.SimpleStringHolderTesta4a58b91618a7e4a
    com.kohlschutter.stringhold.StringHolderaeaad4da28f37004
    com.kohlschutter.stringhold.StringHolderScopef9dedc6f977f658f
    com.kohlschutter.stringhold.StringHolderScope.162199e3a7c2b726d
    com.kohlschutter.stringhold.StringHolderScopeTest62c72ccd4124fb14
    com.kohlschutter.stringhold.StringHolderScopeTest.108dc7ac8cf9f3a8e
    com.kohlschutter.stringhold.StringHolderScopeTest.22482959744a4fa2b
    com.kohlschutter.stringhold.StringHolderScopeTest.32e7d672d3d229ddc
    com.kohlschutter.stringhold.StringHolderScopeTest.42b0df76584d9ba56
    com.kohlschutter.stringhold.StringHolderScopeTest.5609f6a0a16bcdab7
    com.kohlschutter.stringhold.StringHolderScopeTest.64c7434c1fe300b12
    com.kohlschutter.stringhold.StringHolderScopeTest.7f38005b5318cd7bd
    com.kohlschutter.stringhold.StringHolderScopeTest.8443b8edd04cc75a0
    com.kohlschutter.stringhold.StringHolderScopeTest.BrokenStringHoldere7909da6dbe17907
    com.kohlschutter.stringhold.StringHolderScopeTest.CountingScopeb8be68240d9e4ab1
    com.kohlschutter.stringhold.StringHolderScopeTest.ResizingStringHolder65393b24cb6ba49d
    com.kohlschutter.stringhold.StringHolderSequence9c1b65f99bca9d67
    com.kohlschutter.stringhold.StringHolderSequence.StringSequenceReaderf13a90ebc353152b
    com.kohlschutter.stringhold.StringHolderSequenceTest76c30cd7cb048d91
    com.kohlschutter.stringhold.StringHolderTest8917f2582f9d85f9
    com.kohlschutter.stringhold.StringHolderTest.1f4cabcf752f11af8
    com.kohlschutter.stringhold.StringHolderTest.10a9bf763a390c0656
    com.kohlschutter.stringhold.StringHolderTest.114f6b9760c5cb6b39
    com.kohlschutter.stringhold.StringHolderTest.12b4d0a90bcb799c7a
    com.kohlschutter.stringhold.StringHolderTest.136eef313189c4462f
    com.kohlschutter.stringhold.StringHolderTest.14ebe6af0112e4c286
    com.kohlschutter.stringhold.StringHolderTest.15475598cae4d7a0ad
    com.kohlschutter.stringhold.StringHolderTest.167b25b7f2c39d0504
    com.kohlschutter.stringhold.StringHolderTest.175a9cae14d8aa1067
    com.kohlschutter.stringhold.StringHolderTest.18e06d3cc93b462d68
    com.kohlschutter.stringhold.StringHolderTest.196aeaea317795c9bc
    com.kohlschutter.stringhold.StringHolderTest.231ac59307840e38c
    com.kohlschutter.stringhold.StringHolderTest.20de9f5604a6645d25
    com.kohlschutter.stringhold.StringHolderTest.215d202ceea31a5dac
    com.kohlschutter.stringhold.StringHolderTest.22bcfb0b359c46b273
    com.kohlschutter.stringhold.StringHolderTest.23e845daad1514d3e7
    com.kohlschutter.stringhold.StringHolderTest.2401e8d16ef44dfe9e
    com.kohlschutter.stringhold.StringHolderTest.256b94a560eb79e2a5
    com.kohlschutter.stringhold.StringHolderTest.26b23c6647b7e4e50d
    com.kohlschutter.stringhold.StringHolderTest.27eb34f789bbe120b8
    com.kohlschutter.stringhold.StringHolderTest.28b8724201529defc6
    com.kohlschutter.stringhold.StringHolderTest.29b88bd27141d93566
    com.kohlschutter.stringhold.StringHolderTest.3aa068a14d1def052
    com.kohlschutter.stringhold.StringHolderTest.30f9d607c578d00338
    com.kohlschutter.stringhold.StringHolderTest.45997e3f50de03a25
    com.kohlschutter.stringhold.StringHolderTest.5d6123aac4d3f6ac4
    com.kohlschutter.stringhold.StringHolderTest.68411c55b1df0c006
    com.kohlschutter.stringhold.StringHolderTest.725c695e67eb50170
    com.kohlschutter.stringhold.StringHolderTest.88fe0cf8d5c3435fe
    com.kohlschutter.stringhold.StringHolderTest.9c2d02b0eae7dccaf
    com.kohlschutter.stringhold.StringHolderTest.BrokenEmptyCharSequence9c187067b8d264e7
    com.kohlschutter.stringhold.StringHolderTest.BrokenStringHolder8c59b15c6b33f92e
    com.kohlschutter.stringhold.StringHolderTest.TestCharSequencec664843714e3f39b
    com.kohlschutter.stringhold.StringOnlySequence15fe242486863412
    com.kohlschutter.stringhold.StringOnlySequenceTest8ab58fc0e7cd5797
    com.kohlschutter.stringhold.StringSequenceTest743d7d88758edf11
    com.kohlschutter.stringhold.SuppliedStringHolderd97efed853186598
    com.kohlschutter.stringhold.SuppliedStringHolder.147df010e82e417ff
    com.kohlschutter.stringhold.SuppliedStringHolder.26cb3ed6bdbdab278
    com.kohlschutter.stringhold.SuppliedStringHolderTest57ac37389c27d45f
    com.kohlschutter.stringhold.SuppliedStringHolderTest.10a6d50dbed720d37
    com.kohlschutter.stringhold.SuppliedStringHolderTest.CustomAppendStringHolder699c9c838bddb9d2
    com.kohlschutter.stringhold.WrappedAppendablea0ab23fbc9cced25
    com.kohlschutter.stringhold.WrappedCharSequence5df2e75316d5558f
    com.kohlschutter.stringhold.liqp.StringHolderRenderTransformer4ec9ec9678b15aeb
    com.kohlschutter.stringhold.liqp.StringHolderRenderTransformer.12bba85ba29bb66d9
    com.kohlschutter.stringhold.liqp.StringHolderRenderTransformerTest6d5fd6b45efffcbc
    com.kohlschutter.stringhold.liqp.StringsOnlyRenderTransformera2fc8db31c8dab09
    com.kohlschutter.stringhold.liqp.StringsOnlyRenderTransformer.1ada17d89a763e5c9
    com.kohlschutter.stringhold.liqp.StringsOnlyRenderTransformerTeste809a96f7960eb10
    com.kohlschutter.util.ComparisonUtil09c0fdab484e5377
    liqp.Insertion3c6b502b1a9e5cc7
    liqp.Insertions6ae9427defcfd556
    liqp.LValue4e1a69141cc22895
    liqp.LValue.17a859bf1f1ec84ca
    liqp.LValue.27aed02c7fa4d3ca6
    liqp.ParseSettings42084ee8b50c090a
    liqp.ParseSettings.Builderdd7b4cdb6315ee3d
    liqp.ProtectionSettingscfc356c0a7b167c7
    liqp.ProtectionSettings.Builderc8ed468f5b0fbb7e
    liqp.RenderSettings15389f6a031dbd07
    liqp.RenderSettings.Builderade6872bc806b0e1
    liqp.RenderSettings.EvaluateMode301f56dc5029fe88
    liqp.Templatec0d0a4cf81e7d129
    liqp.Template.1ce395d63892c587b
    liqp.Template.27eff49c52815ed4e
    liqp.Template.BuiltTemplatece17890c5bf8cf72
    liqp.TemplateContext583dd31769777382
    liqp.TemplateParserfd20fc1eead4e76a
    liqp.TemplateParser.Builderdad3e58e90f34533
    liqp.blocks.Block2a976c5be84141fa
    liqp.blocks.Capture935b024fb93f4561
    liqp.blocks.Casedf2709b173a9ac19
    liqp.blocks.Commentdf38c53ace935085
    liqp.blocks.Cyclec774e1441c57ed92
    liqp.blocks.For9ac63df8cc5f6303
    liqp.blocks.For.ForLoopDrop1ff27274ca797675
    liqp.blocks.If31fdf8731c34c7e7
    liqp.blocks.Ifchanged764fcebc1e6b5301
    liqp.blocks.Raw9d83c0fec801d6cb
    liqp.blocks.Tablerow2597c5e1cc2ab9f5
    liqp.blocks.Unless0471c4f07616aaa1
    liqp.filters.Absdad88d65320befeb
    liqp.filters.Absolute_Url79933c21fa52cd0b
    liqp.filters.Append8ae181da9c888689
    liqp.filters.At_Leaste0007b8cf25fe4c8
    liqp.filters.At_Most3212200939e8fae0
    liqp.filters.Capitalize22ce568ef63386cc
    liqp.filters.Ceil3787ac300bb5f05f
    liqp.filters.Compact1f381bfb83f6f3d4
    liqp.filters.Concat19120ef6695df493
    liqp.filters.Date569bcbed47d32ed7
    liqp.filters.Defaultbe86d1b58c60f8e5
    liqp.filters.Divided_By3267914444aa0041
    liqp.filters.Downcaseeea5624fdc9bd410
    liqp.filters.Escapee4f82549abe2aead
    liqp.filters.Escape_Onced81e865bd55bfd6d
    liqp.filters.Filter625190c6216a33c6
    liqp.filters.Filterseb74638e5057d8e5
    liqp.filters.First284346c4282155ae
    liqp.filters.Floor29e1610c598c5450
    liqp.filters.H265ba708c7de679f
    liqp.filters.Join35b4ac60993ee84c
    liqp.filters.Lastf201107a5e5c0b31
    liqp.filters.Lstripc0c8ac5d5db06067
    liqp.filters.Map2b6b16276a481d4f
    liqp.filters.Minus6d4cbd7e7e2a7596
    liqp.filters.Modulob09c384461c657b5
    liqp.filters.Newline_To_Br49ffe72e5559196e
    liqp.filters.Normalize_Whitespacea17f0c5230092f2d
    liqp.filters.Plusa117a24d2ef2e13b
    liqp.filters.Pop6ab9a97f4becd115
    liqp.filters.Prepend95beb66fd6b314b2
    liqp.filters.Push9fd1e9199a0daecf
    liqp.filters.Relative_Url5fefabd57276d3b1
    liqp.filters.Remove236bd815cfeb9776
    liqp.filters.Remove_Firstc5f403057fa7cb4d
    liqp.filters.Replace9acfc22f9773809f
    liqp.filters.Replace_First30bdad61efb0575e
    liqp.filters.Reversef1d1c59c0dda6c97
    liqp.filters.Round3b2fd8a5c6b8efa4
    liqp.filters.Rstrip4a0b094a4c5f913a
    liqp.filters.Shift7d23d6ee613e13d0
    liqp.filters.Sizef46af55bc01c84d3
    liqp.filters.Sliceb2636ec990424bd2
    liqp.filters.Sortfe738686e1927c06
    liqp.filters.Sort_Naturald430b018bc02eeeb
    liqp.filters.Splitc10e846882058c01
    liqp.filters.Strip3f97ed9f6506f026
    liqp.filters.Strip_HTMLb4e4b8f018cef662
    liqp.filters.Strip_Newlines6edc395898c8a7fb
    liqp.filters.Times5506202d455c686e
    liqp.filters.Truncate90e10c8d7105ec0a
    liqp.filters.Truncatewordsf7ec5b348f47e610
    liqp.filters.Uniq4079b484c1557810
    liqp.filters.Unshift35d4450bd73629e5
    liqp.filters.Upcasee3121d484338764f
    liqp.filters.Url_Decode79dbc0f289333334
    liqp.filters.Url_Encode547bf1bdd65a6ee0
    liqp.filters.Wherec9b041b6f0240626
    liqp.filters.Where_Expd67658e155cf3e9d
    liqp.filters.date.CustomDateFormatRegistry600d93a4c0e6a07c
    liqp.nodes.AtomNode0da03c38209290c1
    liqp.nodes.AtomNode.11423b2ea60bd3739
    liqp.nodes.AtomNode.206e3ab51949bff18
    liqp.nodes.BlockNode41b6f954bc9c6858
    liqp.nodes.InsertionNodebabaa0abd7b2bd84
    liqp.nodes.LookupNodeed2c02abeab3b7ba
    liqp.nodes.OutputNode37fab1d08face050
    liqp.parser.Flavora63bd116788c942f
    liqp.parser.v4.NodeVisitora65d7fd9c6926ab0
    liqp.spi.BasicTypesSupportec9bf2d4c16f93c3
    liqp.spi.BasicTypesSupport.141c6504ac5ecb79e
    liqp.spi.Java7DateTypesSupportb684aea32dc48953
    liqp.spi.Java7DateTypesSupport.176f61e740d24dbe1
    liqp.spi.Java7DateTypesSupport.2409c309e7ed0a6c0
    liqp.spi.Java8DateTypesSupportbb1ae08be8bcb166
    liqp.spi.SPIHelperaa84b47127589d8b
    liqp.spi.TypesSupportd453ee91b2dab0cd
    liqp.tags.Assignf2604896fdcdb21c
    liqp.tags.Breaka0a4a041589dad99
    liqp.tags.Continueb84ca4597b49039d
    liqp.tags.Decrement6b4fe1690df1f93c
    liqp.tags.Includef709dddcd4471ed3
    liqp.tags.Increment4c4742ca775f9d2c
    liqp.tags.Tag0e828c9abc3d855f
    liquid.parser.v4.LiquidLexer05045cb59086fd7c
    liquid.parser.v4.LiquidParserdf65c019e28857da
    liquid.parser.v4.LiquidParser.AtomContextc75900c3d206871a
    liquid.parser.v4.LiquidParser.Atom_othersContext04d782bc0a689f92
    liquid.parser.v4.LiquidParser.Atom_outputContext1482a7acb40c560c
    liquid.parser.v4.LiquidParser.Atom_tagContextba414c62e049a81c
    liquid.parser.v4.LiquidParser.BlockContext56b081389816e34f
    liquid.parser.v4.LiquidParser.ExprContextf1048c886c18b58b
    liquid.parser.v4.LiquidParser.Expr_termContext6832303e20f1a3c6
    liquid.parser.v4.LiquidParser.For_arrayContexte70140626767ef70
    liquid.parser.v4.LiquidParser.For_blockContextae140dae9075da41
    liquid.parser.v4.LiquidParser.For_rangeContext7a35a17340d8616b
    liquid.parser.v4.LiquidParser.For_tagContext3864fac81037a892
    liquid.parser.v4.LiquidParser.IdContext0c04cb84f7421717
    liquid.parser.v4.LiquidParser.LookupContext7a8fc8ba7888bb3f
    liquid.parser.v4.LiquidParser.Lookup_id_indexesContext4d110f1832ccc4d9
    liquid.parser.v4.LiquidParser.OtherContext182bac843a1b5a91
    liquid.parser.v4.LiquidParser.OutStartContexte8e74552dad00ad1
    liquid.parser.v4.LiquidParser.OutputContextf781b912f3769022
    liquid.parser.v4.LiquidParser.ParseContextfe1ad32abb47a3c4
    liquid.parser.v4.LiquidParser.TagContext8ff711888e2747f7
    liquid.parser.v4.LiquidParser.TermContext6f7e1bc01692ba73
    liquid.parser.v4.LiquidParser.Term_LongNumContext9b99947c4f849f09
    liquid.parser.v4.LiquidParser.Term_lookupContextec5e3f1de89c91bf
    liquid.parser.v4.LiquidParserBaseVisitor72af5efd49c1b54b
    org.antlr.v4.runtime.BaseErrorListener81d0a4ee7d822c67
    org.antlr.v4.runtime.BufferedTokenStreamf323bd81420dc2cc
    org.antlr.v4.runtime.CharStreamse059b5a9ee9ed8de
    org.antlr.v4.runtime.CodePointBuffer0959f432074b0a57
    org.antlr.v4.runtime.CodePointBuffer.1c0d72c63b5e3f5ba
    org.antlr.v4.runtime.CodePointBuffer.Builderd6960bc2f5b93a41
    org.antlr.v4.runtime.CodePointBuffer.Type3025c4cd74edc9a0
    org.antlr.v4.runtime.CodePointCharStream28cf1550d9770b82
    org.antlr.v4.runtime.CodePointCharStream.18e8dc6251d5337ec
    org.antlr.v4.runtime.CodePointCharStream.CodePoint8BitCharStreamc608d8ac701ea7c4
    org.antlr.v4.runtime.CommonToken3d6d25f0c68f7031
    org.antlr.v4.runtime.CommonTokenFactory6957eebff3d6972a
    org.antlr.v4.runtime.CommonTokenStream1b12e8e35bb7b1ed
    org.antlr.v4.runtime.ConsoleErrorListener06ce3091e7445896
    org.antlr.v4.runtime.DefaultErrorStrategy9eaedebccf53527c
    org.antlr.v4.runtime.Lexer6a0f5e829b138c36
    org.antlr.v4.runtime.Parser68aaf948f9217524
    org.antlr.v4.runtime.ParserRuleContexta601111c71ef694c
    org.antlr.v4.runtime.Recognizer93f9fffddd769ac7
    org.antlr.v4.runtime.Recognizer.1a953c8c359c88ad4
    org.antlr.v4.runtime.RuleContext8816185760e62dc7
    org.antlr.v4.runtime.RuntimeMetaDatae90c6f4743060654
    org.antlr.v4.runtime.VocabularyImpl0fc234bcb873faba
    org.antlr.v4.runtime.atn.ATN67a1e20b1b64d5b3
    org.antlr.v4.runtime.atn.ATNConfig1bd785582f5860d6
    org.antlr.v4.runtime.atn.ATNConfigSet3f5ec2ad3f5d079d
    org.antlr.v4.runtime.atn.ATNConfigSet.AbstractConfigHashSet83e45e0245119053
    org.antlr.v4.runtime.atn.ATNConfigSet.ConfigEqualityComparatorc1b29f5e13abb1d0
    org.antlr.v4.runtime.atn.ATNConfigSet.ConfigHashSetbe8d4a8efe100c3e
    org.antlr.v4.runtime.atn.ATNDeserializationOptions9f8606eac2c045de
    org.antlr.v4.runtime.atn.ATNDeserializerac490551c68acb05
    org.antlr.v4.runtime.atn.ATNDeserializer.163215896825eb9ab
    org.antlr.v4.runtime.atn.ATNDeserializer.28ee620b68ab55c36
    org.antlr.v4.runtime.atn.ATNDeserializer.3f3796a984e8660f9
    org.antlr.v4.runtime.atn.ATNDeserializer.UnicodeDeserializingMode77ce4b928b31a72d
    org.antlr.v4.runtime.atn.ATNSimulator85035812357f8d80
    org.antlr.v4.runtime.atn.ATNState83e76fdf28414f0d
    org.antlr.v4.runtime.atn.ATNType23698b595d8248d1
    org.antlr.v4.runtime.atn.AbstractPredicateTransition6b170f1ef92d3a58
    org.antlr.v4.runtime.atn.ActionTransitiondabc749288d5e936
    org.antlr.v4.runtime.atn.ArrayPredictionContexta45f494b30da2857
    org.antlr.v4.runtime.atn.AtomTransition4cb69b41bbb4d840
    org.antlr.v4.runtime.atn.BasicBlockStartStatefb02b4f0324194dd
    org.antlr.v4.runtime.atn.BasicState7d645c5ac0dbc5c2
    org.antlr.v4.runtime.atn.BlockEndStatebbe91308d320e691
    org.antlr.v4.runtime.atn.BlockStartState323f241c84ff2f2a
    org.antlr.v4.runtime.atn.DecisionState4772a23bc87f780c
    org.antlr.v4.runtime.atn.EmptyPredictionContext629e6f62c212ffdc
    org.antlr.v4.runtime.atn.EpsilonTransition68103254983c8861
    org.antlr.v4.runtime.atn.LL1Analyzer6f2d59f5eb76ee84
    org.antlr.v4.runtime.atn.LexerATNConfig71d63fb180b73fca
    org.antlr.v4.runtime.atn.LexerATNSimulatorbbbe96e6eebedbec
    org.antlr.v4.runtime.atn.LexerATNSimulator.SimState3ec3daff7e615595
    org.antlr.v4.runtime.atn.LexerActionExecutor96c8a17df2d9b8a6
    org.antlr.v4.runtime.atn.LexerActionType0b6cda5c9172b6a9
    org.antlr.v4.runtime.atn.LexerChannelActionb92fa4df681a0429
    org.antlr.v4.runtime.atn.LexerCustomActionfc3d8d0ecde0ff39
    org.antlr.v4.runtime.atn.LexerPopModeAction49cbcef20bbb7b82
    org.antlr.v4.runtime.atn.LexerPushModeAction3514bec45a69e038
    org.antlr.v4.runtime.atn.LexerSkipAction56bd2826c904a419
    org.antlr.v4.runtime.atn.LoopEndStatefdff2ed5a204a5d2
    org.antlr.v4.runtime.atn.NotSetTransition7973d12674564ca4
    org.antlr.v4.runtime.atn.OrderedATNConfigSetaba46d438f209179
    org.antlr.v4.runtime.atn.OrderedATNConfigSet.LexerConfigHashSetbfb5f6739ee914a0
    org.antlr.v4.runtime.atn.ParserATNSimulator1086168fde884838
    org.antlr.v4.runtime.atn.PlusBlockStartState149ae1e164188889
    org.antlr.v4.runtime.atn.PlusLoopbackStateb782365c70c166fa
    org.antlr.v4.runtime.atn.PrecedencePredicateTransition47f96ad92dfe57cf
    org.antlr.v4.runtime.atn.PredicateTransition90834ef1f41c9f73
    org.antlr.v4.runtime.atn.PredictionContext7c0b9fddb7967479
    org.antlr.v4.runtime.atn.PredictionContextCachee90b0e79060382f0
    org.antlr.v4.runtime.atn.PredictionMode870d726c14b8ae3f
    org.antlr.v4.runtime.atn.PredictionMode.AltAndContextConfigEqualityComparator43072df8bd0f766a
    org.antlr.v4.runtime.atn.PredictionMode.AltAndContextMap9f880822398b6afe
    org.antlr.v4.runtime.atn.RuleStartState75fbe924dc7f699c
    org.antlr.v4.runtime.atn.RuleStopState5a7b7a3bfa258727
    org.antlr.v4.runtime.atn.RuleTransitionc0385bee8da9389b
    org.antlr.v4.runtime.atn.SemanticContexta2c3f700e3611fbc
    org.antlr.v4.runtime.atn.SemanticContext.PrecedencePredicate57c132bbe40674ff
    org.antlr.v4.runtime.atn.SemanticContext.Predicate72113ab994840d83
    org.antlr.v4.runtime.atn.SetTransitionf16a6b19b2c294ff
    org.antlr.v4.runtime.atn.SingletonPredictionContext3df5155508beac81
    org.antlr.v4.runtime.atn.StarBlockStartState6f80983e4fa59594
    org.antlr.v4.runtime.atn.StarLoopEntryStatee185b743dbb9f1f4
    org.antlr.v4.runtime.atn.StarLoopbackState34178b336aca7b34
    org.antlr.v4.runtime.atn.TokensStartState06193c40b6c0cc0f
    org.antlr.v4.runtime.atn.Transition08b27ddf173154f2
    org.antlr.v4.runtime.atn.Transition.1f74173a21e7f6b5f
    org.antlr.v4.runtime.atn.WildcardTransition6d0fa5f148cb7d82
    org.antlr.v4.runtime.dfa.DFAa974710a2b71b6a4
    org.antlr.v4.runtime.dfa.DFAState2e5b1ac3b08b7471
    org.antlr.v4.runtime.misc.AbstractEqualityComparator056cf2558ab0363b
    org.antlr.v4.runtime.misc.Array2DHashSet38ba746e09c31e21
    org.antlr.v4.runtime.misc.DoubleKeyMap81a36d44c8f2fb3e
    org.antlr.v4.runtime.misc.FlexibleHashMapf81c5c96fa8c1d38
    org.antlr.v4.runtime.misc.FlexibleHashMap.Entry2fbf1414cd73fb57
    org.antlr.v4.runtime.misc.IntegerListbf0bf8ddc55365a1
    org.antlr.v4.runtime.misc.IntegerStacka1bde3c4aaa18709
    org.antlr.v4.runtime.misc.Intervalac51f92b1275dbd6
    org.antlr.v4.runtime.misc.IntervalSetb15e2279d19e40fe
    org.antlr.v4.runtime.misc.MurmurHasha72b1716119ac0ec
    org.antlr.v4.runtime.misc.ObjectEqualityComparatord08d025371e567d9
    org.antlr.v4.runtime.misc.Pair9de2ea22142bfa45
    org.antlr.v4.runtime.tree.AbstractParseTreeVisitora00e4a6fb1d93468
    org.antlr.v4.runtime.tree.TerminalNodeImplae88651f0fb3f915
    \ No newline at end of file +Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    retsina.local-5f681fafDec 31, 2023, 1:46:29 PMDec 31, 2023, 1:46:29 PM
    retsina.local-9f243cd9Dec 31, 2023, 1:46:35 PMDec 31, 2023, 1:46:35 PM

    Execution data for the following classes is considered in this report:

    ClassId
    com.fasterxml.jackson.annotation.JsonAutoDetect.Visibilitye56bcd385626eead
    com.fasterxml.jackson.annotation.JsonFormat.Features8a42630725ca176f
    com.fasterxml.jackson.annotation.JsonFormat.Shapec19c22f9661f3b7d
    com.fasterxml.jackson.annotation.JsonFormat.Valuec867e2a0cd371606
    com.fasterxml.jackson.annotation.JsonIgnoreProperties.Value4f0da3cf85f6ca76
    com.fasterxml.jackson.annotation.JsonInclude.Include8027810309051bc0
    com.fasterxml.jackson.annotation.JsonInclude.Value6e8a74b3c696aac1
    com.fasterxml.jackson.annotation.JsonIncludeProperties.Value7ed084480a07ee84
    com.fasterxml.jackson.annotation.JsonSetter.Value6ee26ce006658a00
    com.fasterxml.jackson.annotation.Nulls724f990ec72b618f
    com.fasterxml.jackson.core.Base64Variantc0e8197f954dd06f
    com.fasterxml.jackson.core.Base64Variant.PaddingReadBehaviour843a0ab5e9f9bc15
    com.fasterxml.jackson.core.Base64Variants706d40c092962881
    com.fasterxml.jackson.core.JsonFactory92d2e770b8f35f8e
    com.fasterxml.jackson.core.JsonFactory.Feature8361ffaea30cff48
    com.fasterxml.jackson.core.JsonGenerator.Feature5a49f8113c26ac2f
    com.fasterxml.jackson.core.JsonParser087ba07afe7d06ce
    com.fasterxml.jackson.core.JsonParser.Feature004fd2ec010ce098
    com.fasterxml.jackson.core.JsonParser.NumberTypef7a23e271b922f44
    com.fasterxml.jackson.core.JsonStreamContext8f79ce44d6acb1f0
    com.fasterxml.jackson.core.JsonToken12337f269c55f88a
    com.fasterxml.jackson.core.ObjectCodecbcfadd4a47d8d174
    com.fasterxml.jackson.core.PrettyPrinter522e543d2d203e0c
    com.fasterxml.jackson.core.StreamReadCapability4961b524041bfae0
    com.fasterxml.jackson.core.TokenStreamFactoryeeb403e3105a4c39
    com.fasterxml.jackson.core.TreeCodec9b794ee2c027e6c5
    com.fasterxml.jackson.core.Version0af4bf326090c50c
    com.fasterxml.jackson.core.base.ParserBase09e44d2aba8e329d
    com.fasterxml.jackson.core.base.ParserMinimalBased1dfef4481f52146
    com.fasterxml.jackson.core.io.CharTypes3948d29ac237c8f4
    com.fasterxml.jackson.core.io.ContentReferenceb7ba13bd0ff9bdf3
    com.fasterxml.jackson.core.io.IOContext904cd3765ace74f5
    com.fasterxml.jackson.core.io.JsonStringEncoder034ac13887946240
    com.fasterxml.jackson.core.io.NumberInput02755e0c4bbed6ec
    com.fasterxml.jackson.core.io.SerializedString297ea024d97582cf
    com.fasterxml.jackson.core.json.JsonReadContext4a5d2465f91a7f95
    com.fasterxml.jackson.core.json.ReaderBasedJsonParser1d969dbf6059e320
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer291229256a021e25
    com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfo795012ec0e6c889b
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer35a1ac98a1bad939
    com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.TableInfo2e560d79a52cf0a8
    com.fasterxml.jackson.core.type.ResolvedType15807997628a0aa4
    com.fasterxml.jackson.core.util.BufferRecycler9b42a79424df3f8e
    com.fasterxml.jackson.core.util.BufferRecyclers5fa617e1462e0caf
    com.fasterxml.jackson.core.util.DefaultIndenter3b2beace17e888ee
    com.fasterxml.jackson.core.util.DefaultPrettyPrinterd1ebc5e64e35699e
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.FixedSpaceIndenter4845911bdeabaf2a
    com.fasterxml.jackson.core.util.DefaultPrettyPrinter.NopIndenter23ef20344a80184e
    com.fasterxml.jackson.core.util.InternCache5a30c73b3b03a45e
    com.fasterxml.jackson.core.util.JacksonFeatureSet23f70a20c39e4603
    com.fasterxml.jackson.core.util.Separators2a5b790142732290
    com.fasterxml.jackson.core.util.TextBuffer789cefae4beae965
    com.fasterxml.jackson.core.util.VersionUtil1413be786bc77d26
    com.fasterxml.jackson.databind.AnnotationIntrospectoraf9daa2158870a32
    com.fasterxml.jackson.databind.BeanDescriptionc5613af91861c976
    com.fasterxml.jackson.databind.DatabindContext171ac5f27083d860
    com.fasterxml.jackson.databind.DeserializationConfigbeec5c0ed081b28e
    com.fasterxml.jackson.databind.DeserializationContext63ca2b9e4cf1e650
    com.fasterxml.jackson.databind.DeserializationFeature7892aa29da749006
    com.fasterxml.jackson.databind.JavaType6774433437db819f
    com.fasterxml.jackson.databind.JsonDeserializerf155d5de89ce5a60
    com.fasterxml.jackson.databind.JsonSerializer580d874493a44de7
    com.fasterxml.jackson.databind.KeyDeserializer57c3ce9990767641
    com.fasterxml.jackson.databind.MapperFeaturef1485765752306d7
    com.fasterxml.jackson.databind.MappingJsonFactoryf3cae28c0c458d13
    com.fasterxml.jackson.databind.Modulebb66b81d910dbd05
    com.fasterxml.jackson.databind.ObjectMapper9e2bf7d65aebeb2d
    com.fasterxml.jackson.databind.ObjectMapper.1d7d5c5df61482732
    com.fasterxml.jackson.databind.PropertyNamef0fe669cc1f8057b
    com.fasterxml.jackson.databind.SerializationConfigdd23e85db1772fa1
    com.fasterxml.jackson.databind.SerializationFeaturea7f6fb742e4bb5ac
    com.fasterxml.jackson.databind.SerializerProvidere3847c31e373e473
    com.fasterxml.jackson.databind.cfg.BaseSettingsee09f14529f6cfde
    com.fasterxml.jackson.databind.cfg.CoercionAction9e15561f16680f97
    com.fasterxml.jackson.databind.cfg.CoercionConfigffad61191adeb87e
    com.fasterxml.jackson.databind.cfg.CoercionConfigs63f7b0f9840aafbd
    com.fasterxml.jackson.databind.cfg.CoercionInputShape90aad4e377b3dccd
    com.fasterxml.jackson.databind.cfg.ConfigOverridef1771a0d408303c8
    com.fasterxml.jackson.databind.cfg.ConfigOverride.Empty3372ed519d9bafb4
    com.fasterxml.jackson.databind.cfg.ConfigOverrides6eccdb4ac13ab18a
    com.fasterxml.jackson.databind.cfg.ContextAttributes216e6db5a97ae48a
    com.fasterxml.jackson.databind.cfg.ContextAttributes.Impl7e49bf155839b753
    com.fasterxml.jackson.databind.cfg.DeserializerFactoryConfig797011776bfed729
    com.fasterxml.jackson.databind.cfg.MapperConfigec06db667daccfe8
    com.fasterxml.jackson.databind.cfg.MapperConfigBase82a2129d5033ef15
    com.fasterxml.jackson.databind.cfg.MutableCoercionConfig0fd510ce548c5df5
    com.fasterxml.jackson.databind.cfg.SerializerFactoryConfig97a0b951463407ed
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory35353283d28857e3
    com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.ContainerDefaultMappings6b760ad9e06a7e59
    com.fasterxml.jackson.databind.deser.BeanDeserializerFactoryebb2fb6497ab6fd1
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext23471bff48f2d14a
    com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl0c311b9cfe6a8407
    com.fasterxml.jackson.databind.deser.DeserializerCache2d98eb7f38fe0ade
    com.fasterxml.jackson.databind.deser.DeserializerFactory2ebdf24d93849f1a
    com.fasterxml.jackson.databind.deser.Deserializers.Basea3b8086adb6ca320
    com.fasterxml.jackson.databind.deser.ValueInstantiator7de15bbcecdec668
    com.fasterxml.jackson.databind.deser.ValueInstantiator.Base74d442e4bb57cf15
    com.fasterxml.jackson.databind.deser.ValueInstantiators.Base409ddb33d4295a19
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators899467f4ced76f52
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.ArrayListInstantiatorf835a690be876264
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.HashMapInstantiator57ca39c90391702b
    com.fasterxml.jackson.databind.deser.impl.JDKValueInstantiators.LinkedHashMapInstantiator2c8fe12c485f587f
    com.fasterxml.jackson.databind.deser.impl.JavaUtilCollectionsDeserializersba11da1dfe05e910
    com.fasterxml.jackson.databind.deser.impl.NullsConstantProviderddb643ddeb01e747
    com.fasterxml.jackson.databind.deser.std.CollectionDeserializer68b7a77554bf6c94
    com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBasec68510ec00c11ce2
    com.fasterxml.jackson.databind.deser.std.MapDeserializercb8fed36672f08c3
    com.fasterxml.jackson.databind.deser.std.NumberDeserializersaf4aa96d306dfbb7
    com.fasterxml.jackson.databind.deser.std.NumberDeserializers.NumberDeserializeracca61df8e576b9e
    com.fasterxml.jackson.databind.deser.std.StdDeserializer1fef92d543fe2c09
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializerc80c89050723096c
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.StringKDb1203fb69e79d221
    com.fasterxml.jackson.databind.deser.std.StdKeyDeserializerse277ef5e873fdf87
    com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer25286f364997b846
    com.fasterxml.jackson.databind.deser.std.StringDeserializer400a7aba0eeb3d31
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerd9352f6cdc59b396
    com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.Vanillafda27ced3fcdd12f
    com.fasterxml.jackson.databind.ext.Java7Supportb7ed61265dad1e05
    com.fasterxml.jackson.databind.ext.Java7SupportImpl4bb02b62d1f4b08e
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy3d3b7f563f5ca70a
    com.fasterxml.jackson.databind.introspect.AccessorNamingStrategy.Provider6026222786456f26
    com.fasterxml.jackson.databind.introspect.Annotated47d3d49f2b832d54
    com.fasterxml.jackson.databind.introspect.AnnotatedClassd7618104caa817e7
    com.fasterxml.jackson.databind.introspect.AnnotatedClass.Creators6d9ba5d6c00f185b
    com.fasterxml.jackson.databind.introspect.AnnotatedClassResolverb71c842acb1f38fa
    com.fasterxml.jackson.databind.introspect.AnnotationCollectorc389709d2ffbb364
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.EmptyCollectora87b6b2439611ec7
    com.fasterxml.jackson.databind.introspect.AnnotationCollector.NoAnnotations9173d7167a075d90
    com.fasterxml.jackson.databind.introspect.BasicBeanDescriptionfcd042c4339e4ae6
    com.fasterxml.jackson.databind.introspect.BasicClassIntrospector9b81bae8d2bdc7a9
    com.fasterxml.jackson.databind.introspect.ClassIntrospectorb20a1133edfcf6b5
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy3b7b9e1fd9ca60c0
    com.fasterxml.jackson.databind.introspect.DefaultAccessorNamingStrategy.Provider279a8d9b45166f1b
    com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector6ee54de73eb44d10
    com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector1e1c8f2eaab4288a
    com.fasterxml.jackson.databind.introspect.SimpleMixInResolver05d0015e0b63d267
    com.fasterxml.jackson.databind.introspect.VisibilityChecker.Stddcf4500664436616
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidatorff1c7cc76de984ce
    com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator.Baseea9ae0e64ce11069
    com.fasterxml.jackson.databind.jsontype.SubtypeResolverb2ed8bc0e5fe669c
    com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidatord02dab29b87ed521
    com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver353a51b197dba4be
    com.fasterxml.jackson.databind.module.SimpleDeserializers6399f6a0f689fbda
    com.fasterxml.jackson.databind.module.SimpleKeyDeserializersa819432235e4437e
    com.fasterxml.jackson.databind.module.SimpleModule142df66a318ceef6
    com.fasterxml.jackson.databind.module.SimpleSerializers39516f87ef2c71bf
    com.fasterxml.jackson.databind.node.JsonNodeFactory0f18f4e6ce6152ad
    com.fasterxml.jackson.databind.ser.BasicSerializerFactory97a7135d9fa67778
    com.fasterxml.jackson.databind.ser.BeanSerializerFactory01c553b8a2e9ae12
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider94637395bab35717
    com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl53b6a802688e5c4a
    com.fasterxml.jackson.databind.ser.SerializerCachec9e57915400fb429
    com.fasterxml.jackson.databind.ser.SerializerFactorya96ec5a87f2a9dec
    com.fasterxml.jackson.databind.ser.Serializers.Base443d0df59bde7b26
    com.fasterxml.jackson.databind.ser.impl.FailingSerializer96696f091a076f00
    com.fasterxml.jackson.databind.ser.impl.UnknownSerializer97051ea56a50f09d
    com.fasterxml.jackson.databind.ser.std.BooleanSerializer6d935809cc70dedf
    com.fasterxml.jackson.databind.ser.std.CalendarSerializerda6df272674c3c19
    com.fasterxml.jackson.databind.ser.std.DateSerializerdcf355b20d60965d
    com.fasterxml.jackson.databind.ser.std.DateTimeSerializerBase0f179763daa16b3e
    com.fasterxml.jackson.databind.ser.std.NullSerializer0db019a5d28b6525
    com.fasterxml.jackson.databind.ser.std.NumberSerializerb49271a382f5acb0
    com.fasterxml.jackson.databind.ser.std.NumberSerializersdfe8936a5bca95d8
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.Basee89fd22d3e157080
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.DoubleSerializerb3b7c0a4dc5aa3c9
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.FloatSerializerfd8000468d95d100
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntLikeSerializer19a0e7c41fcbbb05
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.IntegerSerializer3b0eb434a3630ccd
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.LongSerializer8b431cced5b1b076
    com.fasterxml.jackson.databind.ser.std.NumberSerializers.ShortSerializer8613a6cf439f0b06
    com.fasterxml.jackson.databind.ser.std.StdJdkSerializersb1d950d41858d3ba
    com.fasterxml.jackson.databind.ser.std.StdScalarSerializerc49a8b0a712a1383
    com.fasterxml.jackson.databind.ser.std.StdSerializer4f003e0e5a335c53
    com.fasterxml.jackson.databind.ser.std.StringSerializer3d337f1cb01ba05b
    com.fasterxml.jackson.databind.ser.std.ToEmptyObjectSerializeree5696656f5b577b
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerb965af9d2adb22d7
    com.fasterxml.jackson.databind.ser.std.ToStringSerializerBasec323d855ecbf9188
    com.fasterxml.jackson.databind.ser.std.UUIDSerializer6409650c33e1c5b2
    com.fasterxml.jackson.databind.type.ClassKeyafd44456d80534c1
    com.fasterxml.jackson.databind.type.ClassStack7c85624aef6e3562
    com.fasterxml.jackson.databind.type.CollectionLikeType160a6991673d32be
    com.fasterxml.jackson.databind.type.CollectionTyped93ee41eed402006
    com.fasterxml.jackson.databind.type.LogicalTypee0e08cb4c4d717b1
    com.fasterxml.jackson.databind.type.MapLikeTypea930cb208bd12632
    com.fasterxml.jackson.databind.type.MapType67ed0c0a97104570
    com.fasterxml.jackson.databind.type.SimpleType6d6674d2612a166a
    com.fasterxml.jackson.databind.type.TypeBase30f634bc18651f68
    com.fasterxml.jackson.databind.type.TypeBindings86a76fcb5c2bba33
    com.fasterxml.jackson.databind.type.TypeBindings.AsKey8ebf3d4e93855157
    com.fasterxml.jackson.databind.type.TypeBindings.TypeParamStash4550b96ac1086bd3
    com.fasterxml.jackson.databind.type.TypeFactoryd3a3629803fd686e
    com.fasterxml.jackson.databind.type.TypeParser2ce747808bc5c380
    com.fasterxml.jackson.databind.util.AccessPattern44bf82acd8a3fffc
    com.fasterxml.jackson.databind.util.ArrayBuilders8d854885f317f7a5
    com.fasterxml.jackson.databind.util.ArrayIteratore4c9e4d38ac21c90
    com.fasterxml.jackson.databind.util.ClassUtilfc6e81ed78dbbcd4
    com.fasterxml.jackson.databind.util.IgnorePropertiesUtil2c9cb2f0c7499b84
    com.fasterxml.jackson.databind.util.LRUMap7761915724985acc
    com.fasterxml.jackson.databind.util.LinkedNode73ca05873e25cb2e
    com.fasterxml.jackson.databind.util.ObjectBuffer22f0b3bc035ced26
    com.fasterxml.jackson.databind.util.RootNameLookup0a1b6f208f22829a
    com.fasterxml.jackson.databind.util.StdDateFormatc7d18d58ada26440
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule4110e68e5dc8a33b
    com.fasterxml.jackson.datatype.jsr310.JavaTimeModule.16269c84e29480142
    com.fasterxml.jackson.datatype.jsr310.PackageVersion12303845b900cff8
    com.fasterxml.jackson.datatype.jsr310.deser.DurationDeserializerab973e050cc98685
    com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer9a2ebf5dc1053184
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase451bbdbcdd0b2f3d
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310DeserializerBasea42a100eb3db5063
    com.fasterxml.jackson.datatype.jsr310.deser.JSR310StringParsableDeserializerec40549afa8898ca
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer4ec9cd420b6efa6f
    com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer9cf25a0b2bde4767
    com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer7889361dabb08019
    com.fasterxml.jackson.datatype.jsr310.deser.MonthDayDeserializerd43b9f169fd06f00
    com.fasterxml.jackson.datatype.jsr310.deser.OffsetTimeDeserializer2a5d44e03892ea5c
    com.fasterxml.jackson.datatype.jsr310.deser.YearDeserializerd56b6ecd9b0717ca
    com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializerf88f7121ace6966c
    com.fasterxml.jackson.datatype.jsr310.deser.key.DurationKeyDeserializer86dee43d5fd8de58
    com.fasterxml.jackson.datatype.jsr310.deser.key.InstantKeyDeserializerc323cc187e10bdcd
    com.fasterxml.jackson.datatype.jsr310.deser.key.Jsr310KeyDeserializer64893f60684210d1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateKeyDeserializer3639e2ff55da7fa1
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalDateTimeKeyDeserializered7e026ffd090c77
    com.fasterxml.jackson.datatype.jsr310.deser.key.LocalTimeKeyDeserializerc058ad0a221814f2
    com.fasterxml.jackson.datatype.jsr310.deser.key.MonthDayKeyDeserializerfe54a17b388e76da
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetDateTimeKeyDeserializer1bfce89e8c6142a4
    com.fasterxml.jackson.datatype.jsr310.deser.key.OffsetTimeKeyDeserializer7e7c73d8f28d4c13
    com.fasterxml.jackson.datatype.jsr310.deser.key.PeriodKeyDeserializer1fb27ade4fa213e5
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearKeyDeserializerded209cf80f75df6
    com.fasterxml.jackson.datatype.jsr310.deser.key.YearMonthKeyDeserializerbbb3a607d3512540
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneIdKeyDeserializer010f3e4e2802434d
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZoneOffsetKeyDeserializerb8b591cfa6cb7be9
    com.fasterxml.jackson.datatype.jsr310.deser.key.ZonedDateTimeKeyDeserializerc3b6fe868b1396e4
    com.fasterxml.jackson.datatype.jsr310.ser.DurationSerializer1e922bfe151864ec
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializer61c7dc946aa7e67a
    com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerBase7878f0b5f564caa3
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBasebd4e59d7380ca96c
    com.fasterxml.jackson.datatype.jsr310.ser.JSR310SerializerBase2ad341990e9021dc
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer8f84db74e8d2427f
    com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer014d82d656c93b81
    com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer30ef053f4ce38983
    com.fasterxml.jackson.datatype.jsr310.ser.MonthDaySerializer99c8e56bc8812c47
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetDateTimeSerializer8a0e8bd7a69de71e
    com.fasterxml.jackson.datatype.jsr310.ser.OffsetTimeSerializerff84bad2852f3bf7
    com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializerb9428592c48c4dbc
    com.fasterxml.jackson.datatype.jsr310.ser.YearSerializer0f06fc30937c7746
    com.fasterxml.jackson.datatype.jsr310.ser.ZoneIdSerializer04f155c4ebbe4db1
    com.fasterxml.jackson.datatype.jsr310.ser.ZonedDateTimeSerializerf3edd0908d04ed41
    com.fasterxml.jackson.datatype.jsr310.ser.key.ZonedDateTimeKeySerializer244ed33273b7bb0f
    com.kohlschutter.stringhold.AbstractStringHolderc9236b133c4e1626
    com.kohlschutter.stringhold.AsyncStringHolderSequenceb639b044fc99a459
    com.kohlschutter.stringhold.AsyncStringHolderSequenceTest7110bcea6d209d1f
    com.kohlschutter.stringhold.CachedIOSupplier385310568aaf12c0
    com.kohlschutter.stringhold.CachedIOSupplierTest2aa208a2f748eb5c
    com.kohlschutter.stringhold.CharSequenceReleaseShim76b2a2f7f45228ef
    com.kohlschutter.stringhold.CommonStringscbeb74c0bcfd10c7
    com.kohlschutter.stringhold.CompareTest3cdcd468bc433125
    com.kohlschutter.stringhold.CompareTest.CustomCharAtStringHolder8aba572f14b4d8c1
    com.kohlschutter.stringhold.CompareTest.CustomEmptyStringHoldera9cb5efbcc143a51
    com.kohlschutter.stringhold.CompareTest.KnownLengthCustomCharAtStringHolder36b5b3c30409ff98
    com.kohlschutter.stringhold.CompareTest.StringTurningCharAtStringHolderb24aa831af22c0cf
    com.kohlschutter.stringhold.ConditionalStringHolder061b922b66b3e3f4
    com.kohlschutter.stringhold.ConditionalStringHolderTestd20fe0a01403cf53
    com.kohlschutter.stringhold.FixedLengthSuppliedStringHolder2ccebd38d568307f
    com.kohlschutter.stringhold.HasExpectedLengthfbb08ec5978b85e0
    com.kohlschutter.stringhold.HasKnownLengthda572a2750889bf1
    com.kohlschutter.stringhold.HasLength2b70c9fe06d8d6fe
    com.kohlschutter.stringhold.HasLengthTestb3624388dc9de681
    com.kohlschutter.stringhold.HasLengthTest.1ede242a5c2b832a6
    com.kohlschutter.stringhold.HasMinimumLength272f5e95d74f3388
    com.kohlschutter.stringhold.IOExceptionHandler93ecfb9835108e77
    com.kohlschutter.stringhold.IOExceptionHandler.ExceptionResponse5589e53b9d9a913c
    com.kohlschutter.stringhold.LazyInitReader2ae355ef63465c22
    com.kohlschutter.stringhold.LazyInitReader.KickstartPlaceholder06cd838efdb983b2
    com.kohlschutter.stringhold.LazyInitReaderReleaseShim7f9dc3525939a97f
    com.kohlschutter.stringhold.LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim56680a79feb28ceb
    com.kohlschutter.stringhold.LazyInitReaderTest17730eb1e9d0298b
    com.kohlschutter.stringhold.LazyInitReaderTest.CountingSupplier25b4203c050883dc
    com.kohlschutter.stringhold.LimitedStringHolderScopef0e6a3138f25a6c4
    com.kohlschutter.stringhold.LimitedStringHolderScopeTeste0851e31fcde9a13
    com.kohlschutter.stringhold.LimitedStringHolderScopeTest.CustomResizeStringHolderbe30b03451fed488
    com.kohlschutter.stringhold.LimitedStringHolderScopeTest.QuotaExceededException46363203b7636952
    com.kohlschutter.stringhold.ReaderShim984ddde5fe8afe18
    com.kohlschutter.stringhold.ReaderShimTest813971810a55ff89
    com.kohlschutter.stringhold.ReaderShimTest.1321bdc7a607b7d42
    com.kohlschutter.stringhold.ReaderStringHolder5cb1db4a524c56b8
    com.kohlschutter.stringhold.ReaderStringHolder.1cce0a8ef156ba197
    com.kohlschutter.stringhold.ReaderStringHolderTest3eb0e817429f58b5
    com.kohlschutter.stringhold.ReaderStringHolderTest.1cbeaea4dcab6d8dd
    com.kohlschutter.stringhold.ReaderStringHolderTest.29b2846bf20c01777
    com.kohlschutter.stringhold.ReaderStringHolderTest.3fb5253c1cadf4456
    com.kohlschutter.stringhold.ReaderStringHolderTest.448de2733cd74ff0a
    com.kohlschutter.stringhold.ReaderStringHolderTest.54c0bf992ba1fae37
    com.kohlschutter.stringhold.ReaderStringHolderTest.63d88fe75c66f42e2
    com.kohlschutter.stringhold.ReaderStringHolderTest.7c03d0294f2e8ea08
    com.kohlschutter.stringhold.ReaderStringHolderTest.MyIOException352ab652ff09c5c6
    com.kohlschutter.stringhold.SimpleStringHolder71a0d8fbca1afe1a
    com.kohlschutter.stringhold.SimpleStringHolderTest7a42a148fe6395ca
    com.kohlschutter.stringhold.StringHolder8349655eecea9352
    com.kohlschutter.stringhold.StringHolderScope25200eecb1fd4507
    com.kohlschutter.stringhold.StringHolderScope.1a139e328cbe2d4c7
    com.kohlschutter.stringhold.StringHolderScopeTestd1468f16495f2794
    com.kohlschutter.stringhold.StringHolderScopeTest.17cadca8ede0a0a94
    com.kohlschutter.stringhold.StringHolderScopeTest.23439259ce7064f79
    com.kohlschutter.stringhold.StringHolderScopeTest.3091bf610bf412b2b
    com.kohlschutter.stringhold.StringHolderScopeTest.4089a7d4e2ee1c6f7
    com.kohlschutter.stringhold.StringHolderScopeTest.59a249b1173793893
    com.kohlschutter.stringhold.StringHolderScopeTest.65a52bcccc80ba0e3
    com.kohlschutter.stringhold.StringHolderScopeTest.7fb3b12b7bb175622
    com.kohlschutter.stringhold.StringHolderScopeTest.8a00a05769fca566d
    com.kohlschutter.stringhold.StringHolderScopeTest.BrokenStringHolder00091bc472d686ee
    com.kohlschutter.stringhold.StringHolderScopeTest.CountingScope1f7bf117bfeb4ce0
    com.kohlschutter.stringhold.StringHolderScopeTest.ResizingStringHolderc53edfff3762996e
    com.kohlschutter.stringhold.StringHolderSequence6332f931b23332d2
    com.kohlschutter.stringhold.StringHolderSequence.StringSequenceReader3a3dcd0ac34faa48
    com.kohlschutter.stringhold.StringHolderSequenceTest64b8a488b98c1085
    com.kohlschutter.stringhold.StringHolderTest57dfbd0355947d34
    com.kohlschutter.stringhold.StringHolderTest.15e23d12b64936c2e
    com.kohlschutter.stringhold.StringHolderTest.1037900972f111933d
    com.kohlschutter.stringhold.StringHolderTest.1183b2d9f5300fe2c9
    com.kohlschutter.stringhold.StringHolderTest.12c2b58a8d76a729de
    com.kohlschutter.stringhold.StringHolderTest.13b18db4245bc45d0e
    com.kohlschutter.stringhold.StringHolderTest.14a8901d3fb4a826f8
    com.kohlschutter.stringhold.StringHolderTest.158bde268738935546
    com.kohlschutter.stringhold.StringHolderTest.160e139290708432a4
    com.kohlschutter.stringhold.StringHolderTest.17ae764eb59d978c57
    com.kohlschutter.stringhold.StringHolderTest.1882302ef8a9ae1b87
    com.kohlschutter.stringhold.StringHolderTest.1961e3391e8d03a849
    com.kohlschutter.stringhold.StringHolderTest.26035142971d9151b
    com.kohlschutter.stringhold.StringHolderTest.20cca56704c1a5c1ff
    com.kohlschutter.stringhold.StringHolderTest.213be5ca131a51ebdf
    com.kohlschutter.stringhold.StringHolderTest.22df325fb4a2c26ae3
    com.kohlschutter.stringhold.StringHolderTest.2330b143f2d0ae1519
    com.kohlschutter.stringhold.StringHolderTest.24d94f54648f44de0b
    com.kohlschutter.stringhold.StringHolderTest.25728e58e0ee4ec131
    com.kohlschutter.stringhold.StringHolderTest.26a0b3c6bff99d2449
    com.kohlschutter.stringhold.StringHolderTest.27fb27e3af5197720b
    com.kohlschutter.stringhold.StringHolderTest.2872db69c996853d48
    com.kohlschutter.stringhold.StringHolderTest.29e0bd16e05d8f2585
    com.kohlschutter.stringhold.StringHolderTest.38821e48ed90f131c
    com.kohlschutter.stringhold.StringHolderTest.300481fac408735e8d
    com.kohlschutter.stringhold.StringHolderTest.31568837ea18b8f960
    com.kohlschutter.stringhold.StringHolderTest.321621edd6f547b265
    com.kohlschutter.stringhold.StringHolderTest.460d4200a48481da8
    com.kohlschutter.stringhold.StringHolderTest.5662597cb2780821a
    com.kohlschutter.stringhold.StringHolderTest.6d1f79419d1682e4d
    com.kohlschutter.stringhold.StringHolderTest.783267c478386ad3d
    com.kohlschutter.stringhold.StringHolderTest.8a30adbaec31169ec
    com.kohlschutter.stringhold.StringHolderTest.983dec422e127b86e
    com.kohlschutter.stringhold.StringHolderTest.BrokenEmptyCharSequence9c187067b8d264e7
    com.kohlschutter.stringhold.StringHolderTest.BrokenStringHolderf7062be25845a5e1
    com.kohlschutter.stringhold.StringHolderTest.TestCharSequencec664843714e3f39b
    com.kohlschutter.stringhold.StringOnlySequence7491761ffbcb99f3
    com.kohlschutter.stringhold.StringOnlySequenceTest5ad800b02e697f8c
    com.kohlschutter.stringhold.StringSequenceTest1192e7b7bc3b0747
    com.kohlschutter.stringhold.SuppliedStringHolderea271a068c6d14cb
    com.kohlschutter.stringhold.SuppliedStringHolder.1266ceeafb43b8745
    com.kohlschutter.stringhold.SuppliedStringHolder.28da2ed6a0171c3a2
    com.kohlschutter.stringhold.SuppliedStringHolderTestcfe7116e4e927954
    com.kohlschutter.stringhold.SuppliedStringHolderTest.11bd2d8cf0088a4e7
    com.kohlschutter.stringhold.SuppliedStringHolderTest.CustomAppendStringHolder0598fde2240e813d
    com.kohlschutter.stringhold.WrappedAppendablea0ab23fbc9cced25
    com.kohlschutter.stringhold.WrappedCharSequence5df2e75316d5558f
    com.kohlschutter.stringhold.liqp.Conditional8d6a6eb77466bf22
    com.kohlschutter.stringhold.liqp.ConditionalTestc202fc7bfc0c875e
    com.kohlschutter.stringhold.liqp.Conditionally6b847e61095276da
    com.kohlschutter.stringhold.liqp.StringHolderRenderTransformer6ea2ac742f3b9771
    com.kohlschutter.stringhold.liqp.StringHolderRenderTransformer.113c08625722d4f34
    com.kohlschutter.stringhold.liqp.StringHolderRenderTransformerTest618036bd0b8dd0e7
    com.kohlschutter.stringhold.liqp.StringholdLiqpHelper29648ea39bdab04d
    com.kohlschutter.stringhold.liqp.StringsOnlyRenderTransformercea797f455d461c2
    com.kohlschutter.stringhold.liqp.StringsOnlyRenderTransformer.11a45432782cf0f15
    com.kohlschutter.stringhold.liqp.StringsOnlyRenderTransformerTestb4bd0f494735d89f
    com.kohlschutter.util.ComparisonUtil09c0fdab484e5377
    liqp.Insertionb4ddef6967d19006
    liqp.Insertions1b4aceb92a9bd68e
    liqp.LValue00047a1c874477fe
    liqp.LValue.17a859bf1f1ec84ca
    liqp.LValue.27aed02c7fa4d3ca6
    liqp.RenderTransformerDefaultImpl4f6b5fdc12ed0bbc
    liqp.RenderTransformerDefaultImpl.1486e16874e1d3ca4
    liqp.Templatec2a5f1b984330d2a
    liqp.Template.12eda348ad49795ea
    liqp.Template.26ed1c5e9fc34bba2
    liqp.TemplateContextf0dfeb91663edda2
    liqp.TemplateParser6ed5d2bf1a48cc71
    liqp.TemplateParser.Builderabbca65e4f944b31
    liqp.TemplateParser.ErrorMode569181db6ead498e
    liqp.TemplateParser.EvaluateMode4cd0c26ff6178fa1
    liqp.antlr.LocalFSNameResolver0cdbd1133bf6d60c
    liqp.blocks.Blockfd2a81a36806d962
    liqp.blocks.Capture935b024fb93f4561
    liqp.blocks.Casedf2709b173a9ac19
    liqp.blocks.Commentdf38c53ace935085
    liqp.blocks.Cyclec774e1441c57ed92
    liqp.blocks.For4bfbf5784daba75a
    liqp.blocks.For.ForLoopDrop8fa96fbcc2158519
    liqp.blocks.If31fdf8731c34c7e7
    liqp.blocks.Ifchanged764fcebc1e6b5301
    liqp.blocks.Raw9d83c0fec801d6cb
    liqp.blocks.Tablerow3c921b65a216a7fd
    liqp.blocks.Unless0471c4f07616aaa1
    liqp.filters.Absdad88d65320befeb
    liqp.filters.Absolute_Urlc8edb03c6cbd62ea
    liqp.filters.Append8ae181da9c888689
    liqp.filters.At_Leaste0007b8cf25fe4c8
    liqp.filters.At_Most3212200939e8fae0
    liqp.filters.Capitalize22ce568ef63386cc
    liqp.filters.Ceil3787ac300bb5f05f
    liqp.filters.Compact1f381bfb83f6f3d4
    liqp.filters.Concat19120ef6695df493
    liqp.filters.Date8b405d632e9f4097
    liqp.filters.Defaultbe86d1b58c60f8e5
    liqp.filters.Divided_By3267914444aa0041
    liqp.filters.Downcaseeea5624fdc9bd410
    liqp.filters.Escapee4f82549abe2aead
    liqp.filters.Escape_Onced81e865bd55bfd6d
    liqp.filters.Filterca2cddb3ea4357c3
    liqp.filters.Filters6f0910f5e8797435
    liqp.filters.First284346c4282155ae
    liqp.filters.Floor29e1610c598c5450
    liqp.filters.H265ba708c7de679f
    liqp.filters.Join35b4ac60993ee84c
    liqp.filters.Lastf201107a5e5c0b31
    liqp.filters.Lstripc0c8ac5d5db06067
    liqp.filters.Mapb7904604926b6244
    liqp.filters.Minus6d4cbd7e7e2a7596
    liqp.filters.Modulo86a5c6922d73203a
    liqp.filters.Newline_To_Br49ffe72e5559196e
    liqp.filters.Normalize_Whitespacea17f0c5230092f2d
    liqp.filters.Plusa117a24d2ef2e13b
    liqp.filters.Pop6ab9a97f4becd115
    liqp.filters.Prepend95beb66fd6b314b2
    liqp.filters.Push9fd1e9199a0daecf
    liqp.filters.Relative_Urle8e7c94550087837
    liqp.filters.Remove236bd815cfeb9776
    liqp.filters.Remove_Firstc5f403057fa7cb4d
    liqp.filters.Replace9acfc22f9773809f
    liqp.filters.Replace_First30bdad61efb0575e
    liqp.filters.Reversef1d1c59c0dda6c97
    liqp.filters.Round67aeaeaed38e7667
    liqp.filters.Rstrip4a0b094a4c5f913a
    liqp.filters.Shift7d23d6ee613e13d0
    liqp.filters.Sizec2e9da34aace5f49
    liqp.filters.Sliceb2636ec990424bd2
    liqp.filters.Sorted18e56350e0ca9e
    liqp.filters.Sort_Naturald430b018bc02eeeb
    liqp.filters.Splitc10e846882058c01
    liqp.filters.Strip3f97ed9f6506f026
    liqp.filters.Strip_HTMLb4e4b8f018cef662
    liqp.filters.Strip_Newlines6edc395898c8a7fb
    liqp.filters.Times0a9ebe63d83e7611
    liqp.filters.Truncate90e10c8d7105ec0a
    liqp.filters.Truncatewordsf7ec5b348f47e610
    liqp.filters.Uniq4079b484c1557810
    liqp.filters.Unshift35d4450bd73629e5
    liqp.filters.Upcasee3121d484338764f
    liqp.filters.Url_Decode79dbc0f289333334
    liqp.filters.Url_Encode547bf1bdd65a6ee0
    liqp.filters.Wherec2c8ade777814da0
    liqp.filters.Where_Exp0684896dd04df000
    liqp.filters.date.CustomDateFormatRegistry4b483ba817824f48
    liqp.nodes.AtomNode0da03c38209290c1
    liqp.nodes.AtomNode.11423b2ea60bd3739
    liqp.nodes.AtomNode.206e3ab51949bff18
    liqp.nodes.BlockNode483c1dae948c0cd2
    liqp.nodes.InsertionNodebabaa0abd7b2bd84
    liqp.nodes.LookupNode1deb2cdc8cabb4c7
    liqp.nodes.OutputNodecc0f61b9358533e3
    liqp.org.antlr.v4.runtime.BaseErrorListener5de8c7f25f224cb8
    liqp.org.antlr.v4.runtime.BufferedTokenStreamc6c2b1249dd4dd30
    liqp.org.antlr.v4.runtime.CharStreams60717cca57ca6628
    liqp.org.antlr.v4.runtime.CodePointBuffer8cd06fd9f00fd04d
    liqp.org.antlr.v4.runtime.CodePointBuffer.1d74077a9acb7ad68
    liqp.org.antlr.v4.runtime.CodePointBuffer.Builder7de523f0382853ea
    liqp.org.antlr.v4.runtime.CodePointBuffer.Type449788039752592c
    liqp.org.antlr.v4.runtime.CodePointCharStreame1d99420764bad42
    liqp.org.antlr.v4.runtime.CodePointCharStream.1513cf26875440cde
    liqp.org.antlr.v4.runtime.CodePointCharStream.CodePoint8BitCharStreamece4f9fc9f26476e
    liqp.org.antlr.v4.runtime.CommonTokene50e8112bdfbeeb6
    liqp.org.antlr.v4.runtime.CommonTokenFactoryb085a3086149ccd7
    liqp.org.antlr.v4.runtime.CommonTokenStream494c2367e70df3c8
    liqp.org.antlr.v4.runtime.ConsoleErrorListener4c5d1930f3f057ec
    liqp.org.antlr.v4.runtime.DefaultErrorStrategy412fb0c6fb5c615e
    liqp.org.antlr.v4.runtime.Lexerce91790ecb1b3a49
    liqp.org.antlr.v4.runtime.Parser86cf983fcc6a3049
    liqp.org.antlr.v4.runtime.ParserRuleContextc228545c0c2135ff
    liqp.org.antlr.v4.runtime.ProxyErrorListenerd0a1a8a9843d537b
    liqp.org.antlr.v4.runtime.Recognizer08c440d8378a8f97
    liqp.org.antlr.v4.runtime.Recognizer.13888b028da3682a7
    liqp.org.antlr.v4.runtime.RuleContext8ef4d028d7e18db8
    liqp.org.antlr.v4.runtime.RuntimeMetaData531699fe027d57b2
    liqp.org.antlr.v4.runtime.VocabularyImpl6dc5e00c717e1fa5
    liqp.org.antlr.v4.runtime.atn.ATN8c60aba069e59cce
    liqp.org.antlr.v4.runtime.atn.ATNConfig6ee732d7e43d2aa4
    liqp.org.antlr.v4.runtime.atn.ATNConfigSet6d48a63e1d9796e4
    liqp.org.antlr.v4.runtime.atn.ATNConfigSet.AbstractConfigHashSet87435683472712c2
    liqp.org.antlr.v4.runtime.atn.ATNConfigSet.ConfigEqualityComparator586155e222683410
    liqp.org.antlr.v4.runtime.atn.ATNConfigSet.ConfigHashSet63686b3150858557
    liqp.org.antlr.v4.runtime.atn.ATNDeserializationOptions81a2c2f6bd7fc686
    liqp.org.antlr.v4.runtime.atn.ATNDeserializerd3af494036c7d8dd
    liqp.org.antlr.v4.runtime.atn.ATNDeserializer.1efdbca9c1529c7e4
    liqp.org.antlr.v4.runtime.atn.ATNSimulatoree557bf1eecebb09
    liqp.org.antlr.v4.runtime.atn.ATNState6876f55af6464a0e
    liqp.org.antlr.v4.runtime.atn.ATNTypefe1de72360957814
    liqp.org.antlr.v4.runtime.atn.AbstractPredicateTransitiond1e601294a90fda4
    liqp.org.antlr.v4.runtime.atn.ActionTransition59779af154ebbd2d
    liqp.org.antlr.v4.runtime.atn.ArrayPredictionContextc581a7d1871e7170
    liqp.org.antlr.v4.runtime.atn.AtomTransitione808ac2f09353d60
    liqp.org.antlr.v4.runtime.atn.BasicBlockStartStateaf46aa7bddbb731f
    liqp.org.antlr.v4.runtime.atn.BasicStatee0a69166d4f15f29
    liqp.org.antlr.v4.runtime.atn.BlockEndState89a6ac65ac55d958
    liqp.org.antlr.v4.runtime.atn.BlockStartState23c673804e528b4d
    liqp.org.antlr.v4.runtime.atn.DecisionState8b5326164cda495b
    liqp.org.antlr.v4.runtime.atn.EmptyPredictionContextc8f9d6d070ffd55e
    liqp.org.antlr.v4.runtime.atn.EpsilonTransitionc8c4515a7d58435c
    liqp.org.antlr.v4.runtime.atn.LL1Analyzer04385d2eaeeb26ff
    liqp.org.antlr.v4.runtime.atn.LexerATNConfig45dabbb6e42f2079
    liqp.org.antlr.v4.runtime.atn.LexerATNSimulator6e7723fb75bd93cc
    liqp.org.antlr.v4.runtime.atn.LexerATNSimulator.SimState682152c7a8f18d04
    liqp.org.antlr.v4.runtime.atn.LexerActionExecutor4cd17c4f7367fdeb
    liqp.org.antlr.v4.runtime.atn.LexerActionType2200d2d0d538e5ef
    liqp.org.antlr.v4.runtime.atn.LexerChannelAction73e0e10a3cfa7dc8
    liqp.org.antlr.v4.runtime.atn.LexerCustomActiona716b2768059770d
    liqp.org.antlr.v4.runtime.atn.LexerPopModeAction9b2a148120a8d1c9
    liqp.org.antlr.v4.runtime.atn.LexerPushModeAction3af846cfbef89bad
    liqp.org.antlr.v4.runtime.atn.LexerSkipAction9f383bc8826ce5b5
    liqp.org.antlr.v4.runtime.atn.LoopEndStatef46479100e6a2ad6
    liqp.org.antlr.v4.runtime.atn.NotSetTransition44c5c2c506c50f0b
    liqp.org.antlr.v4.runtime.atn.OrderedATNConfigSetcee11bb7eaef5011
    liqp.org.antlr.v4.runtime.atn.OrderedATNConfigSet.LexerConfigHashSetb86a7f68b84397c4
    liqp.org.antlr.v4.runtime.atn.ParserATNSimulatorfe88417a02a975ab
    liqp.org.antlr.v4.runtime.atn.ParserATNSimulator.16445f626f2ad4598
    liqp.org.antlr.v4.runtime.atn.PlusBlockStartState2641b8c78764df12
    liqp.org.antlr.v4.runtime.atn.PlusLoopbackState93fbd5a93e4c4ea5
    liqp.org.antlr.v4.runtime.atn.PrecedencePredicateTransition7680434da53f4998
    liqp.org.antlr.v4.runtime.atn.PredicateTransitiond49875ccf5c179e5
    liqp.org.antlr.v4.runtime.atn.PredictionContexta4ff670ed8eff124
    liqp.org.antlr.v4.runtime.atn.PredictionContextCache447257845e89a76c
    liqp.org.antlr.v4.runtime.atn.PredictionMode3aec11fa21ca0bf1
    liqp.org.antlr.v4.runtime.atn.PredictionMode.AltAndContextConfigEqualityComparator51c12995daa6320e
    liqp.org.antlr.v4.runtime.atn.PredictionMode.AltAndContextMap3a4127f3c69900f9
    liqp.org.antlr.v4.runtime.atn.RuleStartState6628b6b896aeb979
    liqp.org.antlr.v4.runtime.atn.RuleStopState4752ca4b95e8d57d
    liqp.org.antlr.v4.runtime.atn.RuleTransitionb1996913df89b811
    liqp.org.antlr.v4.runtime.atn.SemanticContexta3afb0ad8a11c384
    liqp.org.antlr.v4.runtime.atn.SemanticContext.Empty568f92fbc82aed77
    liqp.org.antlr.v4.runtime.atn.SemanticContext.OR3e9195762f86e6b3
    liqp.org.antlr.v4.runtime.atn.SemanticContext.Operatorb05cbd2ccf7bb923
    liqp.org.antlr.v4.runtime.atn.SemanticContext.PrecedencePredicate163c5c2e841bac89
    liqp.org.antlr.v4.runtime.atn.SemanticContext.Predicate2d810b28f76aab6e
    liqp.org.antlr.v4.runtime.atn.SetTransition8685cd64a336a417
    liqp.org.antlr.v4.runtime.atn.SingletonPredictionContext040910ed01a6d3f8
    liqp.org.antlr.v4.runtime.atn.StarBlockStartStatec0c21f186749518f
    liqp.org.antlr.v4.runtime.atn.StarLoopEntryState06b7c86073cc1d74
    liqp.org.antlr.v4.runtime.atn.StarLoopbackState4d62935d94088593
    liqp.org.antlr.v4.runtime.atn.TokensStartState771d3f26c9ca0818
    liqp.org.antlr.v4.runtime.atn.Transitiona524ab4ce6dcc4ba
    liqp.org.antlr.v4.runtime.atn.Transition.1fc22bada911a57cf
    liqp.org.antlr.v4.runtime.atn.WildcardTransition32729badbc813b67
    liqp.org.antlr.v4.runtime.dfa.DFA0aaf8426cacda497
    liqp.org.antlr.v4.runtime.dfa.DFAState0d86ce719d4f59f0
    liqp.org.antlr.v4.runtime.dfa.DFAState.PredPrediction5a3e944033427a3e
    liqp.org.antlr.v4.runtime.misc.AbstractEqualityComparatore2b91681bad45d8a
    liqp.org.antlr.v4.runtime.misc.Array2DHashSete188fe0649a7e885
    liqp.org.antlr.v4.runtime.misc.DoubleKeyMap1b0624a64b8f7c8d
    liqp.org.antlr.v4.runtime.misc.FlexibleHashMapde94d2bea6083688
    liqp.org.antlr.v4.runtime.misc.FlexibleHashMap.Entryeb33a315c8975209
    liqp.org.antlr.v4.runtime.misc.IntegerList68f9707af755faad
    liqp.org.antlr.v4.runtime.misc.IntegerStackb8e149dd85eed750
    liqp.org.antlr.v4.runtime.misc.Interval068fd25648e4607d
    liqp.org.antlr.v4.runtime.misc.IntervalSetf73c809b4dfa1a2c
    liqp.org.antlr.v4.runtime.misc.MurmurHash24504cbd6b924e1b
    liqp.org.antlr.v4.runtime.misc.ObjectEqualityComparatorbfdfcce535e0a637
    liqp.org.antlr.v4.runtime.misc.Pair4c13ea55c775ece7
    liqp.org.antlr.v4.runtime.tree.AbstractParseTreeVisitorc5c6c4e54c44267d
    liqp.org.antlr.v4.runtime.tree.TerminalNodeImpl7f0109f0cf3d0026
    liqp.parser.Flavor7999b33fa2082033
    liqp.parser.v4.NodeVisitor322172da969947b4
    liqp.spi.BasicTypesSupport1b10359e72566129
    liqp.spi.BasicTypesSupport.1def43bbdfa5852da
    liqp.spi.Java7DateTypesSupportb684aea32dc48953
    liqp.spi.Java7DateTypesSupport.122c8d3891088e7b4
    liqp.spi.Java7DateTypesSupport.2b9697e50647c37e0
    liqp.spi.Java8DateTypesSupport5dcc4753b8a7bcd6
    liqp.spi.SPIHelperaa84b47127589d8b
    liqp.spi.TypesSupportd453ee91b2dab0cd
    liqp.tags.Assignf2604896fdcdb21c
    liqp.tags.Breaka0a4a041589dad99
    liqp.tags.Continueb84ca4597b49039d
    liqp.tags.Decrement6b4fe1690df1f93c
    liqp.tags.Include5c181d3eb0f8d519
    liqp.tags.IncludeRelativef5152d2ea8feb191
    liqp.tags.Increment4c4742ca775f9d2c
    liqp.tags.Tage8411e847cc8e13c
    liquid.parser.v4.LiquidLexer351f04aa9a3b3847
    liquid.parser.v4.LiquidParser7e3f581a1816cc58
    liquid.parser.v4.LiquidParser.AtomContextbd92d8e09f2d5e16
    liquid.parser.v4.LiquidParser.Atom_othersContextdaa62654861029a8
    liquid.parser.v4.LiquidParser.Atom_outputContext57e1c5d07573fb39
    liquid.parser.v4.LiquidParser.Atom_tagContext14d7dcb8423fcc4a
    liquid.parser.v4.LiquidParser.BlockContext4b89f916ddd5883f
    liquid.parser.v4.LiquidParser.Capture_tagContext623da3f568baba81
    liquid.parser.v4.LiquidParser.Capture_tag_IdContext1e25bf818736acea
    liquid.parser.v4.LiquidParser.ExprContext16b11becac2f75e1
    liquid.parser.v4.LiquidParser.Expr_termContext4c96a8d65732114b
    liquid.parser.v4.LiquidParser.For_arrayContexta7c5fcda8871d661
    liquid.parser.v4.LiquidParser.For_blockContext234b6cf08e767d6e
    liquid.parser.v4.LiquidParser.For_rangeContext80599b2894691788
    liquid.parser.v4.LiquidParser.For_tagContext9614443940dd291e
    liquid.parser.v4.LiquidParser.IdContext0e1bebeb998f2ac9
    liquid.parser.v4.LiquidParser.LookupContextfde14de6261635c2
    liquid.parser.v4.LiquidParser.Lookup_id_indexesContextea924ca759d186e7
    liquid.parser.v4.LiquidParser.OtherContextcf94ad5ff1f78614
    liquid.parser.v4.LiquidParser.Other_tagContext2b79fd0776a0a586
    liquid.parser.v4.LiquidParser.Other_tag_parametersContext5e7a34bac88def9a
    liquid.parser.v4.LiquidParser.Other_than_tag_endContext85b30885e6446977
    liquid.parser.v4.LiquidParser.OutStartContext0a86aa9fb37b6662
    liquid.parser.v4.LiquidParser.OutputContext1c5a23e049c35c46
    liquid.parser.v4.LiquidParser.ParseContextbb4a02c364007c5b
    liquid.parser.v4.LiquidParser.Simple_tagContextc37ab45f395de348
    liquid.parser.v4.LiquidParser.TagContext0b6c707ac1a21c77
    liquid.parser.v4.LiquidParser.TermContext239da5c4438f889c
    liquid.parser.v4.LiquidParser.Term_LongNumContext141569c824994429
    liquid.parser.v4.LiquidParser.Term_lookupContexte4b1fc4fed0f20e3
    liquid.parser.v4.LiquidParserBaseVisitora55c8b422eb60ece
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/jacoco.csv b/stringhold-codecoverage/jacoco-aggregate/jacoco.csv index b68ae0e..574614b 100644 --- a/stringhold-codecoverage/jacoco-aggregate/jacoco.csv +++ b/stringhold-codecoverage/jacoco-aggregate/jacoco.csv @@ -1,30 +1,36 @@ GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim,0,12,0,0,0,2,0,2,0,2 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,IOExceptionHandler.ExceptionResponse,0,33,0,0,0,6,0,1,0,1 +stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,ConditionalStringHolder,0,304,0,60,0,98,0,62,0,32 +stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,ReaderShim,0,5,0,0,0,2,0,2,0,2 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,StringHolderScope,0,8,0,0,0,4,0,4,0,4 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,HasKnownLength,0,2,0,0,0,1,0,1,0,1 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,StringHolderSequence.StringSequenceReader,0,131,0,14,0,38,0,14,0,7 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,ReaderStringHolder,0,302,0,21,0,87,0,21,0,9 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,CharSequenceReleaseShim,0,13,0,2,0,3,0,4,0,3 -stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,SuppliedStringHolder,0,376,0,56,0,109,0,43,0,14 +stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,SuppliedStringHolder,0,390,0,56,0,112,0,44,0,15 +stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,AbstractStringHolder,0,1216,0,212,0,365,0,166,0,60 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,AsyncStringHolderSequence,0,267,0,28,0,64,0,28,0,14 -stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,StringHolderSequence,0,811,0,120,0,222,0,90,0,30 +stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,StringHolderSequence,0,894,0,134,0,243,0,99,0,32 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,SimpleStringHolder,0,10,0,0,0,4,0,2,0,2 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,LazyInitReader.KickstartPlaceholder,0,68,0,0,0,16,0,11,0,11 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,LazyInitReaderReleaseShim,0,8,0,0,0,2,0,2,0,2 -stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,LimitedStringHolderScope,0,128,0,8,0,29,0,15,0,11 +stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,LimitedStringHolderScope,0,130,0,8,0,29,0,15,0,11 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,HasLength,0,26,0,8,0,6,0,8,0,4 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,CachedIOSupplier,0,39,0,4,0,12,0,4,0,2 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,CommonStrings,0,366,0,18,0,40,0,13,0,4 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,StringHolderScope.new StringHolderScope() {...},0,3,0,0,0,1,0,1,0,1 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,FixedLengthSuppliedStringHolder,0,41,0,2,0,12,0,6,0,5 -stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,StringHolder,0,1468,0,253,0,423,0,203,0,76 +stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,StringHolder,0,434,0,79,0,104,0,71,0,31 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,HasMinimumLength,0,3,0,0,0,1,0,1,0,1 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,LazyInitReader,0,108,0,4,0,25,0,19,0,17 -stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,StringOnlySequence,0,10,0,0,0,5,0,3,0,3 +stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,StringOnlySequence,0,14,0,0,0,6,0,4,0,4 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,SuppliedStringHolder.new IOExceptionHandler() {...},0,3,0,0,0,1,0,1,0,1 stringhold-codecoverage/stringhold-common,com.kohlschutter.stringhold,HasExpectedLength,0,2,0,0,0,1,0,1,0,1 -stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,StringsOnlyRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...},0,117,0,2,0,25,0,8,0,7 +stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,StringsOnlyRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...},0,110,0,2,0,24,0,8,0,7 +stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,Conditionally,0,47,0,0,0,12,0,4,0,4 stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,StringsOnlyRenderTransformer,0,17,0,0,0,4,0,4,0,4 -stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,StringHolderRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...},0,106,0,6,0,22,0,8,0,5 -stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,StringHolderRenderTransformer,0,116,0,8,0,29,0,14,0,10 +stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,Conditional,0,113,0,12,0,29,0,12,0,5 +stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,StringHolderRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...},0,86,0,2,0,18,0,6,0,5 +stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,StringholdLiqpHelper,0,35,0,2,0,10,0,4,0,3 +stringhold-codecoverage/stringhold-liqp,com.kohlschutter.stringhold.liqp,StringHolderRenderTransformer,0,137,0,12,0,33,0,17,0,11 diff --git a/stringhold-codecoverage/jacoco-aggregate/jacoco.xml b/stringhold-codecoverage/jacoco-aggregate/jacoco.xml index 973a60d..28870a5 100644 --- a/stringhold-codecoverage/jacoco-aggregate/jacoco.xml +++ b/stringhold-codecoverage/jacoco-aggregate/jacoco.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AbstractStringHolder.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AbstractStringHolder.html new file mode 100644 index 0000000..2a74248 --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AbstractStringHolder.html @@ -0,0 +1 @@ +AbstractStringHolder

    AbstractStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 1,216100%0 of 212100%01660365060
    compareToDefault(CharSequence)109100%22100%01203901
    compareToDefault(StringHolder)91100%14100%0802701
    resizeTo(int, int, boolean)79100%12100%0702101
    resizeBy(int, int)67100%8100%0501701
    toString()61100%6100%0401701
    equalsStringHolder(StringHolder)57100%20100%01101201
    updateScope(StringHolderScope)40100%8100%0501901
    compareOurLengthKnown(StringHolder, int, int)39100%6100%0401501
    compareOtherLengthKnown(StringHolder, int, int)39100%6100%0401501
    compareTo(StringHolder)38100%10100%0601001
    equalsString(String)32100%10100%060701
    compareBothLengthsUnknown(StringHolder, int)31100%2100%0201401
    appendToAndReturnLength(StringBuilder)29100%6100%040801
    updateHashCode(int)29100%6100%040601
    appendToAndReturnLength(Appendable)28100%6100%040701
    compareBothLengthsKnown(StringHolder, int, int, int)28100%4100%030801
    equals(Object)27100%8100%050901
    appendToAndReturnLength(StringBuffer)27100%4100%030701
    appendToAndReturnLength(Writer)27100%4100%030701
    appendToAndReturnLengthDefault(Appendable)27100%4100%030701
    isKnownEmpty()25100%10100%060501
    AbstractStringHolder(int, int)24100%2100%020801
    compareTo(CharSequence)22100%6100%040701
    subSequence(int, int)14100%4100%030301
    appendToAndReturnLengthDefaultImpl(Appendable)13100%2100%020401
    appendToAndReturnLengthImpl(StringBuilder)13100%2100%020401
    appendToAndReturnLengthImpl(StringBuffer)13100%2100%020401
    toReader()13100%2100%020401
    length()12100%2100%020301
    setError()12100%2100%020501
    clearError()12100%2100%020501
    isEmpty()10100%4100%030101
    asContent()8100%2100%020301
    setExpectedLength(int)7100%n/a010201
    isString()7100%2100%020101
    markEffectivelyImmutable()7100%2100%020301
    resizeTo(int, int)6100%n/a010101
    checkEquals(StringHolder)6100%n/a010101
    lambda$newReader$0()6100%n/a010201
    AbstractStringHolder(int)5100%n/a010201
    checkEquals(String)5100%n/a010101
    appendTo(Appendable)5100%n/a010201
    appendTo(StringBuilder)5100%n/a010201
    appendTo(StringBuffer)5100%n/a010201
    appendTo(Writer)5100%n/a010201
    charAt(int)5100%n/a010101
    AbstractStringHolder()4100%n/a010201
    computeLength()4100%n/a010101
    hashCode()4100%n/a010101
    appendToAndReturnLengthImpl(Writer)4100%n/a010101
    uncache()4100%n/a010201
    newReader()4100%n/a010101
    getMinimumLength()3100%n/a010101
    getExpectedLength()3100%n/a010101
    isLengthKnown()3100%n/a010101
    checkError()3100%n/a010101
    getScope()3100%n/a010101
    isEffectivelyImmutable()3100%n/a010101
    clone()3100%n/a010101
    stringSanityCheck(String)1100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AbstractStringHolder.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AbstractStringHolder.java.html new file mode 100644 index 0000000..f2df6a4 --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AbstractStringHolder.java.html @@ -0,0 +1,964 @@ +AbstractStringHolder.java

    AbstractStringHolder.java

    /*
    + * stringhold
    + *
    + * Copyright 2022, 2023 Christian Kohlschütter
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.kohlschutter.stringhold;
    +
    +import java.io.IOException;
    +import java.io.Reader;
    +import java.io.StringReader;
    +import java.io.StringWriter;
    +import java.io.Writer;
    +import java.util.Objects;
    +
    +import com.kohlschutter.annotations.compiletime.ExcludeFromCodeCoverageGeneratedReport;
    +import com.kohlschutter.annotations.compiletime.SuppressFBWarnings;
    +import com.kohlschutter.util.ComparisonUtil;
    +
    +/**
    + * Base implementation of a {@link StringHolder}.
    + *
    + * @author Christian Kohlschütter
    + */
    +@SuppressWarnings({
    +    "PMD.CyclomaticComplexity", "PMD.ExcessiveClassLength", "PMD.ExcessivePublicCount"})
    +public abstract class AbstractStringHolder extends CharSequenceReleaseShim implements StringHolder {
    +  String theString;
    +
    +  private int minLength;
    +  private int expectedLength;
    +
    +  private boolean trouble = false;
    +
    +  @SuppressFBWarnings("EI_EXPOSE_REP")
    +  private StringHolderScope scope = null;
    +
    +  /**
    +   * Constructs a {@link AbstractStringHolder} with a zero minimum length.
    +   */
    +  protected AbstractStringHolder() {
    +    this(0);
    +  }
    +
    +  /**
    +   * Constructs a {@link AbstractStringHolder} with the given minimum length, use {@code 0} if no
    +   * minimum length is known.
    +   *
    +   * @param minLength The minimum length, which must not be larger than the eventual actual length.
    +   */
    +  @SuppressFBWarnings("CT_CONSTRUCTOR_THROW")
    +  protected AbstractStringHolder(int minLength) {
    +    this(minLength, minLength);
    +  }
    +
    +  /**
    +   * Constructs a {@link AbstractStringHolder} with the given minimum length (use {@code 0} if no
    +   * minimum length is known), and expected length.
    +   *
    +   * @param minLength The minimum length, which must not be larger than the eventual actual length.
    +   * @param expectedLength The expected length, which may be larger than the eventual actual length
    +   */
    +  @SuppressFBWarnings("CT_CONSTRUCTOR_THROW")
    +  protected AbstractStringHolder(int minLength, int expectedLength) {
    +    super();
    +    if (minLength < 0) {
    +      throw new IllegalArgumentException("Invalid minLength");
    +    }
    +    this.minLength = minLength;
    +    this.expectedLength = Math.max(minLength, expectedLength);
    +  }
    +
    +  @Override
    +  public final int getMinimumLength() {
    +    return minLength;
    +  }
    +
    +  @Override
    +  public final int getExpectedLength() {
    +    return expectedLength;
    +  }
    +
    +  @Override
    +  public void setExpectedLength(int len) {
    +    resizeTo(getMinimumLength(), len);
    +  }
    +
    +  /**
    +   * Sets the expected lengths (minimum and estimated) to the given values.
    +   *
    +   * @param min The new minimum length, must not be smaller than the current minimum (unless
    +   *          {@link #checkError()} is {@code true})
    +   * @param expected The new expected length (will be rounded up if less than {@code min}).
    +   * @return The new expected length (which may be adjusted to the new minimum).
    +   * @throws IllegalStateException if the value is negative, and {@link #checkError()} is
    +   *           {@code false}.
    +   */
    +  protected final int resizeTo(int min, int expected) {
    +    return resizeTo(min, expected, false);
    +  }
    +
    +  private int resizeTo(int min, int expected, boolean fromToString) {
    +    int oldMin = this.minLength;
    +    int oldExpected = this.expectedLength;
    +
    +    if (!fromToString && isString()) {
    +      // unchanged
    +      return oldExpected;
    +    }
    +
    +    if (min < oldMin) {
    +      if (checkError()) {
    +        // throw away our previous expectations upon error
    +        expected = (min = Math.max(0, min));
    +      } else {
    +        if (fromToString) {
    +          setError();
    +          resizeTo(min, expected, false);
    +          throw new IllegalStateException("Detected mispredicted minLength");
    +        } else {
    +          throw new IllegalStateException("New minimum is smaller than current minimum");
    +        }
    +      }
    +    }
    +
    +    int el = (this.expectedLength = Math.max((this.minLength = min), expected));
    +
    +    StringHolderScope sc = this.scope;
    +    if (sc != null) {
    +      try {
    +        sc.resizeBy(this.minLength - oldMin, this.expectedLength - oldExpected);
    +      } catch (RuntimeException | Error e) {
    +        setError();
    +        throw e;
    +      }
    +    }
    +
    +    return el;
    +  }
    +
    +  /**
    +   * Increases the expected lengths (minimum and estimated) by the given values.
    +   *
    +   * Any value that overflows {@link Integer#MAX_VALUE} will be capped at that limit.
    +   *
    +   * @param minBy The minimum length increment, must not be negative (unless {@link #checkError()}
    +   *          is {@code true})
    +   * @param expectedBy The expected length increment, may be negative; final length will be
    +   *          {@code >= 0}.
    +   * @throws IllegalArgumentException if minBy is negative and {@link #checkError()} is
    +   *           {@code false}
    +   */
    +  protected final void resizeBy(int minBy, int expectedBy) {
    +    int oldMin = this.minLength;
    +    int oldExpected = this.expectedLength;
    +
    +    if (minBy < 0) {
    +      if (checkError()) {
    +        this.minLength = Math.max(0, this.minLength + minBy);
    +      } else {
    +        throw new IllegalArgumentException("Minimum length increment is negative");
    +      }
    +    } else if ((this.minLength += minBy) < 0) {
    +      // cannot express minimum length that large
    +      this.minLength = Integer.MAX_VALUE;
    +    }
    +    this.expectedLength = Math.max(minLength, this.expectedLength + expectedBy);
    +
    +    StringHolderScope sc = this.scope;
    +    if (sc != null) {
    +      try {
    +        sc.resizeBy(this.minLength - oldMin, this.expectedLength - oldExpected);
    +      } catch (RuntimeException | Error e) {
    +        setError();
    +        throw e;
    +      }
    +    }
    +  }
    +
    +  @Override
    +  public final int length() {
    +    if (theString != null) {
    +      return minLength;
    +    } else {
    +      return resizeTo(computeLength(), 0);
    +    }
    +  }
    +
    +  /**
    +   * Computes the actual length of this instance's contents.
    +   *
    +   * By default, this is implemented as {@code toString().length()}.
    +   *
    +   * When overriding this method, make sure to also override {@link #isLengthKnown()}.
    +   *
    +   * @return The actual length.
    +   */
    +  @SuppressWarnings("PMD.UseStringBufferLength")
    +  protected int computeLength() {
    +    return toString().length();
    +  }
    +
    +  @Override
    +  public final boolean isString() {
    +    return theString != null;
    +  }
    +
    +  @Override
    +  public final boolean isKnownEmpty() {
    +    if (minLength > 0) {
    +      return false;
    +    } else if (isLengthKnown() && length() == 0) {
    +      return true;
    +    } else {
    +      String s;
    +
    +      return (s = theString) != null && s.isEmpty();
    +    }
    +  }
    +
    +  @Override
    +  public final boolean isEmpty() {
    +    return isKnownEmpty() || super.isEmpty();
    +  }
    +
    +  @Override
    +  public boolean isLengthKnown() {
    +    return isString();
    +  }
    +
    +  @Override
    +  public int hashCode() {
    +    return toString().hashCode();
    +  }
    +
    +  @SuppressFBWarnings("EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS")
    +  @Override
    +  public final boolean equals(Object obj) {
    +    if (obj == null) {
    +      return false;
    +    } else if (obj == this) {
    +      return true;
    +    } else if (obj instanceof String) {
    +      return equalsString((String) obj);
    +    } else if (obj instanceof StringHolder) {
    +      return equalsStringHolder((StringHolder) obj);
    +    } else {
    +      return false;
    +    }
    +  }
    +
    +  private boolean equalsString(String s) {
    +    if (!checkError() && s.length() < getMinimumLength()) {
    +      return false;
    +    } else if (isString()) {
    +      return toString().equals(s);
    +    } else if (isLengthKnown() && length() != s.length()) {
    +      return false;
    +    } else {
    +      return checkEquals(s);
    +    }
    +  }
    +
    +  /**
    +   * Checks if this {@link StringHolder} instance is equal to the given String (assume that trivial
    +   * requirements, such as minimum length, were already checked).
    +   *
    +   * Subclasses may override this check for a faster operation.
    +   *
    +   * @param s The other string.
    +   * @return {@code true} if this {@link StringHolder} is equal to the given string.
    +   */
    +  protected boolean checkEquals(String s) {
    +    return toString().equals(s);
    +  }
    +
    +  /**
    +   * Checks if this {@link StringHolder} instance is equal to the given {@link StringHolder} (assume
    +   * that trivial requirements, such as minimum length, were already checked).
    +   *
    +   * Subclasses may override this check for a faster operation.
    +   *
    +   * @param sh The other {@link StringHolder}.
    +   * @return {@code true} if this {@link StringHolder} is equal to the given string.
    +   */
    +  protected boolean checkEquals(StringHolder sh) {
    +    return toString().equals(sh.toString());
    +  }
    +
    +  @SuppressWarnings("unlikely-arg-type")
    +  @SuppressFBWarnings("EC_UNRELATED_CLASS_AND_INTERFACE")
    +  private boolean equalsStringHolder(StringHolder obj) {
    +    if (isLengthKnown() && obj.isLengthKnown() && length() != obj.length()) {
    +      return false;
    +    }
    +
    +    if (isString()) {
    +      if (!obj.checkError() && length() < obj.getMinimumLength()) {
    +        return false;
    +      }
    +      if (obj.isString()) {
    +        return toString().equals(obj.toString());
    +      } else {
    +        return obj.equals(toString());
    +      }
    +    } else if (obj.isString()) {
    +      if (!checkError() && obj.length() < getMinimumLength()) {
    +        return false;
    +      }
    +    }
    +
    +    return checkEquals(obj);
    +  }
    +
    +  @Override
    +  public final void appendTo(Appendable out) throws IOException {
    +    appendToAndReturnLength(out);
    +  }
    +
    +  @Override
    +  public final void appendTo(StringBuilder out) {
    +    appendToAndReturnLength(out);
    +  }
    +
    +  @Override
    +  public final void appendTo(StringBuffer out) {
    +    appendToAndReturnLength(out);
    +  }
    +
    +  @Override
    +  public final void appendTo(Writer out) throws IOException {
    +    appendToAndReturnLength(out);
    +  }
    +
    +  @Override
    +  public final int appendToAndReturnLength(Appendable out) throws IOException {
    +    if (out instanceof Writer) {
    +      return appendToAndReturnLength((Writer) out);
    +    } else if (out instanceof StringBuilder) {
    +      return appendToAndReturnLength((StringBuilder) out);
    +    } else if (out instanceof StringBuffer) {
    +      return appendToAndReturnLength((StringBuffer) out);
    +    } else {
    +      return appendToAndReturnLengthDefault(out);
    +    }
    +  }
    +
    +  @Override
    +  public final int appendToAndReturnLength(StringBuilder out) {
    +    int len;
    +    if (isString()) {
    +      len = length();
    +      if (len > 0) {
    +        out.append(toString());
    +      }
    +    } else {
    +      len = appendToAndReturnLengthImpl(out);
    +      if (minLength < len) {
    +        resizeTo(len, 0);
    +      }
    +    }
    +    return len;
    +  }
    +
    +  @Override
    +  public final int appendToAndReturnLength(StringBuffer out) {
    +    int len;
    +    if (isString()) {
    +      len = length();
    +      out.append(toString());
    +    } else {
    +      len = appendToAndReturnLengthImpl(out);
    +      if (minLength < len) {
    +        resizeTo(len, 0);
    +      }
    +    }
    +    return len;
    +  }
    +
    +  @Override
    +  public final int appendToAndReturnLength(Writer out) throws IOException {
    +    int len;
    +    if (isString()) {
    +      len = length();
    +      out.append(toString());
    +    } else {
    +      len = appendToAndReturnLengthImpl(out);
    +      if (minLength < len) {
    +        resizeTo(len, 0);
    +      }
    +    }
    +    return len;
    +  }
    +
    +  /**
    +   * Append the contents of this {@link StringHolder} to the given {@link Appendable} (which is
    +   * neither a {@link StringBuilder}, {@link StringBuffer}, nor a {@link Writer}), and returns the
    +   * number of characters appended. This call may or may not turn the contents of this instance into
    +   * a String. It won't be called if it's already one.
    +   *
    +   * @param out The target.
    +   * @return The number of characters appended (which is assumed to be the new minimum length).
    +   * @see #appendToAndReturnLength(StringBuilder)
    +   * @see #appendToAndReturnLength(StringBuffer)
    +   * @see #appendToAndReturnLength(StringWriter)
    +   * @throws IOException on error.
    +   */
    +  protected int appendToAndReturnLengthDefaultImpl(Appendable out) throws IOException {
    +    String s = toString();
    +    if (!s.isEmpty()) {
    +      out.append(s);
    +    }
    +    return s.length();
    +  }
    +
    +  /**
    +   * Append the contents of this {@link StringHolder} to the given {@link StringBuilder}, and
    +   * returns the number of characters appended. This call may or may not turn the contents of this
    +   * instance into a String. It won't be called if it's already one.
    +   *
    +   * @param out The target.
    +   * @return The number of characters appended (which is assumed to be the new minimum length).
    +   */
    +  protected int appendToAndReturnLengthImpl(StringBuilder out) {
    +    String s = toString();
    +    if (!s.isEmpty()) {
    +      out.append(s);
    +    }
    +    return s.length();
    +  }
    +
    +  /**
    +   * Append the contents of this {@link StringHolder} to the given {@link StringBuffer}, and returns
    +   * the number of characters appended. This call may or may not turn the contents of this instance
    +   * into a String. It won't be called if it's already one.
    +   *
    +   * @param out The target.
    +   * @return The number of characters appended (which is assumed to be the new minimum length).
    +   */
    +  protected int appendToAndReturnLengthImpl(StringBuffer out) {
    +    String s = toString();
    +    if (!s.isEmpty()) {
    +      out.append(s);
    +    }
    +    return s.length();
    +  }
    +
    +  /**
    +   * Append the contents of this {@link StringHolder} to the given {@link Writer}, and returns the
    +   * number of characters appended. This call may or may not turn the contents of this instance into
    +   * a String. It won't be called if it's already one.
    +   *
    +   * @param out The target.
    +   * @return The number of characters appended (which is assumed to be the new minimum length).
    +   * @throws IOException on error.
    +   */
    +  protected int appendToAndReturnLengthImpl(Writer out) throws IOException {
    +    // subclasses may implement a better way for Writers, but we don't
    +    return appendToAndReturnLengthDefault(out);
    +  }
    +
    +  private int appendToAndReturnLengthDefault(Appendable out) throws IOException {
    +    int len;
    +    if (isString()) {
    +      len = length();
    +      out.append(toString());
    +    } else {
    +      len = appendToAndReturnLengthDefaultImpl(out);
    +      if (minLength < len) {
    +        resizeTo(len, 0);
    +      }
    +    }
    +    return len;
    +  }
    +
    +  @Override
    +  public final String toString() {
    +    String s = theString;
    +    if (s != null) {
    +      return s;
    +    }
    +    synchronized (this) {
    +      try {
    +        if (isKnownEmpty()) {
    +          theString = s = "";
    +        } else {
    +          theString = s = CommonStrings.lookupIfPossible(Objects.requireNonNull(getString()));
    +        }
    +        resizeTo(s.length(), 0, true);
    +      } catch (RuntimeException e) {
    +        s = theString;
    +        if (s != null) {
    +          resizeTo(s.length(), 0, true);
    +        }
    +        setError();
    +        throw e;
    +      }
    +
    +      stringSanityCheck(s);
    +      return s;
    +    }
    +  }
    +
    +  /**
    +   * Called from within {@link #toString()} after updating/assigning the cached string but before
    +   * returning it. This may be a good opportunity to see if we got what we wanted, call setError,
    +   * etc.
    +   *
    +   * @param s The string.
    +   */
    +  protected void stringSanityCheck(String s) {
    +  }
    +
    +  /**
    +   * Retrieves the string.
    +   *
    +   * @return The string; must not be {@code null}.
    +   */
    +  protected abstract String getString();
    +
    +  /**
    +   * Un-caches the already-determined String. This can be used to implement mutable data structures.
    +   *
    +   * Important: Subclasses must carefully check {@link #isEffectivelyImmutable()} status.
    +   */
    +  protected void uncache() {
    +    theString = null;
    +  }
    +
    +  @Override
    +  public final Reader toReader() throws IOException {
    +    String s = theString;
    +    if (s != null) {
    +      return new StringReader(s);
    +    } else {
    +      return newReader();
    +    }
    +  }
    +
    +  @Override
    +  public final boolean checkError() {
    +    return trouble;
    +  }
    +
    +  /**
    +   * Signals that this instance had some kind of unexpected condition.
    +   *
    +   * @see #checkError()
    +   * @see #clearError()
    +   */
    +  protected final void setError() {
    +    trouble = true;
    +    StringHolderScope sc = scope;
    +    if (sc != null) {
    +      sc.setError(this);
    +    }
    +  }
    +
    +  /**
    +   * Clears the trouble state of this instance.
    +   *
    +   * @see #checkError()
    +   * @see #setError()
    +   */
    +  protected final void clearError() {
    +    trouble = false;
    +    StringHolderScope sc = scope;
    +    if (sc != null) {
    +      sc.clearError(this);
    +    }
    +  }
    +
    +  /**
    +   * Constructs a new {@link Reader} providing the contents of this {@link StringHolder}.
    +   *
    +   * @return The reader.
    +   * @throws IOException on error.
    +   */
    +  protected Reader newReader() throws IOException {
    +    return LazyInitReader.withSupplier(() -> new StringReader(AbstractStringHolder.this
    +        .toString()));
    +  }
    +
    +  @Override
    +  public final StringHolderScope getScope() {
    +    return scope;
    +  }
    +
    +  @Override
    +  public final StringHolderScope updateScope(StringHolderScope newScope) {
    +    if (newScope == StringHolderScope.NONE) { // NOPMD.CompareObjectsWithEquals
    +      newScope = null;
    +    }
    +    StringHolderScope oldScope = this.scope;
    +    if (oldScope == newScope) { // NOPMD.CompareObjectsWithEquals
    +      return oldScope;
    +    }
    +
    +    if (oldScope != null) {
    +      try {
    +        oldScope.remove(this);
    +      } catch (RuntimeException | Error e) {
    +        setError();
    +        throw e;
    +      }
    +    }
    +
    +    if (newScope != null) {
    +      try {
    +        newScope.add(this);
    +      } catch (RuntimeException | Error e) {
    +        setError();
    +        throw e;
    +      }
    +    }
    +    this.scope = newScope;
    +    return oldScope;
    +  }
    +
    +  @Override
    +  public char charAt(int index) {
    +    return toString().charAt(index);
    +  }
    +
    +  @Override
    +  public CharSequence subSequence(int start, int end) {
    +    if (start == 0 && end == length()) {
    +      return this;
    +    }
    +    return toString().subSequence(start, end);
    +  }
    +
    +  @Override
    +  public Object asContent() {
    +    if (isString()) {
    +      return toString();
    +    }
    +    return this;
    +  }
    +
    +  @Override
    +  public int compareTo(CharSequence o) {
    +    if (o instanceof StringHolder) {
    +      return compareTo((StringHolder) o);
    +    }
    +
    +    if (isKnownEmpty()) {
    +      if (CharSequenceReleaseShim.isEmpty(o)) {
    +        return 0;
    +      } else {
    +        return -1;
    +      }
    +    }
    +
    +    return compareToDefault(o);
    +  }
    +
    +  @Override
    +  public int compareTo(StringHolder o) {
    +    if (o.isKnownEmpty()) {
    +      if (isKnownEmpty()) {
    +        return 0;
    +      }
    +    } else if (o.isString()) {
    +      if (isString()) {
    +        return toString().compareTo(o.toString());
    +      } else {
    +        return compareTo(o.toString());
    +      }
    +    } else if (isString()) {
    +      return ComparisonUtil.reverseComparisonResult(o.compareTo(toString()));
    +    }
    +
    +    return compareToDefault(o);
    +  }
    +
    +  /**
    +   * Default implementation for comparing this instance with another {@link CharSequence} that is
    +   * not a {@link StringHolder}. Certain trivial checks were already performed, such as one or both
    +   * being known empty.
    +   *
    +   * @param o The other object.
    +   * @return The comparison result, as defined by {@link #compareTo(Object)}.
    +   */
    +  @SuppressWarnings({"PMD.CognitiveComplexity"})
    +  protected final int compareToDefault(CharSequence o) {
    +    int k = 0;
    +
    +    if (getMinimumLength() > 0 && CharSequenceReleaseShim.isEmpty(o)) {
    +      // NOTE: we trust the StringHolder claim of minimum length
    +      return 1;
    +    }
    +    int len2 = o.length();
    +
    +    int lim;
    +    char c1;
    +    try {
    +      c1 = charAt(k);
    +    } catch (IndexOutOfBoundsException e) {
    +      if (len2 == 0) {
    +        return 0;
    +      } else {
    +        return -1;
    +      }
    +    }
    +
    +    int len1;
    +    if (isString()) {
    +      if (o instanceof String) {
    +        return toString().compareTo((String) o);
    +      }
    +      len1 = length();
    +      lim = Math.min(len1, len2);
    +    } else {
    +      if (isLengthKnown()) {
    +        len1 = length();
    +        lim = Math.min(len1, len2);
    +      } else {
    +        len1 = Integer.MAX_VALUE;
    +        lim = len2;
    +      }
    +    }
    +
    +    while (k < lim) {
    +      char c2 = o.charAt(k);
    +      if (c1 != c2) {
    +        return c1 - c2;
    +      }
    +      k++;
    +      if (k < lim) {
    +        try {
    +          c1 = charAt(k);
    +        } catch (IndexOutOfBoundsException e) {
    +          return -1;
    +        }
    +      }
    +    }
    +
    +    if (getMinimumLength() > k) {
    +      return 1;
    +    } else if (len1 == k) {
    +      return len1 - len2;
    +    }
    +    try {
    +      charAt(k);
    +      return 1;
    +    } catch (IndexOutOfBoundsException e) {
    +      return 0;
    +    }
    +  }
    +
    +  /**
    +   * Default implementation for comparing this instance with another {@link StringHolder}. Certain
    +   * trivial checks were already performed, such as one or both being known empty or known being
    +   * string.
    +   *
    +   * @param o The other object.
    +   * @return The comparison result, as defined by {@link #compareTo(Object)}.
    +   */
    +  @SuppressWarnings({"PMD.NPathComplexity", "PMD.CognitiveComplexity"})
    +  protected int compareToDefault(StringHolder o) {
    +    int k = 0;
    +
    +    char c1;
    +    char c2;
    +    try {
    +      c1 = charAt(k);
    +    } catch (IndexOutOfBoundsException e) {
    +      try {
    +        o.charAt(k);
    +        return -1;
    +      } catch (IndexOutOfBoundsException e2) {
    +        return 0;
    +      }
    +    }
    +    try {
    +      c2 = o.charAt(k);
    +    } catch (IndexOutOfBoundsException e) {
    +      return 1;
    +    }
    +
    +    if (c1 != c2) {
    +      return c1 - c2;
    +    }
    +
    +    if (isString()) {
    +      return ComparisonUtil.reverseComparisonResult(o.compareTo(toString()));
    +    } else if (o.isString()) {
    +      return compareTo(o.toString());
    +    }
    +
    +    boolean len1Known = isLengthKnown();
    +    boolean len2Known = o.isLengthKnown();
    +
    +    if (len1Known && len2Known) {
    +      return compareBothLengthsKnown(o, k, length(), o.length());
    +    } else if (len1Known) {
    +      return compareOurLengthKnown(o, k, length());
    +    } else if (len2Known) {
    +      return compareOtherLengthKnown(o, k, o.length());
    +    } else {
    +      return compareBothLengthsUnknown(o, k);
    +    }
    +  }
    +
    +  private int compareBothLengthsKnown(StringHolder o, int k, int len1, int len2) {
    +    int lim = Math.min(len1, len2);
    +
    +    char c1;
    +    char c2;
    +
    +    while (k < lim) {
    +      c1 = charAt(k);
    +      c2 = o.charAt(k);
    +      if (c1 != c2) {
    +        return c1 - c2;
    +      }
    +      k++;
    +    }
    +
    +    return len1 - len2;
    +  }
    +
    +  private int compareOurLengthKnown(StringHolder o, int k, int len1) {
    +    char c1;
    +    char c2;
    +
    +    while (k < len1) {
    +      c1 = charAt(k);
    +      try {
    +        c2 = o.charAt(k);
    +      } catch (IndexOutOfBoundsException e) {
    +        return 1;
    +      }
    +      if (c1 != c2) {
    +        return c1 - c2;
    +      }
    +      k++;
    +    }
    +
    +    try {
    +      if (o.getMinimumLength() > k) {
    +        return -1;
    +      }
    +      o.charAt(k);
    +      return -1;
    +    } catch (IndexOutOfBoundsException e) {
    +      return 0;
    +    }
    +  }
    +
    +  private int compareOtherLengthKnown(StringHolder o, int k, int len2) {
    +    char c1;
    +    char c2;
    +
    +    while (k < len2) {
    +      try {
    +        c1 = charAt(k);
    +      } catch (IndexOutOfBoundsException e) {
    +        return -1;
    +      }
    +      c2 = o.charAt(k);
    +      if (c1 != c2) {
    +        return c1 - c2;
    +      }
    +      k++;
    +    }
    +
    +    try {
    +      if (getMinimumLength() > k) {
    +        return 1;
    +      }
    +      charAt(k);
    +      return 1;
    +    } catch (IndexOutOfBoundsException e) {
    +      return 0;
    +    }
    +  }
    +
    +  private int compareBothLengthsUnknown(StringHolder o, int k) {
    +    char c1;
    +    char c2;
    +    while (true) {
    +      k++;
    +
    +      try {
    +        c1 = charAt(k);
    +      } catch (IndexOutOfBoundsException e) {
    +        try {
    +          o.charAt(k);
    +          return -1;
    +        } catch (IndexOutOfBoundsException e2) {
    +          return 0;
    +        }
    +      }
    +      try {
    +        c2 = o.charAt(k);
    +      } catch (IndexOutOfBoundsException e) {
    +        return 1;
    +      }
    +
    +      if (c1 != c2) {
    +        return c1 - c2;
    +      }
    +    }
    +  }
    +
    +  /**
    +   * Computes a partial hash code, using the given value as the seed.
    +   *
    +   * @param h The initial value (seed).
    +   * @return The updated hash code.
    +   */
    +  protected int updateHashCode(int h) {
    +    int length = length();
    +
    +    if (h == 0 && isString()) {
    +      return toString().hashCode();
    +    }
    +
    +    for (int i = 0; i < length; i++) {
    +      h = 31 * h + charAt(i);
    +    }
    +    return h;
    +  }
    +
    +  @Override
    +  public boolean isEffectivelyImmutable() {
    +    return isString();
    +  }
    +
    +  @Override
    +  public void markEffectivelyImmutable() {
    +    if (!isEffectivelyImmutable()) {
    +      toString();
    +    }
    +  }
    +
    +  @ExcludeFromCodeCoverageGeneratedReport(reason = "exception unreachable")
    +  private AbstractStringHolder cloneSuper() {
    +    try {
    +      return (AbstractStringHolder) super.clone();
    +    } catch (CloneNotSupportedException e) {
    +      throw new IllegalStateException(e);
    +    }
    +  }
    +
    +  @Override
    +  public AbstractStringHolder clone() {
    +    return cloneSuper();
    +  }
    +}
    +
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AsyncStringHolderSequence.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AsyncStringHolderSequence.html index 787be27..92c4aaf 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AsyncStringHolderSequence.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AsyncStringHolderSequence.html @@ -1 +1 @@ -AsyncStringHolderSequence

    AsyncStringHolderSequence

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 267100%0 of 28100%028064014
    appendToAndReturnLengthImpl(Appendable, AsyncStringHolderSequence.Append, AsyncStringHolderSequence.EnsureCapacity, boolean)173100%26100%01404801
    appendToAndReturnLengthImpl1(StringBuilder)16100%n/a010201
    appendToAndReturnLengthImpl1(StringBuffer)16100%n/a010201
    AsyncStringHolderSequence(int, Executor)12100%2100%020301
    appendToAndReturnLengthDefaultImpl(Appendable)11100%n/a010101
    lambda$appendToAndReturnLengthImpl1$3(StringBuffer, int, int)6100%n/a010101
    lambda$appendToAndReturnLengthImpl1$2(StringBuilder, int, int)6100%n/a010101
    AsyncStringHolderSequence(Executor)5100%n/a010201
    AsyncStringHolderSequence(int)5100%n/a010201
    lambda$appendToAndReturnLengthImpl$4(StringHolder, StringBuilder)5100%n/a010101
    AsyncStringHolderSequence()4100%n/a010201
    lambda$new$0(Executor, Supplier)4100%n/a010101
    lambda$appendToAndReturnLengthImpl$5(Integer)3100%n/a010101
    lambda$appendToAndReturnLengthDefaultImpl$1(int)100%n/a010101
    \ No newline at end of file +AsyncStringHolderSequence

    AsyncStringHolderSequence

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 267100%0 of 28100%028064014
    appendToAndReturnLengthImpl(Appendable, AsyncStringHolderSequence.Append, AsyncStringHolderSequence.EnsureCapacity, boolean)173100%26100%01404801
    appendToAndReturnLengthImpl1(StringBuilder)16100%n/a010201
    appendToAndReturnLengthImpl1(StringBuffer)16100%n/a010201
    AsyncStringHolderSequence(int, Executor)12100%2100%020301
    appendToAndReturnLengthDefaultImpl(Appendable)11100%n/a010101
    lambda$appendToAndReturnLengthImpl1$3(StringBuffer, int, int)6100%n/a010101
    lambda$appendToAndReturnLengthImpl1$2(StringBuilder, int, int)6100%n/a010101
    AsyncStringHolderSequence(Executor)5100%n/a010201
    AsyncStringHolderSequence(int)5100%n/a010201
    lambda$appendToAndReturnLengthImpl$4(StringHolder, StringBuilder)5100%n/a010101
    AsyncStringHolderSequence()4100%n/a010201
    lambda$new$0(Executor, Supplier)4100%n/a010101
    lambda$appendToAndReturnLengthImpl$5(Integer)3100%n/a010101
    lambda$appendToAndReturnLengthDefaultImpl$1(int)100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AsyncStringHolderSequence.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AsyncStringHolderSequence.java.html index b51c23f..52bd281 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AsyncStringHolderSequence.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/AsyncStringHolderSequence.java.html @@ -1,7 +1,7 @@ AsyncStringHolderSequence.java

    AsyncStringHolderSequence.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -35,13 +35,13 @@
      *
      * @author Christian Kohlschütter
      */
    -public final class AsyncStringHolderSequence extends StringHolderSequence {
    +final class AsyncStringHolderSequence extends StringHolderSequence {
       private final Function<Supplier<Integer>, CompletableFuture<Integer>> asyncSupplier;
     
       /**
        * Constructs a new, empty {@link AsyncStringHolderSequence}.
        */
    -  public AsyncStringHolderSequence() {
    +  AsyncStringHolderSequence() {
         this(null);
       }
     
    @@ -50,7 +50,7 @@
        *
        * @param executor The executor to use.
        */
    -  public AsyncStringHolderSequence(Executor executor) {
    +  AsyncStringHolderSequence(Executor executor) {
         this(10, executor);
       }
     
    @@ -59,7 +59,7 @@
        *
        * @param estimatedNumberOfAppends Estimated number of calls to {@link #append(Object)}, etc.
        */
    -  public AsyncStringHolderSequence(int estimatedNumberOfAppends) {
    +  AsyncStringHolderSequence(int estimatedNumberOfAppends) {
         this(estimatedNumberOfAppends, null);
       }
     
    @@ -69,7 +69,7 @@
        * @param estimatedNumberOfAppends Estimated number of calls to {@link #append(Object)}, etc.
        * @param executor The executor to use.
        */
    -  public AsyncStringHolderSequence(int estimatedNumberOfAppends, Executor executor) {
    +  AsyncStringHolderSequence(int estimatedNumberOfAppends, Executor executor) {
         super(estimatedNumberOfAppends);
     
         this.asyncSupplier = executor == null ? CompletableFuture::supplyAsync : (
    @@ -93,7 +93,7 @@
       }
     
       @Override
    -  @ExcludeFromCodeCoverageGeneratedReport
    +  @ExcludeFromCodeCoverageGeneratedReport(reason = "exception unreachable")
       protected int appendToAndReturnLengthImpl(StringBuilder out) {
         try {
           return appendToAndReturnLengthImpl1(out);
    @@ -110,7 +110,7 @@
       }
     
       @Override
    -  @ExcludeFromCodeCoverageGeneratedReport
    +  @ExcludeFromCodeCoverageGeneratedReport(reason = "exception unreachable")
       protected int appendToAndReturnLengthImpl(StringBuffer out) {
         try {
           return appendToAndReturnLengthImpl1(out);
    @@ -200,4 +200,4 @@
         return len;
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CachedIOSupplier.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CachedIOSupplier.html index 1be383a..9649b5f 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CachedIOSupplier.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CachedIOSupplier.html @@ -1 +1 @@ -CachedIOSupplier

    CachedIOSupplier

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 39100%0 of 4100%0401202
    CachedIOSupplier(Object, IOSupplier)20100%2100%020701
    get()19100%2100%020501
    \ No newline at end of file +CachedIOSupplier

    CachedIOSupplier

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 39100%0 of 4100%0401202
    CachedIOSupplier(Object, IOSupplier)20100%2100%020701
    get()19100%2100%020501
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CachedIOSupplier.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CachedIOSupplier.java.html index 06facc8..7cd9082 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CachedIOSupplier.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CachedIOSupplier.java.html @@ -1,7 +1,7 @@ CachedIOSupplier.java

    CachedIOSupplier.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -66,4 +66,4 @@
         }
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CharSequenceReleaseShim.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CharSequenceReleaseShim.html index 1abcdc7..f1ba7de 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CharSequenceReleaseShim.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CharSequenceReleaseShim.html @@ -1 +1 @@ -CharSequenceReleaseShim

    CharSequenceReleaseShim

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 13100%0 of 2100%040303
    isEmpty()7100%2100%020101
    CharSequenceReleaseShim()3100%n/a010101
    isEmpty(CharSequence)3100%n/a010101
    \ No newline at end of file +CharSequenceReleaseShim

    CharSequenceReleaseShim

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 13100%0 of 2100%040303
    isEmpty()7100%2100%020101
    CharSequenceReleaseShim()3100%n/a010101
    isEmpty(CharSequence)3100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CharSequenceReleaseShim.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CharSequenceReleaseShim.java.html index 36995f5..52ddbef 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CharSequenceReleaseShim.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CharSequenceReleaseShim.java.html @@ -1,7 +1,7 @@ CharSequenceReleaseShim.java

    CharSequenceReleaseShim.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -27,4 +27,4 @@
         return c.isEmpty();
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CommonStrings.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CommonStrings.html index e6e2a41..0bf8b5e 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CommonStrings.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CommonStrings.html @@ -1 +1 @@ -CommonStrings

    CommonStrings

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 366100%0 of 18100%01304004
    static {...}346100%16100%0903501
    lookupIfPossible(String)10100%2100%020401
    lookup(Object)5100%n/a010101
    lambda$static$0(String, Object)5100%n/a010101
    \ No newline at end of file +CommonStrings

    CommonStrings

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 366100%0 of 18100%01304004
    static {...}346100%16100%0903501
    lookupIfPossible(String)10100%2100%020401
    lookup(Object)5100%n/a010101
    lambda$static$0(String, Object)5100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CommonStrings.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CommonStrings.java.html index 22799bc..acf8cd6 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CommonStrings.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/CommonStrings.java.html @@ -1,7 +1,7 @@ CommonStrings.java

    CommonStrings.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -91,7 +91,7 @@
       static final StringHolder EMPTY_STRINGHOLDER = Objects.requireNonNull(COMMON_STRINGS.get(""));
       static final StringHolder NULL_STRINGHOLDER = Objects.requireNonNull(COMMON_STRINGS.get("null"));
     
    -  @ExcludeFromCodeCoverageGeneratedReport
    +  @ExcludeFromCodeCoverageGeneratedReport(reason = "unreachable")
       private CommonStrings() {
         throw new IllegalStateException("No instances");
       }
    @@ -109,4 +109,4 @@
         }
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ConditionalStringHolder.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ConditionalStringHolder.html new file mode 100644 index 0000000..9fdf3bd --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ConditionalStringHolder.html @@ -0,0 +1 @@ +ConditionalStringHolder

    ConditionalStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 304100%0 of 60100%062098032
    isExcluded()18100%4100%030301
    subSequence(int, int)18100%4100%030501
    compareTo(CharSequence)15100%4100%030501
    compareTo(StringHolder)15100%4100%030501
    isString()14100%4100%030501
    charAt(int)12100%2100%020301
    isKnownExcluded()11100%4100%030101
    appendToAndReturnLength(Appendable)10100%2100%020301
    appendToAndReturnLength(StringBuilder)10100%2100%020301
    appendToAndReturnLength(StringBuffer)10100%2100%020301
    appendToAndReturnLength(Writer)10100%2100%020301
    clone()10100%n/a010301
    ConditionalStringHolder(StringHolder, Predicate)9100%n/a010401
    toReader()9100%2100%020301
    appendTo(Appendable)9100%2100%020401
    appendTo(StringBuilder)9100%2100%020401
    appendTo(StringBuffer)9100%2100%020401
    appendTo(Writer)9100%2100%020401
    getExpectedLength()9100%2100%020301
    setExpectedLength(int)9100%2100%020401
    length()9100%2100%020301
    isKnownEmpty()9100%2100%020301
    isLengthKnown()9100%2100%020301
    asContent()9100%2100%020301
    isEffectivelyImmutable()9100%2100%020301
    toString()9100%2100%020301
    markEffectivelyImmutable()7100%n/a010301
    updateScope(StringHolderScope)5100%n/a010101
    checkError()4100%n/a010101
    getScope()4100%n/a010101
    isCacheable()3100%n/a010101
    getMinimumLength()2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ConditionalStringHolder.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ConditionalStringHolder.java.html new file mode 100644 index 0000000..8d63e4a --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ConditionalStringHolder.java.html @@ -0,0 +1,308 @@ +ConditionalStringHolder.java

    ConditionalStringHolder.java

    /*
    + * stringhold
    + *
    + * Copyright 2022, 2023 Christian Kohlschütter
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.kohlschutter.stringhold;
    +
    +import java.io.IOException;
    +import java.io.Reader;
    +import java.io.Writer;
    +import java.util.function.Predicate;
    +
    +import com.kohlschutter.annotations.compiletime.ExcludeFromCodeCoverageGeneratedReport;
    +import com.kohlschutter.annotations.compiletime.SuppressFBWarnings;
    +
    +/**
    + * A {@link StringHolder} that may conditionally be included/excluded.
    + *
    + * @author Christian Kohlschütter
    + */
    +final class ConditionalStringHolder implements StringHolder {
    +  private StringHolder wrapped;
    +  private final Predicate<StringHolder> include;
    +
    +  @SuppressFBWarnings("IS2_INCONSISTENT_SYNC")
    +  private Boolean excluded;
    +
    +  /**
    +   * Constructs a conditional wrapper around the given {@link StringHolder}; the given
    +   * {@code include} supplier controls whether the {@link StringHolder} is included, or effectively
    +   * empty.
    +   *
    +   * @param wrapped The wrapped {@link StringHolder}.
    +   * @param include Controls the inclusion of that {@link StringHolder}; {@code false} means
    +   *          "excluded".
    +   */
    +  ConditionalStringHolder(StringHolder wrapped, Predicate<StringHolder> include) {
    +    this.wrapped = wrapped;
    +    this.include = include;
    +  }
    +
    +  private boolean isKnownExcluded() {
    +    return excluded != null && excluded;
    +  }
    +
    +  private synchronized boolean isExcluded() {
    +    if (excluded == null) {
    +      excluded = !include.test(this);
    +    }
    +    return excluded;
    +  }
    +
    +  @Override
    +  public char charAt(int index) {
    +    if (isExcluded()) {
    +      throw new IndexOutOfBoundsException();
    +    }
    +    return wrapped.charAt(index);
    +  }
    +
    +  @Override
    +  public CharSequence subSequence(int start, int end) {
    +    if (start == end) {
    +      return "";
    +    }
    +    if (isExcluded()) {
    +      throw new IndexOutOfBoundsException();
    +    }
    +    return wrapped.subSequence(start, end);
    +  }
    +
    +  @Override
    +  public boolean isString() {
    +    if (excluded == null) {
    +      return false;
    +    }
    +    if (isKnownExcluded()) {
    +      return true;
    +    } else {
    +      return wrapped.isString();
    +    }
    +  }
    +
    +  @Override
    +  public Reader toReader() throws IOException {
    +    if (isExcluded()) {
    +      return ReaderShim.nullReader();
    +    }
    +    return wrapped.toReader();
    +  }
    +
    +  @Override
    +  public void appendTo(Appendable out) throws IOException {
    +    if (isExcluded()) {
    +      return;
    +    }
    +    wrapped.appendTo(out);
    +  }
    +
    +  @Override
    +  public void appendTo(StringBuilder out) {
    +    if (isExcluded()) {
    +      return;
    +    }
    +    wrapped.appendTo(out);
    +  }
    +
    +  @Override
    +  public void appendTo(StringBuffer out) {
    +    if (isExcluded()) {
    +      return;
    +    }
    +    wrapped.appendTo(out);
    +  }
    +
    +  @Override
    +  public void appendTo(Writer out) throws IOException {
    +    if (isExcluded()) {
    +      return;
    +    }
    +    wrapped.appendTo(out);
    +  }
    +
    +  @Override
    +  public int appendToAndReturnLength(Appendable out) throws IOException {
    +    if (isExcluded()) {
    +      return 0;
    +    }
    +    return wrapped.appendToAndReturnLength(out);
    +  }
    +
    +  @Override
    +  public int appendToAndReturnLength(StringBuilder out) {
    +    if (isExcluded()) {
    +      return 0;
    +    }
    +    return wrapped.appendToAndReturnLength(out);
    +  }
    +
    +  @Override
    +  public int appendToAndReturnLength(StringBuffer out) {
    +    if (isExcluded()) {
    +      return 0;
    +    }
    +    return wrapped.appendToAndReturnLength(out);
    +  }
    +
    +  @Override
    +  public int appendToAndReturnLength(Writer out) throws IOException {
    +    if (isExcluded()) {
    +      return 0;
    +    }
    +    return wrapped.appendToAndReturnLength(out);
    +  }
    +
    +  @Override
    +  public int getMinimumLength() {
    +    return 0;
    +  }
    +
    +  @Override
    +  public int getExpectedLength() {
    +    if (isKnownExcluded()) {
    +      return 0;
    +    }
    +    return wrapped.getExpectedLength();
    +  }
    +
    +  @Override
    +  public void setExpectedLength(int len) {
    +    if (isKnownExcluded()) {
    +      return;
    +    }
    +    wrapped.setExpectedLength(len);
    +  }
    +
    +  @Override
    +  public int length() {
    +    if (isExcluded()) {
    +      return 0;
    +    }
    +
    +    return wrapped.length();
    +  }
    +
    +  @Override
    +  public boolean isKnownEmpty() {
    +    if (isKnownExcluded()) {
    +      return true;
    +    }
    +
    +    return wrapped.isKnownEmpty();
    +  }
    +
    +  @Override
    +  public boolean isLengthKnown() {
    +    if (isKnownExcluded()) {
    +      return true;
    +    }
    +
    +    return wrapped.isLengthKnown();
    +  }
    +
    +  @Override
    +  public boolean checkError() {
    +    return wrapped.checkError();
    +  }
    +
    +  @Override
    +  public StringHolderScope getScope() {
    +    return wrapped.getScope();
    +  }
    +
    +  @Override
    +  public StringHolderScope updateScope(StringHolderScope newScope) {
    +    return wrapped.updateScope(newScope);
    +  }
    +
    +  @Override
    +  public Object asContent() {
    +    if (isExcluded()) {
    +      return "";
    +    }
    +    return wrapped.asContent();
    +  }
    +
    +  @Override
    +  public int compareTo(CharSequence o) {
    +    if (isExcluded()) {
    +      if (CharSequenceReleaseShim.isEmpty(o)) {
    +        return 0;
    +      } else {
    +        return -1;
    +      }
    +    }
    +
    +    return wrapped.compareTo(o);
    +  }
    +
    +  @Override
    +  public int compareTo(StringHolder o) {
    +    if (isExcluded()) {
    +      if (o.isEmpty()) {
    +        return 0;
    +      } else {
    +        return -1;
    +      }
    +    }
    +
    +    return wrapped.compareTo(o);
    +  }
    +
    +  @Override
    +  public boolean isEffectivelyImmutable() {
    +    if (isKnownExcluded()) {
    +      return true;
    +    }
    +    return wrapped.isEffectivelyImmutable();
    +  }
    +
    +  @Override
    +  public void markEffectivelyImmutable() {
    +    isExcluded(); // trigger init
    +    wrapped.markEffectivelyImmutable();
    +  }
    +
    +  @Override
    +  public String toString() {
    +    if (isExcluded()) {
    +      return "";
    +    }
    +    return wrapped.toString();
    +  }
    +
    +  @Override
    +  public boolean isCacheable() {
    +    return isString();
    +  }
    +
    +  @ExcludeFromCodeCoverageGeneratedReport(reason = "exception unreachable")
    +  private ConditionalStringHolder cloneSuper() {
    +    try {
    +      return (ConditionalStringHolder) super.clone();
    +    } catch (CloneNotSupportedException e) {
    +      throw new IllegalStateException(e);
    +    }
    +  }
    +
    +  @Override
    +  public ConditionalStringHolder clone() {
    +    ConditionalStringHolder clone = cloneSuper();
    +    clone.wrapped = clone.wrapped.clone();
    +    return clone;
    +  }
    +}
    +
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/FixedLengthSuppliedStringHolder.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/FixedLengthSuppliedStringHolder.html index 6559004..0ae5530 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/FixedLengthSuppliedStringHolder.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/FixedLengthSuppliedStringHolder.html @@ -1 +1 @@ -FixedLengthSuppliedStringHolder

    FixedLengthSuppliedStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 41100%0 of 2100%0601205
    stringSanityCheck(String)17100%2100%020401
    FixedLengthSuppliedStringHolder(int, IOSupplier, IOExceptionHandler)10100%n/a010301
    FixedLengthSuppliedStringHolder(int, Supplier)9100%n/a010301
    computeLength()3100%n/a010101
    isLengthKnown()2100%n/a010101
    \ No newline at end of file +FixedLengthSuppliedStringHolder

    FixedLengthSuppliedStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 41100%0 of 2100%0601205
    stringSanityCheck(String)17100%2100%020401
    FixedLengthSuppliedStringHolder(int, IOSupplier, IOExceptionHandler)10100%n/a010301
    FixedLengthSuppliedStringHolder(int, Supplier)9100%n/a010301
    computeLength()3100%n/a010101
    isLengthKnown()2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/FixedLengthSuppliedStringHolder.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/FixedLengthSuppliedStringHolder.java.html index 15abb22..0fb8d09 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/FixedLengthSuppliedStringHolder.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/FixedLengthSuppliedStringHolder.java.html @@ -1,7 +1,7 @@ FixedLengthSuppliedStringHolder.java

    FixedLengthSuppliedStringHolder.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -51,4 +51,4 @@
         }
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasExpectedLength.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasExpectedLength.html index 5def843..e42fa4e 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasExpectedLength.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasExpectedLength.html @@ -1 +1 @@ -HasExpectedLength

    HasExpectedLength

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 2100%0 of 0n/a010101
    isLengthKnown()2100%n/a010101
    \ No newline at end of file +HasExpectedLength

    HasExpectedLength

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 2100%0 of 0n/a010101
    isLengthKnown()2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasExpectedLength.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasExpectedLength.java.html index d1ce325..5dbc70f 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasExpectedLength.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasExpectedLength.java.html @@ -1,7 +1,7 @@ HasExpectedLength.java

    HasExpectedLength.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -41,4 +41,4 @@
         return false;
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasKnownLength.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasKnownLength.html index 96a165f..8baa14c 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasKnownLength.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasKnownLength.html @@ -1 +1 @@ -HasKnownLength

    HasKnownLength

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 2100%0 of 0n/a010101
    isLengthKnown()2100%n/a010101
    \ No newline at end of file +HasKnownLength

    HasKnownLength

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 2100%0 of 0n/a010101
    isLengthKnown()2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasKnownLength.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasKnownLength.java.html index abe85e2..a28c6be 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasKnownLength.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasKnownLength.java.html @@ -1,7 +1,7 @@ HasKnownLength.java

    HasKnownLength.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -38,4 +38,4 @@
         return true;
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasLength.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasLength.html index bdc66e0..c7e6aa4 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasLength.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasLength.html @@ -1 +1 @@ -HasLength

    HasLength

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 26100%0 of 8100%080604
    isKnownEmpty()13100%6100%040301
    isEmpty()7100%2100%020101
    getMinimumLength()3100%n/a010101
    getExpectedLength()3100%n/a010101
    \ No newline at end of file +HasLength

    HasLength

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 26100%0 of 8100%080604
    isKnownEmpty()13100%6100%040301
    isEmpty()7100%2100%020101
    getMinimumLength()3100%n/a010101
    getExpectedLength()3100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasLength.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasLength.java.html index 612145f..cb0b1ae 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasLength.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasLength.java.html @@ -1,7 +1,7 @@ HasLength.java

    HasLength.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -62,4 +62,4 @@
             && isEmpty();
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasMinimumLength.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasMinimumLength.html index 0dae6d4..14a110d 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasMinimumLength.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasMinimumLength.html @@ -1 +1 @@ -HasMinimumLength

    HasMinimumLength

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 3100%0 of 0n/a010101
    getExpectedLength()3100%n/a010101
    \ No newline at end of file +HasMinimumLength

    HasMinimumLength

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 3100%0 of 0n/a010101
    getExpectedLength()3100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasMinimumLength.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasMinimumLength.java.html index 6a20e66..0eb4992 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasMinimumLength.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/HasMinimumLength.java.html @@ -1,7 +1,7 @@ HasMinimumLength.java

    HasMinimumLength.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -36,4 +36,4 @@
         return getMinimumLength();
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/IOExceptionHandler$ExceptionResponse.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/IOExceptionHandler$ExceptionResponse.html index ad8009b..6992efb 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/IOExceptionHandler$ExceptionResponse.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/IOExceptionHandler$ExceptionResponse.html @@ -1 +1 @@ -IOExceptionHandler.ExceptionResponse

    IOExceptionHandler.ExceptionResponse

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 33100%0 of 0n/a010601
    static {...}33100%n/a010601
    \ No newline at end of file +IOExceptionHandler.ExceptionResponse

    IOExceptionHandler.ExceptionResponse

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 33100%0 of 0n/a010601
    static {...}33100%n/a010601
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/IOExceptionHandler.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/IOExceptionHandler.java.html index 2afe590..a46efe9 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/IOExceptionHandler.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/IOExceptionHandler.java.html @@ -1,7 +1,7 @@ IOExceptionHandler.java

    IOExceptionHandler.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -30,7 +30,7 @@
      * @author Christian Kohlschütter
      */
     @FunctionalInterface
    -@ExcludeFromCodeCoverageGeneratedReport // jacoco doesn't properly detect coverage here
    +@ExcludeFromCodeCoverageGeneratedReport(reason = "jacoco bug")
     public interface IOExceptionHandler {
       /**
        * Throw an IllegalStateException, as this exception should not have happened.
    @@ -97,4 +97,4 @@
         STACKTRACE
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader$KickstartPlaceholder.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader$KickstartPlaceholder.html index b339820..c2555f3 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader$KickstartPlaceholder.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader$KickstartPlaceholder.html @@ -1 +1 @@ -LazyInitReader.KickstartPlaceholder

    LazyInitReader.KickstartPlaceholder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 68100%0 of 0n/a011016011
    read(char[], int, int)8100%n/a010101
    markSupported()8100%n/a010301
    LazyInitReader.KickstartPlaceholder(LazyInitReader)7100%n/a010101
    close()6100%n/a010201
    read(CharBuffer)6100%n/a010101
    read(char[])6100%n/a010101
    skip(long)6100%n/a010101
    mark(int)6100%n/a010201
    read()5100%n/a010101
    ready()5100%n/a010101
    reset()5100%n/a010201
    \ No newline at end of file +LazyInitReader.KickstartPlaceholder

    LazyInitReader.KickstartPlaceholder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 68100%0 of 0n/a011016011
    read(char[], int, int)8100%n/a010101
    markSupported()8100%n/a010301
    LazyInitReader.KickstartPlaceholder(LazyInitReader)7100%n/a010101
    close()6100%n/a010201
    read(CharBuffer)6100%n/a010101
    read(char[])6100%n/a010101
    skip(long)6100%n/a010101
    mark(int)6100%n/a010201
    read()5100%n/a010101
    ready()5100%n/a010101
    reset()5100%n/a010201
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader.html index e3fc4b1..5adca69 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader.html @@ -1 +1 @@ -LazyInitReader

    LazyInitReader

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 108100%0 of 4100%019025017
    LazyInitReader(IOSupplier)18100%n/a010501
    init()17100%2100%020301
    isInitialized()8100%2100%020101
    read(char[], int, int)7100%n/a010101
    withSupplier(Supplier)6100%n/a010101
    withIOSupplier(IOSupplier)5100%n/a010101
    read(CharBuffer)5100%n/a010101
    read(char[])5100%n/a010101
    skip(long)5100%n/a010101
    mark(int)5100%n/a010201
    read()4100%n/a010101
    ready()4100%n/a010101
    markSupported()4100%n/a010101
    reset()4100%n/a010201
    close()4100%n/a010201
    lambda$withSupplier$0(Supplier)4100%n/a010101
    currentReader()3100%n/a010101
    \ No newline at end of file +LazyInitReader

    LazyInitReader

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 108100%0 of 4100%019025017
    LazyInitReader(IOSupplier)18100%n/a010501
    init()17100%2100%020301
    isInitialized()8100%2100%020101
    read(char[], int, int)7100%n/a010101
    withSupplier(Supplier)6100%n/a010101
    withIOSupplier(IOSupplier)5100%n/a010101
    read(CharBuffer)5100%n/a010101
    read(char[])5100%n/a010101
    skip(long)5100%n/a010101
    mark(int)5100%n/a010201
    read()4100%n/a010101
    ready()4100%n/a010101
    markSupported()4100%n/a010101
    reset()4100%n/a010201
    close()4100%n/a010201
    lambda$withSupplier$0(Supplier)4100%n/a010101
    currentReader()3100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader.java.html index ece2e3b..91cc3dd 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReader.java.html @@ -1,7 +1,7 @@ LazyInitReader.java

    LazyInitReader.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -194,4 +194,4 @@
         }
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim$KickstartPlaceholderReleaseShim.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim$KickstartPlaceholderReleaseShim.html index a9e4785..f564e91 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim$KickstartPlaceholderReleaseShim.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim$KickstartPlaceholderReleaseShim.html @@ -1 +1 @@ -LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim

    LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 12100%0 of 0n/a020202
    LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim(LazyInitReaderReleaseShim)6100%n/a010101
    transferTo(Writer)6100%n/a010101
    \ No newline at end of file +LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim

    LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 12100%0 of 0n/a020202
    LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim(LazyInitReaderReleaseShim)6100%n/a010101
    transferTo(Writer)6100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim.html index 20ef4e9..edc7d82 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim.html @@ -1 +1 @@ -LazyInitReaderReleaseShim

    LazyInitReaderReleaseShim

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 8100%0 of 0n/a020202
    transferTo(Writer)5100%n/a010101
    LazyInitReaderReleaseShim()3100%n/a010101
    \ No newline at end of file +LazyInitReaderReleaseShim

    LazyInitReaderReleaseShim

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 8100%0 of 0n/a020202
    transferTo(Writer)5100%n/a010101
    LazyInitReaderReleaseShim()3100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim.java.html index 6d0e04c..7af0ecb 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LazyInitReaderReleaseShim.java.html @@ -1,7 +1,7 @@ LazyInitReaderReleaseShim.java

    LazyInitReaderReleaseShim.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -39,4 +39,4 @@
     
       abstract Reader init() throws IOException;
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LimitedStringHolderScope.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LimitedStringHolderScope.html index c13cd2d..0298013 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LimitedStringHolderScope.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LimitedStringHolderScope.html @@ -1 +1 @@ -LimitedStringHolderScope

    LimitedStringHolderScope

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 128100%0 of 8100%015029011
    add(StringHolder)24100%4100%030501
    LimitedStringHolderScope(int, int, Runnable)22100%n/a010701
    resizeBy(StringHolder, int, int)22100%4100%030501
    remove(StringHolder)15100%n/a010301
    withUpperLimitForMinimumLength(int, Runnable)9100%n/a010101
    withUpperLimitForExpectedLength(int, Runnable)9100%n/a010201
    withUpperLimitForMinimumAndExpectedLength(int, int, Runnable)9100%n/a010101
    LimitedStringHolderScope()6100%n/a010201
    withNoLimits()4100%n/a010101
    getMinimumLength()4100%n/a010101
    getExpectedLength()4100%n/a010101
    \ No newline at end of file +LimitedStringHolderScope

    LimitedStringHolderScope

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 130100%0 of 8100%015029011
    add(StringHolder)25100%4100%030501
    resizeBy(int, int)23100%4100%030501
    LimitedStringHolderScope(int, int, Consumer)22100%n/a010701
    remove(StringHolder)15100%n/a010301
    withUpperLimitForMinimumLength(int, Consumer)9100%n/a010101
    withUpperLimitForExpectedLength(int, Consumer)9100%n/a010201
    withUpperLimitForMinimumAndExpectedLength(int, int, Consumer)9100%n/a010101
    LimitedStringHolderScope()6100%n/a010201
    withNoLimits()4100%n/a010101
    getMinimumLength()4100%n/a010101
    getExpectedLength()4100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LimitedStringHolderScope.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LimitedStringHolderScope.java.html index 09fed80..fdeb85f 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LimitedStringHolderScope.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/LimitedStringHolderScope.java.html @@ -1,7 +1,7 @@ LimitedStringHolderScope.java

    LimitedStringHolderScope.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -20,6 +20,7 @@
     import java.lang.ref.WeakReference;
     import java.util.Objects;
     import java.util.concurrent.atomic.AtomicInteger;
    +import java.util.function.Consumer;
     
     /**
      * A {@link StringHolderScope} that keeps track of the aggregate minimum length of all associated
    @@ -32,22 +33,22 @@
      * @author Christian Kohlschütter
      */
     public final class LimitedStringHolderScope implements StringHolderScope {
    -  private final AtomicInteger minimumLength = new AtomicInteger();
    -  private final AtomicInteger expectedLength = new AtomicInteger();
    +  private final AtomicInteger minimumLength = new AtomicInteger();
    +  private final AtomicInteger expectedLength = new AtomicInteger();
       private final int minLengthLimit;
       private final int expectedLengthLimit;
    -  private final Runnable onLimitExceeded;
    +  private final Consumer<StringHolder> onLimitExceeded;
     
       private LimitedStringHolderScope() {
    -    this(Integer.MAX_VALUE, Integer.MAX_VALUE, null);
    -  }
    +    this(Integer.MAX_VALUE, Integer.MAX_VALUE, null);
    +  }
     
       private LimitedStringHolderScope(int minLengthLimit, int expectedLengthLimit,
    -      Runnable onLimitExceeded) {
    -    this.minLengthLimit = minLengthLimit;
    -    this.expectedLengthLimit = expectedLengthLimit;
    -    this.onLimitExceeded = onLimitExceeded;
    -  }
    +      Consumer<StringHolder> onLimitExceeded) {
    +    this.minLengthLimit = minLengthLimit;
    +    this.expectedLengthLimit = expectedLengthLimit;
    +    this.onLimitExceeded = onLimitExceeded;
    +  }
     
       /**
        * Constructs a new {@link LimitedStringHolderScope} with no length limits.
    @@ -58,7 +59,7 @@
        * @return The new scope.
        */
       public static LimitedStringHolderScope withNoLimits() {
    -    return new LimitedStringHolderScope();
    +    return new LimitedStringHolderScope();
       }
     
       /**
    @@ -72,8 +73,8 @@
        * @return The new scope.
        */
       public static LimitedStringHolderScope withUpperLimitForMinimumLength(int minLengthLimit,
    -      Runnable onLimitExceeded) {
    -    return new LimitedStringHolderScope(minLengthLimit, Integer.MAX_VALUE, Objects.requireNonNull(
    +      Consumer<StringHolder> onLimitExceeded) {
    +    return new LimitedStringHolderScope(minLengthLimit, Integer.MAX_VALUE, Objects.requireNonNull(
             onLimitExceeded));
       }
     
    @@ -88,9 +89,9 @@
        * @return The new scope.
        */
       public static LimitedStringHolderScope withUpperLimitForExpectedLength(int expectedLengthLimit,
    -      Runnable onLimitExceeded) {
    -    return new LimitedStringHolderScope(expectedLengthLimit, expectedLengthLimit, Objects
    -        .requireNonNull(onLimitExceeded));
    +      Consumer<StringHolder> onLimitExceeded) {
    +    return new LimitedStringHolderScope(expectedLengthLimit, expectedLengthLimit, Objects
    +        .requireNonNull(onLimitExceeded));
       }
     
       /**
    @@ -106,8 +107,8 @@
        * @return The new scope.
        */
       public static LimitedStringHolderScope withUpperLimitForMinimumAndExpectedLength(
    -      int minLengthLimit, int expectedLengthLimit, Runnable onLimitExceeded) {
    -    return new LimitedStringHolderScope(minLengthLimit, expectedLengthLimit, Objects.requireNonNull(
    +      int minLengthLimit, int expectedLengthLimit, Consumer<StringHolder> onLimitExceeded) {
    +    return new LimitedStringHolderScope(minLengthLimit, expectedLengthLimit, Objects.requireNonNull(
             onLimitExceeded));
       }
     
    @@ -118,7 +119,7 @@
        * @return The aggregate minimum length.
        */
       public int getMinimumLength() {
    -    return minimumLength.get();
    +    return minimumLength.get();
       }
     
       /**
    @@ -128,33 +129,33 @@
        * @return The aggregate expected length.
        */
       public int getExpectedLength() {
    -    return expectedLength.get();
    +    return expectedLength.get();
       }
     
       @Override
       public void add(StringHolder sh) {
    -    int ml = minimumLength.addAndGet(sh.getMinimumLength());
    -    int el = expectedLength.addAndGet(sh.getExpectedLength());
    +    int ml = minimumLength.addAndGet(sh.getMinimumLength());
    +    int el = expectedLength.addAndGet(sh.getExpectedLength());
     
    -    if (ml > minLengthLimit || el > expectedLengthLimit) {
    -      onLimitExceeded.run();
    +    if (ml > minLengthLimit || el > expectedLengthLimit) {
    +      onLimitExceeded.accept(sh);
         }
    -  }
    +  }
     
       @Override
       public void remove(StringHolder sh) {
    -    minimumLength.addAndGet(-sh.getMinimumLength());
    -    expectedLength.addAndGet(-sh.getExpectedLength());
    -  }
    +    minimumLength.addAndGet(-sh.getMinimumLength());
    +    expectedLength.addAndGet(-sh.getExpectedLength());
    +  }
     
       @Override
    -  public void resizeBy(StringHolder sh, int minBy, int expBy) {
    -    int ml = minimumLength.addAndGet(minBy);
    -    int el = expectedLength.addAndGet(expBy);
    +  public void resizeBy(int minBy, int expBy) {
    +    int ml = minimumLength.addAndGet(minBy);
    +    int el = expectedLength.addAndGet(expBy);
     
    -    if (ml > minLengthLimit || el > expectedLengthLimit) {
    -      onLimitExceeded.run();
    +    if (ml > minLengthLimit || el > expectedLengthLimit) {
    +      onLimitExceeded.accept(null);
         }
    -  }
    +  }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderShim.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderShim.html new file mode 100644 index 0000000..4667695 --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderShim.html @@ -0,0 +1 @@ +ReaderShim

    ReaderShim

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 5100%0 of 0n/a020202
    ReaderShim()3100%n/a010101
    nullReader()2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderShim.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderShim.java.html new file mode 100644 index 0000000..79f16df --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderShim.java.html @@ -0,0 +1,27 @@ +ReaderShim.java

    ReaderShim.java

    /*
    + * stringhold
    + *
    + * Copyright 2022, 2023 Christian Kohlschütter
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.kohlschutter.stringhold;
    +
    +import java.io.Reader;
    +
    +abstract class ReaderShim extends Reader {
    +  public static Reader nullReader() { // since Java 11
    +    return Reader.nullReader();
    +  }
    +}
    +
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderStringHolder.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderStringHolder.html index a72ee69..93c4428 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderStringHolder.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderStringHolder.html @@ -1 +1 @@ -ReaderStringHolder

    ReaderStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 302100%0 of 21100%02108709
    getString()58100%6100%0501801
    handleIOExceptionOnAppendable(Appendable, IOException)57100%5100%0401801
    appendToAndReturnLengthDefaultImpl(Appendable)43100%2100%0201201
    appendToAndReturnLengthImpl(Writer)36100%2100%0201001
    appendToAndReturnLengthImpl(StringBuilder)36100%2100%0201001
    appendToAndReturnLengthImpl(StringBuffer)36100%2100%0201001
    readFully(Reader, StringBuilder)17100%2100%020401
    ReaderStringHolder(int, int, IOSupplier, IOExceptionHandler)15100%n/a010401
    newReader()4100%n/a010101
    \ No newline at end of file +ReaderStringHolder

    ReaderStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 302100%0 of 21100%02108709
    getString()58100%6100%0501801
    handleIOExceptionOnAppendable(Appendable, IOException)57100%5100%0401801
    appendToAndReturnLengthDefaultImpl(Appendable)43100%2100%0201201
    appendToAndReturnLengthImpl(Writer)36100%2100%0201001
    appendToAndReturnLengthImpl(StringBuilder)36100%2100%0201001
    appendToAndReturnLengthImpl(StringBuffer)36100%2100%0201001
    readFully(Reader, StringBuilder)17100%2100%020401
    ReaderStringHolder(int, int, IOSupplier, IOExceptionHandler)15100%n/a010401
    newReader()4100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderStringHolder.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderStringHolder.java.html index 4ffede9..99cdbd7 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderStringHolder.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/ReaderStringHolder.java.html @@ -1,7 +1,7 @@ ReaderStringHolder.java

    ReaderStringHolder.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -32,7 +32,7 @@
      *
      * @author Christian Kohlschütter
      */
    -final class ReaderStringHolder extends StringHolder {
    +final class ReaderStringHolder extends AbstractStringHolder {
       private static final int BUFFER_SIZE = 8192;
       private final IOExceptionHandler onError;
       private final IOSupplier<Reader> readerSupply;
    @@ -210,4 +210,4 @@
         }
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SimpleStringHolder.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SimpleStringHolder.html index 0acc6ef..b4214db 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SimpleStringHolder.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SimpleStringHolder.html @@ -1 +1 @@ -SimpleStringHolder

    SimpleStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 10100%0 of 0n/a020402
    SimpleStringHolder(String)8100%n/a010301
    isEffectivelyImmutable()2100%n/a010101
    \ No newline at end of file +SimpleStringHolder

    SimpleStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 10100%0 of 0n/a020402
    SimpleStringHolder(String)8100%n/a010301
    isEffectivelyImmutable()2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SimpleStringHolder.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SimpleStringHolder.java.html index e6550ee..ab98570 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SimpleStringHolder.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SimpleStringHolder.java.html @@ -1,7 +1,7 @@ SimpleStringHolder.java

    SimpleStringHolder.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -20,32 +20,30 @@
     import com.kohlschutter.annotations.compiletime.ExcludeFromCodeCoverageGeneratedReport;
     
     /**
    - * A StringHolder that holds a String, plain and simple.
    + * A {@link StringHolder} that holds a String, plain and simple.
      *
      * @author Christian Kohlschütter
      */
    -final class SimpleStringHolder extends StringHolder implements HasKnownLength {
    +final class SimpleStringHolder extends AbstractStringHolder implements HasKnownLength {
       SimpleStringHolder(String s) {
         super(s.length());
         this.theString = s;
       }
     
       @Override
    -  @ExcludeFromCodeCoverageGeneratedReport
    +  @ExcludeFromCodeCoverageGeneratedReport(reason = "unreachable")
       protected String getString() {
    -    // should not be reachable; just defensive a measure
         return theString;
       }
     
       @Override
    -  @ExcludeFromCodeCoverageGeneratedReport
    +  @ExcludeFromCodeCoverageGeneratedReport(reason = "unreachable")
       protected void uncache() {
    -    // should not be reachable; just defensive a measure
       }
     
       @Override
       public boolean isEffectivelyImmutable() {
    -    return true;
    +    return true;
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolder.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolder.html index 4269953..6310020 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolder.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolder.html @@ -1 +1 @@ -StringHolder

    StringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 1,468100%0 of 253100%02030423076
    compareToDefault(CharSequence)109100%22100%01203901
    compareToDefault(StringHolder)91100%14100%0802701
    resizeTo(int, int, boolean)80100%12100%0702101
    resizeBy(int, int)68100%8100%0501701
    withContent(Object[])63100%17100%01001601
    toString()61100%6100%0401701
    withContent(Object)59100%16100%0902101
    equalsStringHolder(StringHolder)57100%20100%01101201
    updateScope(StringHolderScope)40100%8100%0501901
    compareOurLengthKnown(StringHolder, int, int)39100%6100%0401501
    compareOtherLengthKnown(StringHolder, int, int)39100%6100%0401501
    compareTo(StringHolder)38100%10100%0601001
    equalsString(String)32100%10100%060701
    compareBothLengthsUnknown(StringHolder, int)31100%2100%0201401
    appendToAndReturnLength(StringBuilder)29100%6100%040801
    updateHashCode(int)29100%6100%040601
    appendToAndReturnLength(Appendable)28100%6100%040701
    compareBothLengthsKnown(StringHolder, int, int, int)28100%4100%030801
    equals(Object)27100%8100%050901
    appendToAndReturnLength(StringBuffer)27100%4100%030701
    appendToAndReturnLength(Writer)27100%4100%030701
    appendToAndReturnLengthDefault(Appendable)27100%4100%030701
    isKnownEmpty()25100%10100%060501
    StringHolder(int, int)24100%2100%020801
    compareTo(Object)24100%4100%030501
    compareTo(CharSequence)22100%6100%040701
    subSequence(int, int)14100%4100%030301
    appendToAndReturnLengthDefaultImpl(Appendable)13100%2100%020401
    appendToAndReturnLengthImpl(StringBuilder)13100%2100%020401
    appendToAndReturnLengthImpl(StringBuffer)13100%2100%020401
    toReader()13100%2100%020401
    length()12100%2100%020301
    setError()12100%2100%020501
    clearError()12100%2100%020501
    withSupplierFixedLength(int, IOSupplier, IOExceptionHandler)11100%2100%020301
    withSupplierFixedLength(int, Supplier)10100%2100%020301
    isEmpty()10100%4100%030101
    withSupplierMinimumLength(int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withSupplierExpectedLength(int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withSupplierMinimumAndExpectedLength(int, int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withReaderSupplier(IOSupplier, IOExceptionHandler)8100%n/a010101
    withReaderSupplierMinimumLength(int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withReaderSupplierExpectedLength(int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withReaderSupplierMinimumAndExpectedLength(int, int, IOSupplier, IOExceptionHandler)8100%n/a010101
    asContent()8100%2100%020301
    withSupplierMinimumLength(int, Supplier)7100%n/a010101
    withSupplierExpectedLength(int, Supplier)7100%n/a010101
    withSupplierMinimumAndExpectedLength(int, int, Supplier)7100%n/a010101
    setExpectedLength(int)7100%n/a010201
    isString()7100%2100%020101
    markEffectivelyImmutable()7100%2100%020301
    resizeTo(int, int)6100%n/a010101
    checkEquals(StringHolder)6100%n/a010101
    lambda$newReader$0()6100%n/a010101
    StringHolder(int)5100%n/a010201
    withSupplier(IOSupplier, IOExceptionHandler)5100%n/a010101
    checkEquals(String)5100%n/a010101
    appendTo(Appendable)5100%n/a010201
    appendTo(StringBuilder)5100%n/a010201
    appendTo(StringBuffer)5100%n/a010201
    appendTo(Writer)5100%n/a010201
    charAt(int)5100%n/a010101
    StringHolder()4100%n/a010201
    withSupplier(Supplier)4100%n/a010101
    computeLength()4100%n/a010101
    hashCode()4100%n/a010101
    appendToAndReturnLengthImpl(Writer)4100%n/a010101
    uncache()4100%n/a010201
    newReader()4100%n/a010101
    getMinimumLength()3100%n/a010101
    getExpectedLength()3100%n/a010101
    isLengthKnown()3100%n/a010101
    checkError()3100%n/a010101
    getScope()3100%n/a010101
    isEffectivelyImmutable()3100%n/a010101
    stringSanityCheck(String)1100%n/a010101
    \ No newline at end of file +StringHolder

    StringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 434100%0 of 79100%0710104031
    indexOf(CharSequence)82100%24100%01302301
    withContent(Object[])63100%17100%01001601
    withContent(Object)59100%16100%0902101
    indexOf(int)35100%8100%0501001
    compareTo(Object)24100%4100%030501
    withSupplierFixedLength(int, IOSupplier, IOExceptionHandler)11100%2100%020301
    withSupplierFixedLength(int, Supplier)10100%2100%020301
    withUncacheableStringHolder(StringHolder)9100%2100%020101
    contains(CharSequence)9100%2100%020101
    withSupplierMinimumLength(int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withSupplierExpectedLength(int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withSupplierMinimumAndExpectedLength(int, int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withReaderSupplier(IOSupplier, IOExceptionHandler)8100%n/a010101
    withReaderSupplierMinimumLength(int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withReaderSupplierExpectedLength(int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withReaderSupplierMinimumAndExpectedLength(int, int, IOSupplier, IOExceptionHandler)8100%n/a010101
    withSupplierMinimumLength(int, Supplier)7100%n/a010101
    withSupplierExpectedLength(int, Supplier)7100%n/a010101
    withSupplierMinimumAndExpectedLength(int, int, Supplier)7100%n/a010101
    isEmpty()7100%2100%020101
    newAsyncSequence(int, Executor)6100%n/a010101
    withConditionalStringHolder(StringHolder, Predicate)6100%n/a010101
    withSupplier(IOSupplier, IOExceptionHandler)5100%n/a010101
    newSequence(int)5100%n/a010101
    newAsyncSequence(Executor)5100%n/a010101
    newAsyncSequence(int)5100%n/a010101
    withSupplier(Supplier)4100%n/a010101
    newSequence()4100%n/a010101
    newAsyncSequence()4100%n/a010101
    isCacheable()2100%n/a010101
    lambda$withUncacheableStringHolder$0(StringHolder)2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolder.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolder.java.html index 134dd64..1a43af3 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolder.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolder.java.html @@ -1,7 +1,7 @@ StringHolder.java

    StringHolder.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -19,15 +19,12 @@
     
     import java.io.IOException;
     import java.io.Reader;
    -import java.io.StringReader;
    -import java.io.StringWriter;
     import java.io.Writer;
    -import java.util.Objects;
    +import java.util.PrimitiveIterator;
    +import java.util.concurrent.Executor;
    +import java.util.function.Predicate;
     import java.util.function.Supplier;
     
    -import com.kohlschutter.annotations.compiletime.SuppressFBWarnings;
    -import com.kohlschutter.util.ComparisonUtil;
    -
     /**
      * A {@link StringHolder} holds something that can <em>eventually</em> turn into a string.
      *
    @@ -45,53 +42,8 @@
      *
      * @author Christian Kohlschütter
      */
    -@SuppressWarnings({
    -    "PMD.CyclomaticComplexity", "PMD.ExcessiveClassLength", "PMD.ExcessivePublicCount"})
    -public abstract class StringHolder extends CharSequenceReleaseShim implements CharSequence,
    -    HasLength, Comparable<Object> {
    -  String theString;
    -
    -  private int minLength;
    -  private int expectedLength;
    -
    -  private boolean trouble = false;
    -
    -  @SuppressFBWarnings("EI_EXPOSE_REP")
    -  private StringHolderScope scope = null;
    -
    -  /**
    -   * Constructs a {@link StringHolder} with a zero minimum length.
    -   */
    -  protected StringHolder() {
    -    this(0);
    -  }
    -
    -  /**
    -   * Constructs a {@link StringHolder} with the given minimum length, use {@code 0} if no minimum
    -   * length is known.
    -   *
    -   * @param minLength The minimum length, which must not be larger than the eventual actual length.
    -   */
    -  protected StringHolder(int minLength) {
    -    this(minLength, minLength);
    -  }
    -
    -  /**
    -   * Constructs a {@link StringHolder} with the given minimum length (use {@code 0} if no minimum
    -   * length is known), and expected length.
    -   *
    -   * @param minLength The minimum length, which must not be larger than the eventual actual length.
    -   * @param expectedLength The expected length, which may be larger than the eventual actual length
    -   */
    -  protected StringHolder(int minLength, int expectedLength) {
    -    super();
    -    if (minLength < 0) {
    -      throw new IllegalArgumentException("Invalid minLength");
    -    }
    -    this.minLength = minLength;
    -    this.expectedLength = Math.max(minLength, expectedLength);
    -  }
    -
    +@SuppressWarnings("PMD.ExcessivePublicCount")
    +public interface StringHolder extends CharSequence, HasLength, Comparable<Object>, Cloneable {
       /**
        * Constructs a new {@link StringHolder} with content from the given supplier, assuming a minimum
        * length of 0.
    @@ -101,8 +53,8 @@
        * @throws IllegalStateException if minLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplier(Supplier<?> supplier) {
    -    return withSupplierMinimumLength(0, supplier);
    +  static StringHolder withSupplier(Supplier<?> supplier) {
    +    return withSupplierMinimumLength(0, supplier);
       }
     
       /**
    @@ -116,8 +68,8 @@
        * @throws IllegalStateException if minLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplier(IOSupplier<?> supplier, IOExceptionHandler onError) {
    -    return withSupplierMinimumLength(0, supplier, onError);
    +  static StringHolder withSupplier(IOSupplier<?> supplier, IOExceptionHandler onError) {
    +    return withSupplierMinimumLength(0, supplier, onError);
       }
     
       /**
    @@ -130,8 +82,8 @@
        * @throws IllegalStateException if minLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplierMinimumLength(int minLength, Supplier<?> supplier) {
    -    return new SuppliedStringHolder(minLength, minLength, supplier);
    +  static StringHolder withSupplierMinimumLength(int minLength, Supplier<?> supplier) {
    +    return new SuppliedStringHolder(minLength, minLength, supplier);
       }
     
       /**
    @@ -146,9 +98,9 @@
        * @throws IllegalStateException if minLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplierMinimumLength(int minLength, IOSupplier<?> supplier,
    +  static StringHolder withSupplierMinimumLength(int minLength, IOSupplier<?> supplier,
           IOExceptionHandler onError) {
    -    return new SuppliedStringHolder(minLength, minLength, supplier, onError);
    +    return new SuppliedStringHolder(minLength, minLength, supplier, onError);
       }
     
       /**
    @@ -161,8 +113,8 @@
        * @throws IllegalStateException if minLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplierExpectedLength(int expectedLength, Supplier<?> supplier) {
    -    return new SuppliedStringHolder(0, expectedLength, supplier);
    +  static StringHolder withSupplierExpectedLength(int expectedLength, Supplier<?> supplier) {
    +    return new SuppliedStringHolder(0, expectedLength, supplier);
       }
     
       /**
    @@ -177,9 +129,9 @@
        * @throws IllegalStateException if minLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplierExpectedLength(int expectedLength, IOSupplier<?> supplier,
    +  static StringHolder withSupplierExpectedLength(int expectedLength, IOSupplier<?> supplier,
           IOExceptionHandler onError) {
    -    return new SuppliedStringHolder(0, expectedLength, supplier, onError);
    +    return new SuppliedStringHolder(0, expectedLength, supplier, onError);
       }
     
       /**
    @@ -193,9 +145,9 @@
        * @throws IllegalStateException if minLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplierMinimumAndExpectedLength(int minLength, int expectedLength,
    +  static StringHolder withSupplierMinimumAndExpectedLength(int minLength, int expectedLength,
           Supplier<?> supplier) {
    -    return new SuppliedStringHolder(minLength, expectedLength, supplier);
    +    return new SuppliedStringHolder(minLength, expectedLength, supplier);
       }
     
       /**
    @@ -211,9 +163,9 @@
        * @throws IllegalStateException if minLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplierMinimumAndExpectedLength(int minLength, int expectedLength,
    +  static StringHolder withSupplierMinimumAndExpectedLength(int minLength, int expectedLength,
           IOSupplier<?> supplier, IOExceptionHandler onError) {
    -    return new SuppliedStringHolder(minLength, expectedLength, supplier, onError);
    +    return new SuppliedStringHolder(minLength, expectedLength, supplier, onError);
       }
     
       /**
    @@ -227,11 +179,11 @@
        * @throws IllegalStateException if fixedLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplierFixedLength(int fixedLength, Supplier<?> supplier) {
    -    if (fixedLength == 0) {
    -      return CommonStrings.EMPTY_STRINGHOLDER;
    +  static StringHolder withSupplierFixedLength(int fixedLength, Supplier<?> supplier) {
    +    if (fixedLength == 0) {
    +      return CommonStrings.EMPTY_STRINGHOLDER;
         }
    -    return new FixedLengthSuppliedStringHolder(fixedLength, supplier);
    +    return new FixedLengthSuppliedStringHolder(fixedLength, supplier);
       }
     
       /**
    @@ -247,12 +199,12 @@
        * @throws IllegalStateException if fixedLength is negative.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withSupplierFixedLength(int fixedLength, IOSupplier<?> supplier,
    +  static StringHolder withSupplierFixedLength(int fixedLength, IOSupplier<?> supplier,
           IOExceptionHandler onError) {
    -    if (fixedLength == 0) {
    -      return CommonStrings.EMPTY_STRINGHOLDER;
    +    if (fixedLength == 0) {
    +      return CommonStrings.EMPTY_STRINGHOLDER;
         }
    -    return new FixedLengthSuppliedStringHolder(fixedLength, supplier, onError);
    +    return new FixedLengthSuppliedStringHolder(fixedLength, supplier, onError);
       }
     
       /**
    @@ -263,9 +215,9 @@
        * @return The {@link ReaderStringHolder}.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withReaderSupplier(IOSupplier<Reader> readerSupply,
    +  static StringHolder withReaderSupplier(IOSupplier<Reader> readerSupply,
           IOExceptionHandler onError) {
    -    return new ReaderStringHolder(0, 0, readerSupply, onError);
    +    return new ReaderStringHolder(0, 0, readerSupply, onError);
       }
     
       /**
    @@ -277,9 +229,9 @@
        * @return The {@link ReaderStringHolder}.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withReaderSupplierMinimumLength(int minLen,
    -      IOSupplier<Reader> readerSupply, IOExceptionHandler onError) {
    -    return new ReaderStringHolder(minLen, minLen, readerSupply, onError);
    +  static StringHolder withReaderSupplierMinimumLength(int minLen, IOSupplier<Reader> readerSupply,
    +      IOExceptionHandler onError) {
    +    return new ReaderStringHolder(minLen, minLen, readerSupply, onError);
       }
     
       /**
    @@ -291,9 +243,9 @@
        * @return The {@link ReaderStringHolder}.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withReaderSupplierExpectedLength(int expectedLen,
    +  static StringHolder withReaderSupplierExpectedLength(int expectedLen,
           IOSupplier<Reader> readerSupply, IOExceptionHandler onError) {
    -    return new ReaderStringHolder(0, expectedLen, readerSupply, onError);
    +    return new ReaderStringHolder(0, expectedLen, readerSupply, onError);
       }
     
       /**
    @@ -306,385 +258,219 @@
        * @return The {@link ReaderStringHolder}.
        * @throws NullPointerException if supplier was {@code null}.
        */
    -  public static StringHolder withReaderSupplierMinimumAndExpectedLength(int minLen, int expectedLen,
    +  static StringHolder withReaderSupplierMinimumAndExpectedLength(int minLen, int expectedLen,
           IOSupplier<Reader> readerSupply, IOExceptionHandler onError) {
    -    return new ReaderStringHolder(minLen, expectedLen, readerSupply, onError);
    +    return new ReaderStringHolder(minLen, expectedLen, readerSupply, onError);
       }
     
       /**
    -   * Constructs a {@link StringHolder} with the given content.
    +   * Constructs a new, empty {@link StringHolderSequence}.
        *
    -   * Unless the object already is a {@link StringHolder}, or is known to be empty, its contents are
    -   * converted to String. {@code null} objects are converted to {@code "null"}, in accordance with
    -   * {@link String#valueOf(Object)}.
    -   *
    -   * @param obj The object.
    -   * @return The {@link StringHolder} instance.
    +   * @return The new, empty sequence.
        */
    -  @SuppressWarnings("PMD.CognitiveComplexity")
    -  public static StringHolder withContent(Object obj) {
    -    if (obj == null) {
    -      return CommonStrings.NULL_STRINGHOLDER;
    -    } else if (obj instanceof String) {
    -      String s = (String) obj;
    -      StringHolder sh = CommonStrings.lookup(s);
    -      if (sh != null) {
    -        return sh;
    -      }
    -      return new SimpleStringHolder(s);
    -    } else if (obj instanceof StringHolder) {
    -      return (StringHolder) obj;
    -    } else {
    -      if (obj instanceof CharSequence) {
    -        if (CharSequenceReleaseShim.isEmpty((CharSequence) obj)) {
    -          return CommonStrings.EMPTY_STRINGHOLDER;
    -        }
    -      } else {
    -        StringHolder sh = CommonStrings.lookup(obj);
    -        if (sh != null) {
    -          return sh;
    -        }
    -      }
    -      String s = String.valueOf(obj);
    -      StringHolder sh = CommonStrings.lookup(s);
    -      if (sh != null) {
    -        return sh;
    -      }
    -      return new SimpleStringHolder(s);
    -    }
    -  }
    -
    -  /**
    -   * Constructs a {@link StringHolder} with the given content sequences, as if they had been
    -   * appended to a {@link StringHolderSequence}. Empty sequences are optimized.
    -   *
    -   * @param objects The objects to represent as a sequence; if {@code null}, a StringHolder of the
    -   *          string {@code "null"} is returned.
    -   * @return The {@link StringHolder} instance.
    -   * @see #withContent(Object)
    -   */
    -  public static StringHolder withContent(Object... objects) {
    -    if (objects == null) {
    -      return CommonStrings.NULL_STRINGHOLDER;
    -    }
    -    switch (objects.length) {
    -      case 0:
    -        return CommonStrings.EMPTY_STRINGHOLDER;
    -      case 1:
    -        return withContent(objects[0]);
    -      default:
    -        // see below
    -    }
    -    StringHolderSequence seq = new StringHolderSequence(objects.length);
    -    for (Object obj : objects) {
    -      if (obj instanceof StringHolder //
    -          && ((StringHolder) obj).isKnownEmpty()) {
    -        continue;
    -      } else if (obj instanceof CharSequence && CharSequenceReleaseShim.isEmpty(
    -          (CharSequence) obj)) {
    -        continue;
    -      }
    -      seq.append(obj);
    -    }
    -    if (seq.numberOfAppends() == 0) {
    -      return CommonStrings.EMPTY_STRINGHOLDER;
    -    } else {
    -      return seq;
    -    }
    +  static StringHolderSequence newSequence() {
    +    return new StringHolderSequence();
       }
     
       /**
    -   * Returns the current minimum length of the expected string length in this {@link StringHolder}.
    +   * Constructs a new, empty {@link StringHolderSequence}.
        *
    -   * This is equivalent to {@link #length()} if {@link #isString()} is {@code true}.
    -   *
    -   * NOTE: When using this parameter for optimizations (e.g., to speed-up equality checks), make
    -   * sure to also check {@link #checkError()}. When that method returns {@code true}, the minimum
    -   * length can actually not be guaranteed.
    +   * @param estimatedNumberOfAppends Estimated number of calls to
    +   *          {@link StringHolderSequence#append(Object)}, etc.
        *
    -   * @return The minimum length (but be sure to see {@link #checkError()}).
    +   * @return The new, empty sequence.
        */
    -  @Override
    -  public final int getMinimumLength() {
    -    return minLength;
    +  static StringHolderSequence newSequence(int estimatedNumberOfAppends) {
    +    return new StringHolderSequence(estimatedNumberOfAppends);
       }
     
       /**
    -   * Returns the current estimate of the length of the string in this {@link StringHolder}, which is
    -   * at least the {@link #getMinimumLength()} but could be substantially larger.
    +   * Constructs a new, empty async {@link StringHolderSequence}.
        *
    -   * This is equivalent to {@link #length()} if {@link #isString()} is {@code true}.
    +   * {@link StringHolder}s are automatically converted upon append, with appends being run
    +   * asynchronously, using temporary intermediate storage, if possible/necessary.
        *
    -   * @return The currently expected length.
    +   * @return The new, empty async sequence.
        */
    -  @Override
    -  public final int getExpectedLength() {
    -    return expectedLength;
    +  static StringHolderSequence newAsyncSequence() {
    +    return new AsyncStringHolderSequence();
       }
     
       /**
    -   * Updates the current estimate of the length of the string in this {@link StringHolder}.
    +   * Constructs a new, empty async {@link StringHolderSequence}.
        *
    -   * The value will be rounded to {@link #getMinimumLength()} if necessary.
    +   * {@link StringHolder}s are automatically converted upon append, with appends being run
    +   * asynchronously, using temporary intermediate storage, if possible/necessary.
        *
    -   * @param len The new expected length
    -   */
    -  public void setExpectedLength(int len) {
    -    resizeTo(getMinimumLength(), len);
    -  }
    -
    -  /**
    -   * Sets the expected lengths (minimum and estimated) to the given values.
    -   *
    -   * @param min The new minimum length, must not be smaller than the current minimum (unless
    -   *          {@link #checkError()} is {@code true})
    -   * @param expected The new expected length (will be rounded up if less than {@code min}).
    -   * @return The new expected length (which may be adjusted to the new minimum).
    -   * @throws IllegalStateException if the value is negative, and {@link #checkError()} is
    -   *           {@code false}.
    +   * @param executor The executor to use.
    +   *
    +   * @return The new, empty async sequence.
        */
    -  protected final int resizeTo(int min, int expected) {
    -    return resizeTo(min, expected, false);
    -  }
    -
    -  private int resizeTo(int min, int expected, boolean fromToString) {
    -    int oldMin = this.minLength;
    -    int oldExpected = this.expectedLength;
    -
    -    if (!fromToString && isString()) {
    -      // unchanged
    -      return oldExpected;
    -    }
    -
    -    if (min < oldMin) {
    -      if (checkError()) {
    -        // throw away our previous expectations upon error
    -        expected = (min = Math.max(0, min));
    -      } else {
    -        if (fromToString) {
    -          setError();
    -          resizeTo(min, expected, false);
    -          throw new IllegalStateException("Detected mispredicted minLength");
    -        } else {
    -          throw new IllegalStateException("New minimum is smaller than current minimum");
    -        }
    -      }
    -    }
    -
    -    int el = (this.expectedLength = Math.max((this.minLength = min), expected));
    -
    -    StringHolderScope sc = this.scope;
    -    if (sc != null) {
    -      try {
    -        sc.resizeBy(this, this.minLength - oldMin, this.expectedLength - oldExpected);
    -      } catch (RuntimeException | Error e) {
    -        setError();
    -        throw e;
    -      }
    -    }
    -
    -    return el;
    +  static StringHolderSequence newAsyncSequence(Executor executor) {
    +    return new AsyncStringHolderSequence(executor);
       }
     
       /**
    -   * Increases the expected lengths (minimum and estimated) by the given values.
    +   * Constructs a new, empty async {@link StringHolderSequence}.
        *
    -   * Any value that overflows {@link Integer#MAX_VALUE} will be capped at that limit.
    +   * {@link StringHolder}s are automatically converted upon append, with appends being run
    +   * asynchronously, using temporary intermediate storage, if possible/necessary.
        *
    -   * @param minBy The minimum length increment, must not be negative (unless {@link #checkError()}
    -   *          is {@code true})
    -   * @param expectedBy The expected length increment, may be negative; final length will be
    -   *          {@code >= 0}.
    -   * @throws IllegalArgumentException if minBy is negative and {@link #checkError()} is
    -   *           {@code false}
    -   */
    -  protected final void resizeBy(int minBy, int expectedBy) {
    -    int oldMin = this.minLength;
    -    int oldExpected = this.expectedLength;
    -
    -    if (minBy < 0) {
    -      if (checkError()) {
    -        this.minLength = Math.max(0, this.minLength + minBy);
    -      } else {
    -        throw new IllegalArgumentException("Minimum length increment is negative");
    -      }
    -    } else if ((this.minLength += minBy) < 0) {
    -      // cannot express minimum length that large
    -      this.minLength = Integer.MAX_VALUE;
    -    }
    -    this.expectedLength = Math.max(minLength, this.expectedLength + expectedBy);
    -
    -    StringHolderScope sc = this.scope;
    -    if (sc != null) {
    -      try {
    -        sc.resizeBy(this, this.minLength - oldMin, this.expectedLength - oldExpected);
    -      } catch (RuntimeException | Error e) {
    -        setError();
    -        throw e;
    -      }
    -    }
    -  }
    -
    -  /**
    -   * Returns the actual length of this instance's contents. This may trigger a conversion to
    -   * {@link String}.
    +   * @param estimatedNumberOfAppends Estimated number of calls to
    +   *          {@link StringHolderSequence#append(Object)}, etc.
        *
    -   * @return The actual length.
    +   * @return The new, empty async sequence.
        */
    -  @Override
    -  public final int length() {
    -    if (theString != null) {
    -      return minLength;
    -    } else {
    -      return resizeTo(computeLength(), 0);
    -    }
    +  static StringHolderSequence newAsyncSequence(int estimatedNumberOfAppends) {
    +    return new AsyncStringHolderSequence(estimatedNumberOfAppends);
       }
     
       /**
    -   * Computes the actual length of this instance's contents.
    +   * Constructs a new, empty async {@link StringHolderSequence}.
        *
    -   * By default, this is implemented as {@code toString().length()}.
    +   * {@link StringHolder}s are automatically converted upon append, with appends being run
    +   * asynchronously, using temporary intermediate storage, if possible/necessary.
        *
    -   * When overriding this method, make sure to also override {@link #isLengthKnown()}.
    +   * @param estimatedNumberOfAppends Estimated number of calls to
    +   *          {@link StringHolderSequence#append(Object)}, etc.
    +   * @param executor The executor to use.
        *
    -   * @return The actual length.
    +   * @return The new, empty sequence.
        */
    -  protected int computeLength() {
    -    return toString().length();
    +  static StringHolderSequence newAsyncSequence(int estimatedNumberOfAppends, Executor executor) {
    +    return new AsyncStringHolderSequence(estimatedNumberOfAppends, executor);
       }
     
       /**
    -   * Checks if this holder is currently backed by a plain {@link String}.
    +   * Constructs a {@link StringHolder} with the given content.
        *
    -   * @return {@code true} if currently backed by a plain {@link String}.
    +   * Unless the object already is a {@link StringHolder}, or is known to be empty, its contents are
    +   * converted to String. {@code null} objects are converted to {@code "null"}, in accordance with
    +   * {@link String#valueOf(Object)}.
    +   *
    +   * @param obj The object.
    +   * @return The {@link StringHolder} instance.
        */
    -  public final boolean isString() {
    -    return theString != null;
    +  @SuppressWarnings("PMD.CognitiveComplexity")
    +  static StringHolder withContent(Object obj) {
    +    if (obj == null) {
    +      return CommonStrings.NULL_STRINGHOLDER;
    +    } else if (obj instanceof String) {
    +      String s = (String) obj;
    +      StringHolder sh = CommonStrings.lookup(s);
    +      if (sh != null) {
    +        return sh;
    +      }
    +      return new SimpleStringHolder(s);
    +    } else if (obj instanceof StringHolder) {
    +      return (StringHolder) obj;
    +    } else {
    +      if (obj instanceof CharSequence) {
    +        if (CharSequenceReleaseShim.isEmpty((CharSequence) obj)) {
    +          return CommonStrings.EMPTY_STRINGHOLDER;
    +        }
    +      } else {
    +        StringHolder sh = CommonStrings.lookup(obj);
    +        if (sh != null) {
    +          return sh;
    +        }
    +      }
    +      String s = String.valueOf(obj);
    +      StringHolder sh = CommonStrings.lookup(s);
    +      if (sh != null) {
    +        return sh;
    +      }
    +      return new SimpleStringHolder(s);
    +    }
       }
     
       /**
    -   * Checks if this {@link StringHolder} is known to yield an empty {@link String}.
    +   * Constructs a {@link StringHolder} with the given content sequences, as if they had been
    +   * appended to a {@link StringHolderSequence}. Empty sequences are optimized.
        *
    -   * @return {@code true} if known non-empty.
    +   * @param objects The objects to represent as a sequence; if {@code null}, a StringHolder of the
    +   *          string {@code "null"} is returned.
    +   * @return The {@link StringHolder} instance.
    +   * @see #withContent(Object)
        */
    -  @Override
    -  public final boolean isKnownEmpty() {
    -    if (minLength > 0) {
    -      return false;
    -    } else if (isLengthKnown() && length() == 0) {
    -      return true;
    +  static StringHolder withContent(Object... objects) {
    +    if (objects == null) {
    +      return CommonStrings.NULL_STRINGHOLDER;
    +    }
    +    switch (objects.length) {
    +      case 0:
    +        return CommonStrings.EMPTY_STRINGHOLDER;
    +      case 1:
    +        return withContent(objects[0]);
    +      default:
    +        // see below
    +    }
    +    StringHolderSequence seq = new StringHolderSequence(objects.length);
    +    for (Object obj : objects) {
    +      if (obj instanceof StringHolder) {
    +        if (((StringHolder) obj).isKnownEmpty()) {
    +          continue;
    +        }
    +      } else if (obj instanceof CharSequence && CharSequenceReleaseShim.isEmpty(
    +          (CharSequence) obj)) {
    +        continue;
    +      }
    +      seq.append(obj);
    +    }
    +    if (seq.numberOfAppends() == 0) {
    +      return CommonStrings.EMPTY_STRINGHOLDER;
         } else {
    -      String s;
    -
    -      return (s = theString) != null && s.isEmpty();
    +      return seq;
         }
       }
     
    -  @Override
    -  public final boolean isEmpty() {
    -    return isKnownEmpty() || super.isEmpty();
    -  }
    -
       /**
    -   * Returns {@code true} if the actual length is known, i.e. {@link #getMinimumLength()} {@code ==}
    -   * {@link #getExpectedLength()} {@code == } {@link #length()}.
    -   *
    -   * By default, this is only true if {@link #isString()} {@code == true}, but subclasses may
    -   * override this check. When they do, they must include a check for
    -   * {@code || super.isLengthKnown()}.
    +   * Constructs a conditional wrapper around the given {@link StringHolder}; the given
    +   * {@code include} supplier controls whether the {@link StringHolder} is included, or effectively
    +   * empty.
        *
    -   * Note that once a length is <em>known</em>, it cannot change (i.e., don't override this for
    -   * mutable objects like {@link StringHolderSequence}).
    +   * The conditional supplier is called at most once; the check is delayed as much as possible.
        *
    -   * @return {@code true} if the length in this holder is known.
    -   * @see #isKnownEmpty()
    +   * @param wrapped The wrapped {@link StringHolder}.
    +   * @param includePredicate Controls the inclusion of that {@link StringHolder}; {@code false}
    +   *          means "excluded".
    +   * @return the conditional {@link StringHolder}.
        */
    -  @Override
    -  public boolean isLengthKnown() {
    -    return isString();
    +  static StringHolder withConditionalStringHolder(StringHolder wrapped,
    +      Predicate<StringHolder> includePredicate) {
    +    return new ConditionalStringHolder(wrapped, includePredicate);
       }
     
    -  @Override
    -  public int hashCode() {
    -    return toString().hashCode();
    +  /**
    +   * Constructs a wrapper around the given {@link StringHolder}, marking it as "uncacheable" (i.e.,
    +   * {@link #isCacheable()} returning {@code false}, unless {@link #isString()} is {@code true}).
    +   *
    +   * @param wrapped The wrapped {@link StringHolder}.
    +   * @return the uncacheable {@link StringHolder}.
    +   */
    +  static StringHolder withUncacheableStringHolder(StringHolder wrapped) {
    +    return wrapped.isCacheable() ? withConditionalStringHolder(wrapped, (k) -> true) : wrapped;
       }
     
    -  @SuppressFBWarnings("EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS")
       @Override
    -  public final boolean equals(Object obj) {
    -    if (obj == null) {
    -      return false;
    -    } else if (obj == this) {
    -      return true;
    -    } else if (obj instanceof String) {
    -      return equalsString((String) obj);
    -    } else if (obj instanceof StringHolder) {
    -      return equalsStringHolder((StringHolder) obj);
    -    } else {
    -      return false;
    -    }
    -  }
    -
    -  private boolean equalsString(String s) {
    -    if (!checkError() && s.length() < getMinimumLength()) {
    -      return false;
    -    } else if (isString()) {
    -      return toString().equals(s);
    -    } else if (isLengthKnown() && length() != s.length()) {
    -      return false;
    -    } else {
    -      return checkEquals(s);
    -    }
    +  default boolean isEmpty() {
    +    return length() == 0;
       }
     
       /**
    -   * Checks if this {@link StringHolder} instance is equal to the given String (assume that trivial
    -   * requirements, such as minimum length, were already checked).
    -   *
    -   * Subclasses may override this check for a faster operation.
    +   * Checks if this holder is currently backed by a plain {@link String}.
        *
    -   * @param s The other string.
    -   * @return {@code true} if this {@link StringHolder} is equal to the given string.
    +   * @return {@code true} if currently backed by a plain {@link String}.
        */
    -  protected boolean checkEquals(String s) {
    -    return toString().equals(s);
    -  }
    +  boolean isString();
     
       /**
    -   * Checks if this {@link StringHolder} instance is equal to the given {@link StringHolder} (assume
    -   * that trivial requirements, such as minimum length, were already checked).
    -   *
    -   * Subclasses may override this check for a faster operation.
    +   * Provides the contents of this {@link StringHolder} as a {@link Reader}.
        *
    -   * @param sh The other {@link StringHolder}.
    -   * @return {@code true} if this {@link StringHolder} is equal to the given string.
    +   * @return The reader.
    +   * @throws IOException on error.
        */
    -  protected boolean checkEquals(StringHolder sh) {
    -    return toString().equals(sh.toString());
    -  }
    -
    -  private boolean equalsStringHolder(StringHolder obj) {
    -    if (isLengthKnown() && obj.isLengthKnown() && length() != obj.length()) {
    -      return false;
    -    }
    -
    -    if (isString()) {
    -      if (!obj.checkError() && length() < obj.getMinimumLength()) {
    -        return false;
    -      }
    -      if (obj.isString()) {
    -        return toString().equals(obj.toString());
    -      } else {
    -        return obj.equalsString(toString());
    -      }
    -    } else if (obj.isString()) {
    -      if (!checkError() && obj.length() < getMinimumLength()) {
    -        return false;
    -      }
    -    }
    -
    -    return checkEquals(obj);
    -  }
    +  Reader toReader() throws IOException;
     
       /**
        * Append the contents of this {@link StringHolder} to the given {@link Appendable}; this may or
    @@ -693,9 +479,7 @@
        * @param out The target.
        * @throws IOException on error.
        */
    -  public final void appendTo(Appendable out) throws IOException {
    -    appendToAndReturnLength(out);
    -  }
    +  void appendTo(Appendable out) throws IOException;
     
       /**
        * Append the contents of this {@link StringHolder} to the given {@link StringBuilder}; this may
    @@ -703,9 +487,7 @@
        *
        * @param out The target.
        */
    -  public final void appendTo(StringBuilder out) {
    -    appendToAndReturnLength(out);
    -  }
    +  void appendTo(StringBuilder out);
     
       /**
        * Append the contents of this {@link StringHolder} to the given {@link StringBuffer}; this may or
    @@ -713,9 +495,7 @@
        *
        * @param out The target.
        */
    -  public final void appendTo(StringBuffer out) {
    -    appendToAndReturnLength(out);
    -  }
    +  void appendTo(StringBuffer out);
     
       /**
        * Append the contents of this {@link StringHolder} to the given {@link Writer}; this may or may
    @@ -724,9 +504,7 @@
        * @param out The target.
        * @throws IOException on error.
        */
    -  public final void appendTo(Writer out) throws IOException {
    -    appendToAndReturnLength(out);
    -  }
    +  void appendTo(Writer out) throws IOException;
     
       /**
        * Append the contents of this {@link StringHolder} to the given {@link Appendable}, and returns
    @@ -737,17 +515,7 @@
        * @return The number of characters appended.
        * @throws IOException on error.
        */
    -  public final int appendToAndReturnLength(Appendable out) throws IOException {
    -    if (out instanceof Writer) {
    -      return appendToAndReturnLength((Writer) out);
    -    } else if (out instanceof StringBuilder) {
    -      return appendToAndReturnLength((StringBuilder) out);
    -    } else if (out instanceof StringBuffer) {
    -      return appendToAndReturnLength((StringBuffer) out);
    -    } else {
    -      return appendToAndReturnLengthDefault(out);
    -    }
    -  }
    +  int appendToAndReturnLength(Appendable out) throws IOException;
     
       /**
        * Append the contents of this {@link StringHolder} to the given {@link StringBuilder}, and
    @@ -757,21 +525,7 @@
        * @param out The target.
        * @return The number of characters appended.
        */
    -  public final int appendToAndReturnLength(StringBuilder out) {
    -    int len;
    -    if (isString()) {
    -      len = length();
    -      if (len > 0) {
    -        out.append(toString());
    -      }
    -    } else {
    -      len = appendToAndReturnLengthImpl(out);
    -      if (minLength < len) {
    -        resizeTo(len, 0);
    -      }
    -    }
    -    return len;
    -  }
    +  int appendToAndReturnLength(StringBuilder out);
     
       /**
        * Append the contents of this {@link StringHolder} to the given {@link StringBuffer}, and returns
    @@ -781,19 +535,7 @@
        * @param out The target.
        * @return The number of characters appended.
        */
    -  public final int appendToAndReturnLength(StringBuffer out) {
    -    int len;
    -    if (isString()) {
    -      len = length();
    -      out.append(toString());
    -    } else {
    -      len = appendToAndReturnLengthImpl(out);
    -      if (minLength < len) {
    -        resizeTo(len, 0);
    -      }
    -    }
    -    return len;
    -  }
    +  int appendToAndReturnLength(StringBuffer out);
     
       /**
        * Append the contents of this {@link StringHolder} to the given {@link Writer}, and returns the
    @@ -804,218 +546,84 @@
        * @return The number of characters appended.
        * @throws IOException on error.
        */
    -  public final int appendToAndReturnLength(Writer out) throws IOException {
    -    int len;
    -    if (isString()) {
    -      len = length();
    -      out.append(toString());
    -    } else {
    -      len = appendToAndReturnLengthImpl(out);
    -      if (minLength < len) {
    -        resizeTo(len, 0);
    -      }
    -    }
    -    return len;
    -  }
    +  int appendToAndReturnLength(Writer out) throws IOException;
     
       /**
    -   * Append the contents of this {@link StringHolder} to the given {@link Appendable} (which is
    -   * neither a {@link StringBuilder}, {@link StringBuffer}, nor a {@link Writer}), and returns the
    -   * number of characters appended. This call may or may not turn the contents of this instance into
    -   * a String. It won't be called if it's already one.
    +   * Returns the current minimum length of the expected string length in this {@link StringHolder}.
        *
    -   * @param out The target.
    -   * @return The number of characters appended (which is assumed to be the new minimum length).
    -   * @see #appendToAndReturnLength(StringBuilder)
    -   * @see #appendToAndReturnLength(StringBuffer)
    -   * @see #appendToAndReturnLength(StringWriter)
    -   * @throws IOException on error.
    -   */
    -  protected int appendToAndReturnLengthDefaultImpl(Appendable out) throws IOException {
    -    String s = toString();
    -    if (!s.isEmpty()) {
    -      out.append(s);
    -    }
    -    return s.length();
    -  }
    -
    -  /**
    -   * Append the contents of this {@link StringHolder} to the given {@link StringBuilder}, and
    -   * returns the number of characters appended. This call may or may not turn the contents of this
    -   * instance into a String. It won't be called if it's already one.
    +   * This is equivalent to {@link #length()} if {@link #isString()} is {@code true}.
        *
    -   * @param out The target.
    -   * @return The number of characters appended (which is assumed to be the new minimum length).
    -   */
    -  protected int appendToAndReturnLengthImpl(StringBuilder out) {
    -    String s = toString();
    -    if (!s.isEmpty()) {
    -      out.append(s);
    -    }
    -    return s.length();
    -  }
    -
    -  /**
    -   * Append the contents of this {@link StringHolder} to the given {@link StringBuffer}, and returns
    -   * the number of characters appended. This call may or may not turn the contents of this instance
    -   * into a String. It won't be called if it's already one.
    +   * NOTE: When using this parameter for optimizations (e.g., to speed-up equality checks), make
    +   * sure to also check {@link #checkError()}. When that method returns {@code true}, the minimum
    +   * length can actually not be guaranteed.
        *
    -   * @param out The target.
    -   * @return The number of characters appended (which is assumed to be the new minimum length).
    +   * @return The minimum length (but be sure to see {@link #checkError()}).
        */
    -  protected int appendToAndReturnLengthImpl(StringBuffer out) {
    -    String s = toString();
    -    if (!s.isEmpty()) {
    -      out.append(s);
    -    }
    -    return s.length();
    -  }
    +  @Override
    +  int getMinimumLength();
     
       /**
    -   * Append the contents of this {@link StringHolder} to the given {@link Writer}, and returns the
    -   * number of characters appended. This call may or may not turn the contents of this instance into
    -   * a String. It won't be called if it's already one.
    +   * Returns the current estimate of the length of the string in this {@link StringHolder}, which is
    +   * at least the {@link #getMinimumLength()} but could be substantially larger.
        *
    -   * @param out The target.
    -   * @return The number of characters appended (which is assumed to be the new minimum length).
    -   * @throws IOException on error.
    +   * This is equivalent to {@link #length()} if {@link #isString()} is {@code true}.
    +   *
    +   * @return The currently expected length.
        */
    -  protected int appendToAndReturnLengthImpl(Writer out) throws IOException {
    -    // subclasses may implement a better way for Writers, but we don't
    -    return appendToAndReturnLengthDefault(out);
    -  }
    -
    -  private int appendToAndReturnLengthDefault(Appendable out) throws IOException {
    -    int len;
    -    if (isString()) {
    -      len = length();
    -      out.append(toString());
    -    } else {
    -      len = appendToAndReturnLengthDefaultImpl(out);
    -      if (minLength < len) {
    -        resizeTo(len, 0);
    -      }
    -    }
    -    return len;
    -  }
    -
       @Override
    -  public final String toString() {
    -    String s = theString;
    -    if (s != null) {
    -      return s;
    -    }
    -    synchronized (this) {
    -      try {
    -        if (isKnownEmpty()) {
    -          theString = s = "";
    -        } else {
    -          theString = s = CommonStrings.lookupIfPossible(Objects.requireNonNull(getString()));
    -        }
    -        resizeTo(s.length(), 0, true);
    -      } catch (RuntimeException e) {
    -        s = theString;
    -        if (s != null) {
    -          resizeTo(s.length(), 0, true);
    -        }
    -        setError();
    -        throw e;
    -      }
    -
    -      stringSanityCheck(s);
    -      return s;
    -    }
    -  }
    +  int getExpectedLength();
     
       /**
    -   * Called from within {@link #toString()} after updating/assigning the cached string but before
    -   * returning it. This may be a good opportunity to see if we got what we wanted, call setError,
    -   * etc.
    +   * Updates the current estimate of the length of the string in this {@link StringHolder}.
        *
    -   * @param s The string.
    -   */
    -  protected void stringSanityCheck(String s) {
    -  }
    -
    -  /**
    -   * Retrieves the string.
    +   * The value will be rounded to {@link #getMinimumLength()} if necessary.
        *
    -   * @return The string; must not be {@code null}.
    +   * @param len The new expected length
        */
    -  protected abstract String getString();
    +  void setExpectedLength(int len);
     
       /**
    -   * Un-caches the already-determined String. This can be used to implement mutable data structures.
    +   * Returns the actual length of this instance's contents. This may trigger a conversion to
    +   * {@link String}.
        *
    -   * Important: Subclasses must carefully check {@link #isEffectivelyImmutable()} status.
    +   * @return The actual length.
        */
    -  protected void uncache() {
    -    theString = null;
    -  }
    +  @Override
    +  int length();
     
       /**
    -   * Provides the contents of this {@link StringHolder} as a {@link Reader}.
    +   * Checks if this {@link StringHolder} is known to yield an empty {@link String}.
        *
    -   * @return The reader.
    -   * @throws IOException on error.
    +   * @return {@code true} if known non-empty.
        */
    -  public final Reader toReader() throws IOException {
    -    String s = theString;
    -    if (s != null) {
    -      return new StringReader(s);
    -    } else {
    -      return newReader();
    -    }
    -  }
    +  @Override
    +  boolean isKnownEmpty();
     
       /**
    -   * Checks if this {@link StringHolder} had some kind of unexpected condition.
    +   * Returns {@code true} if the actual length is known, i.e. {@link #getMinimumLength()} {@code ==}
    +   * {@link #getExpectedLength()} {@code == } {@link #length()}.
        *
    -   * If so, {@link #getMinimumLength()} may be adjusted to a value smaller than its previous state.
    +   * By default, this is only true if {@link #isString()} {@code == true}, but subclasses may
    +   * override this check. When they do, they must include a check for
    +   * {@code || super.isLengthKnown()}.
        *
    -   * @return {@code true} if trouble was detected.
    -   */
    -  public final boolean checkError() {
    -    return trouble;
    -  }
    -
    -  /**
    -   * Signals that this instance had some kind of unexpected condition.
    +   * Note that once a length is <em>known</em>, it cannot change (i.e., don't override this for
    +   * mutable objects like {@link StringHolderSequence}).
        *
    -   * @see #checkError()
    -   * @see #clearError()
    +   * @return {@code true} if the length in this holder is known.
    +   * @see #isKnownEmpty()
        */
    -  protected final void setError() {
    -    trouble = true;
    -    StringHolderScope sc = scope;
    -    if (sc != null) {
    -      sc.setError(this);
    -    }
    -  }
    +  @Override
    +  boolean isLengthKnown();
     
       /**
    -   * Clears the trouble state of this instance.
    +   * Checks if this {@link StringHolder} had some kind of unexpected condition.
        *
    -   * @see #checkError()
    -   * @see #setError()
    -   */
    -  protected final void clearError() {
    -    trouble = false;
    -    StringHolderScope sc = scope;
    -    if (sc != null) {
    -      sc.clearError(this);
    -    }
    -  }
    -
    -  /**
    -   * Constructs a new {@link Reader} providing the contents of this {@link StringHolder}.
    +   * If so, {@link #getMinimumLength()} may be adjusted to a value smaller than its previous state.
        *
    -   * @return The reader.
    -   * @throws IOException on error.
    +   * @return {@code true} if trouble was detected.
        */
    -  protected Reader newReader() throws IOException {
    -    return LazyInitReader.withSupplier(() -> new StringReader(StringHolder.this.toString()));
    -  }
    +  boolean checkError();
     
       /**
        * Returns the {@link StringHolderScope} associated with this {@link StringHolder}, or
    @@ -1023,9 +631,7 @@
        *
        * @return The scope, or {@code null}.
        */
    -  public final StringHolderScope getScope() {
    -    return scope;
    -  }
    +  StringHolderScope getScope();
     
       /**
        * Sets the {@link StringHolderScope} associated with this {@link StringHolder}. Any previously
    @@ -1035,48 +641,7 @@
        *          scope".
        * @return The old scope, or {@code null} if none was set before.
        */
    -  public final StringHolderScope updateScope(StringHolderScope newScope) {
    -    if (newScope == StringHolderScope.NONE) { // NOPMD.CompareObjectsWithEquals
    -      newScope = null;
    -    }
    -    StringHolderScope oldScope = this.scope;
    -    if (oldScope == newScope) { // NOPMD.CompareObjectsWithEquals
    -      return oldScope;
    -    }
    -
    -    if (oldScope != null) {
    -      try {
    -        oldScope.remove(this);
    -      } catch (RuntimeException | Error e) {
    -        setError();
    -        throw e;
    -      }
    -    }
    -
    -    if (newScope != null) {
    -      try {
    -        newScope.add(this);
    -      } catch (RuntimeException | Error e) {
    -        setError();
    -        throw e;
    -      }
    -    }
    -    this.scope = newScope;
    -    return oldScope;
    -  }
    -
    -  @Override
    -  public char charAt(int index) {
    -    return toString().charAt(index);
    -  }
    -
    -  @Override
    -  public CharSequence subSequence(int start, int end) {
    -    if (start == 0 && end == length()) {
    -      return this;
    -    }
    -    return toString().subSequence(start, end);
    -  }
    +  StringHolderScope updateScope(StringHolderScope newScope);
     
       /**
        * Returns something that can be used in {@link StringHolder#withContent(Object)} which then
    @@ -1089,21 +654,16 @@
        * @return The "content" of this instance, which could be the instance itself, or something else.
        * @see #withContent(Object)
        */
    -  public Object asContent() {
    -    if (isString()) {
    -      return toString();
    -    }
    -    return this;
    -  }
    +  Object asContent();
     
       @Override
    -  public int compareTo(Object o) {
    -    if (o instanceof StringHolder) {
    -      return compareTo((StringHolder) o);
    -    } else if (o instanceof CharSequence) {
    -      return compareTo((CharSequence) o);
    +  default int compareTo(Object o) {
    +    if (o instanceof StringHolder) {
    +      return compareTo((StringHolder) o);
    +    } else if (o instanceof CharSequence) {
    +      return compareTo((CharSequence) o);
         } else {
    -      throw new ClassCastException("Cannot compare " + o.getClass());
    +      throw new ClassCastException("Cannot compare " + o.getClass());
         }
       }
     
    @@ -1113,21 +673,7 @@
        * @param o The other object.
        * @return The comparison result, as defined by {@link #compareTo(Object)}.
        */
    -  public int compareTo(CharSequence o) {
    -    if (o instanceof StringHolder) {
    -      return compareTo((StringHolder) o);
    -    }
    -
    -    if (isKnownEmpty()) {
    -      if (CharSequenceReleaseShim.isEmpty(o)) {
    -        return 0;
    -      } else {
    -        return -1;
    -      }
    -    }
    -
    -    return compareToDefault(o);
    -  }
    +  int compareTo(CharSequence o);
     
       /**
        * Narrower implementation of {@link #compareTo(Object)} for {@link StringHolder}s.
    @@ -1135,290 +681,118 @@
        * @param o The other object.
        * @return The comparison result, as defined by {@link #compareTo(Object)}.
        */
    -  public int compareTo(StringHolder o) {
    -    if (o.isKnownEmpty()) {
    -      if (isKnownEmpty()) {
    -        return 0;
    -      }
    -    } else if (o.isString()) {
    -      if (isString()) {
    -        return toString().compareTo(o.toString());
    -      } else {
    -        return compareTo(o.toString());
    -      }
    -    } else if (isString()) {
    -      return ComparisonUtil.reverseComparisonResult(o.compareTo(toString()));
    -    }
    -
    -    return compareToDefault(o);
    -  }
    +  int compareTo(StringHolder o);
     
       /**
    -   * Default implementation for comparing this instance with another {@link CharSequence} that is
    -   * not a {@link StringHolder}. Certain trivial checks were already performed, such as one or both
    -   * being known empty.
    +   * Checks if this {@link StringHolder} is <em>effectively immutable</em>.
        *
    -   * @param o The other object.
    -   * @return The comparison result, as defined by {@link #compareTo(Object)}.
    +   * @return {@code true} if the contents aren't going to change.
        */
    -  @SuppressWarnings({"PMD.CognitiveComplexity"})
    -  protected final int compareToDefault(CharSequence o) {
    -    int k = 0;
    -
    -    if (getMinimumLength() > 0 && CharSequenceReleaseShim.isEmpty(o)) {
    -      // NOTE: we trust the StringHolder claim of minimum length
    -      return 1;
    -    }
    -    int len2 = o.length();
    +  boolean isEffectivelyImmutable();
     
    -    int lim;
    -    char c1;
    -    try {
    -      c1 = charAt(k);
    -    } catch (IndexOutOfBoundsException e) {
    -      if (len2 == 0) {
    -        return 0;
    -      } else {
    -        return -1;
    -      }
    -    }
    -
    -    int len1;
    -    if (isString()) {
    -      if (o instanceof String) {
    -        return toString().compareTo((String) o);
    -      }
    -      len1 = length();
    -      lim = Math.min(len1, len2);
    -    } else {
    -      if (isLengthKnown()) {
    -        len1 = length();
    -        lim = Math.min(len1, len2);
    -      } else {
    -        len1 = Integer.MAX_VALUE;
    -        lim = len2;
    -      }
    -    }
    -
    -    while (k < lim) {
    -      char c2 = o.charAt(k);
    -      if (c1 != c2) {
    -        return c1 - c2;
    -      }
    -      k++;
    -      if (k < lim) {
    -        try {
    -          c1 = charAt(k);
    -        } catch (IndexOutOfBoundsException e) {
    -          return -1;
    -        }
    -      }
    -    }
    +  /**
    +   * Marks this instance as <em>effectively immutable</em>.
    +   */
    +  void markEffectivelyImmutable();
     
    -    if (getMinimumLength() > k) {
    -      return 1;
    -    } else if (len1 == k) {
    -      return len1 - len2;
    -    }
    -    try {
    -      charAt(k);
    -      return 1;
    -    } catch (IndexOutOfBoundsException e) {
    -      return 0;
    -    }
    +  /**
    +   * Checks if this {@link StringHolder} is cacheable. A cacheable {@link StringHolder} may be
    +   * probed early for its contents (length, hashCode, etc.). This is usually the case, except when a
    +   * {@link StringHolder} is involved that was supplied via
    +   * {@link StringHolder#withConditionalStringHolder(StringHolder, Predicate)} or via
    +   * {@link #withUncacheableStringHolder(StringHolder)}, and that StringHolder is not already a
    +   * string or otherwise supplied, for example. By convention, it should be cacheable whenever
    +   * {@link #isString()} is {@code true}.
    +   *
    +   * @return {@code true} if cacheable.
    +   */
    +  default boolean isCacheable() {
    +    return true;
       }
     
       /**
    -   * Default implementation for comparing this instance with another {@link StringHolder}. Certain
    -   * trivial checks were already performed, such as one or both being known empty or known being
    -   * string.
    +   * Deep-clones this {@link StringHolder}.
        *
    -   * @param o The other object.
    -   * @return The comparison result, as defined by {@link #compareTo(Object)}.
    +   * @return The cloned instance.
        */
    -  @SuppressWarnings({"PMD.NPathComplexity", "PMD.CognitiveComplexity"})
    -  protected int compareToDefault(StringHolder o) {
    -    int k = 0;
    -
    -    char c1;
    -    char c2;
    -    try {
    -      c1 = charAt(k);
    -    } catch (IndexOutOfBoundsException e) {
    -      try {
    -        o.charAt(k);
    -        return -1;
    -      } catch (IndexOutOfBoundsException e2) {
    -        return 0;
    -      }
    -    }
    -    try {
    -      c2 = o.charAt(k);
    -    } catch (IndexOutOfBoundsException e) {
    -      return 1;
    -    }
    -
    -    if (c1 != c2) {
    -      return c1 - c2;
    -    }
    +  StringHolder clone();
     
    -    if (isString()) {
    -      return ComparisonUtil.reverseComparisonResult(o.compareTo(toString()));
    -    } else if (o.isString()) {
    -      return compareTo(o.toString());
    -    }
    -
    -    boolean len1Known = isLengthKnown();
    -    boolean len2Known = o.isLengthKnown();
    -
    -    if (len1Known && len2Known) {
    -      return compareBothLengthsKnown(o, k, length(), o.length());
    -    } else if (len1Known) {
    -      return compareOurLengthKnown(o, k, length());
    -    } else if (len2Known) {
    -      return compareOtherLengthKnown(o, k, o.length());
    -    } else {
    -      return compareBothLengthsUnknown(o, k);
    +  /**
    +   * Returns the index within this string of the first occurrence of the specified character, or
    +   * {@code -1} if not found.
    +   *
    +   * @param c The character/codepoint to look for.
    +   * @return The position, or {@code -1} if not found.
    +   */
    +  default int indexOf(int c) {
    +    if (isString()) {
    +      return toString().indexOf(c);
    +    } else if (isKnownEmpty()) {
    +      return -1;
         }
    -  }
    -
    -  private int compareBothLengthsKnown(StringHolder o, int k, int len1, int len2) {
    -    int lim = Math.min(len1, len2);
    -
    -    char c1;
    -    char c2;
     
    -    while (k < lim) {
    -      c1 = charAt(k);
    -      c2 = o.charAt(k);
    -      if (c1 != c2) {
    -        return c1 - c2;
    +    int i = 0;
    +    for (PrimitiveIterator.OfInt it = chars().iterator(); it.hasNext(); i++) {
    +      int ch = it.next();
    +      if (ch == c) {
    +        return i;
           }
    -      k++;
         }
    -
    -    return len1 - len2;
    +    return -1;
       }
     
    -  private int compareOurLengthKnown(StringHolder o, int k, int len1) {
    -    char c1;
    -    char c2;
    -
    -    while (k < len1) {
    -      c1 = charAt(k);
    -      try {
    -        c2 = o.charAt(k);
    -      } catch (IndexOutOfBoundsException e) {
    -        return 1;
    -      }
    -      if (c1 != c2) {
    -        return c1 - c2;
    -      }
    -      k++;
    -    }
    -
    -    try {
    -      if (o.getMinimumLength() > k) {
    -        return -1;
    -      }
    -      o.charAt(k);
    -      return -1;
    -    } catch (IndexOutOfBoundsException e) {
    -      return 0;
    -    }
    +  /**
    +   * Checks if this {@link StringHolder} contains the given {@link CharSequence}.
    +   * 
    +   * @param s The char sequence to look for.
    +   * @return {@code true} if found (also if the sequence is empty).
    +   */
    +  default boolean contains(CharSequence s) {
    +    return indexOf(s.toString()) >= 0;
       }
     
    -  private int compareOtherLengthKnown(StringHolder o, int k, int len2) {
    -    char c1;
    -    char c2;
    -
    -    while (k < len2) {
    -      try {
    -        c1 = charAt(k);
    -      } catch (IndexOutOfBoundsException e) {
    -        return -1;
    -      }
    -      c2 = o.charAt(k);
    -      if (c1 != c2) {
    -        return c1 - c2;
    +  /**
    +   * Returns the index within this {@link StringHolder} of the first occurrence of the specified
    +   * {@link CharSequence}, or {@code -1} if not found.
    +   *
    +   * @param str The char sequence to look for.
    +   * @return The position, or {@code -1} if not found.
    +   */
    +  default int indexOf(CharSequence str) {
    +    if (str == this) { // NOPMD.CompareObjectsWithEquals
    +      return 0;
    +    } else if (isString()) {
    +      if (str instanceof String || //
    +          (str instanceof StringHolder && ((StringHolder) str).isString())) {
    +        return toString().indexOf(str.toString());
           }
    -      k++;
         }
     
    -    try {
    -      if (getMinimumLength() > k) {
    -        return 1;
    -      }
    -      charAt(k);
    -      return 1;
    -    } catch (IndexOutOfBoundsException e) {
    -      return 0;
    +    if (CharSequenceReleaseShim.isEmpty(str)) {
    +      return 0;
    +    } else if (isKnownEmpty()) {
    +      return -1;
         }
    -  }
     
    -  private int compareBothLengthsUnknown(StringHolder o, int k) {
    -    char c1;
    -    char c2;
    -    while (true) {
    -      k++;
    +    int strLen = str.length();
    +    if (isLengthKnown() && length() < strLen) {
    +      return -1;
    +    }
     
    -      try {
    -        c1 = charAt(k);
    -      } catch (IndexOutOfBoundsException e) {
    -        try {
    -          o.charAt(k);
    -          return -1;
    -        } catch (IndexOutOfBoundsException e2) {
    -          return 0;
    +    int stri = 0;
    +    int i = 0;
    +    for (PrimitiveIterator.OfInt it = chars().iterator(); it.hasNext(); i++) {
    +      int c = it.next();
    +      if (c == str.charAt(stri)) {
    +        stri++;
    +        if (stri == strLen) {
    +          return i - strLen + 1;
             }
    -      }
    -      try {
    -        c2 = o.charAt(k);
    -      } catch (IndexOutOfBoundsException e) {
    -        return 1;
    -      }
    -
    -      if (c1 != c2) {
    -        return c1 - c2;
    +      } else {
    +        stri = 0;
           }
         }
    +    return -1;
       }
    -
    -  /**
    -   * Computes a partial hash code, using the given value as the seed.
    -   *
    -   * @param h The initial value (seed).
    -   * @return The updated hash code.
    -   */
    -  protected int updateHashCode(int h) {
    -    int length = length();
    -
    -    if (h == 0 && isString()) {
    -      return toString().hashCode();
    -    }
    -
    -    for (int i = 0; i < length; i++) {
    -      h = 31 * h + charAt(i);
    -    }
    -    return h;
    -  }
    -
    -  /**
    -   * Checks if the given {@link StringHolder} is <em>effectively immutable</em>.
    -   *
    -   * @return {@code true} if the contents aren't going to change.
    -   */
    -  public boolean isEffectivelyImmutable() {
    -    return isString();
    -  }
    -
    -  /**
    -   * Marks this instance as <em>effectively immutable</em>.
    -   */
    -  public void markEffectivelyImmutable() {
    -    if (!isEffectivelyImmutable()) {
    -      toString();
    -    }
    -  }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope$1.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope$1.html index 4d526c4..38ffabd 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope$1.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope$1.html @@ -1 +1 @@ -StringHolderScope.new StringHolderScope() {...}

    StringHolderScope.new StringHolderScope() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 3100%0 of 0n/a010101
    {...}3100%n/a010101
    \ No newline at end of file +StringHolderScope.new StringHolderScope() {...}

    StringHolderScope.new StringHolderScope() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 3100%0 of 0n/a010101
    {...}3100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope.html index c86d35c..c8af427 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope.html @@ -1 +1 @@ -StringHolderScope

    StringHolderScope

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 8100%0 of 0n/a040404
    static {...}5100%n/a010101
    resizeBy(StringHolder, int, int)1100%n/a010101
    setError(StringHolder)1100%n/a010101
    clearError(StringHolder)1100%n/a010101
    \ No newline at end of file +StringHolderScope

    StringHolderScope

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 8100%0 of 0n/a040404
    static {...}5100%n/a010101
    resizeBy(int, int)1100%n/a010101
    setError(StringHolder)1100%n/a010101
    clearError(StringHolder)1100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope.java.html index 340e184..8563ea0 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderScope.java.html @@ -1,7 +1,7 @@ StringHolderScope.java

    StringHolderScope.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -33,12 +33,12 @@
        */
       StringHolderScope NONE = new StringHolderScope() {
         @Override
    -    @ExcludeFromCodeCoverageGeneratedReport
    +    @ExcludeFromCodeCoverageGeneratedReport(reason = "unreachable")
         public void add(StringHolder sh) {
         }
     
         @Override
    -    @ExcludeFromCodeCoverageGeneratedReport
    +    @ExcludeFromCodeCoverageGeneratedReport(reason = "unreachable")
         public void remove(StringHolder sh) {
         }
       };
    @@ -60,12 +60,11 @@
       /**
        * Called upon a size change regarding the given {@link StringHolder}.
        *
    -   * @param sh The {@link StringHolder}.
        * @param minLengthBy The relative size change for the minimum length, can also be negative.
        * @param expectedLengthBy The relative size change for the expected length, can also be negative.
        */
    -  default void resizeBy(StringHolder sh, int minLengthBy, int expectedLengthBy) {
    -  }
    +  default void resizeBy(int minLengthBy, int expectedLengthBy) {
    +  }
     
       /**
        * Called upon a {@link StringHolder} entering error state, e.g., when a length constraint was
    @@ -74,7 +73,7 @@
        * @param sh The {@link StringHolder}.
        */
       default void setError(StringHolder sh) {
    -  }
    +  }
     
       /**
        * Called upon a {@link StringHolder} leaving error state.
    @@ -82,6 +81,6 @@
        * @param sh The {@link StringHolder}.
        */
       default void clearError(StringHolder sh) {
    -  }
    +  }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence$StringSequenceReader.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence$StringSequenceReader.html index 949d1d7..a024ae4 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence$StringSequenceReader.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence$StringSequenceReader.html @@ -1 +1 @@ -StringHolderSequence.StringSequenceReader

    StringHolderSequence.StringSequenceReader

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 131100%0 of 14100%01403807
    ensureObject()46100%8100%0501501
    read(char[], int, int)38100%2100%020701
    read()18100%2100%020401
    StringHolderSequence.StringSequenceReader(Iterator)12100%n/a010501
    ensureOpen()9100%2100%020301
    ready()4100%n/a010201
    close()4100%n/a010201
    \ No newline at end of file +StringHolderSequence.StringSequenceReader

    StringHolderSequence.StringSequenceReader

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 131100%0 of 14100%01403807
    ensureObject()46100%8100%0501501
    read(char[], int, int)38100%2100%020701
    read()18100%2100%020401
    StringHolderSequence.StringSequenceReader(Iterator)12100%n/a010501
    ensureOpen()9100%2100%020301
    ready()4100%n/a010201
    close()4100%n/a010201
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence.html index b600ee8..ff35afc 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence.html @@ -1 +1 @@ -StringHolderSequence

    StringHolderSequence

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 811100%0 of 120100%0900222030
    charAt(int)80100%14100%0802101
    appendToFlatList(List)58100%8100%0501601
    appendToAndReturnLengthImpl(StringBuilder)51100%6100%0401401
    appendToAndReturnLengthImpl(StringBuffer)51100%6100%0401401
    append(CharSequence, int, int)50100%8100%0501001
    appendToAndReturnLengthDefaultImpl(Appendable)44100%6100%0401301
    updateHashCode(Object, int)42100%8100%0501201
    append(StringHolder)41100%8100%0501201
    computeLength()36100%6100%040801
    asContent()35100%8100%0501101
    newReader()33100%4100%030701
    getString()32100%2100%020901
    append(Object)29100%6100%040701
    markEffectivelyImmutable()28100%6100%0401001
    appendAll(Object[])25100%2100%020401
    updateHashCode(int)25100%4100%030601
    StringHolderSequence(int)22100%n/a010701
    addSequence(String)20100%2100%020801
    appendAll(Iterable)19100%2100%020501
    checkEquals(StringHolder)18100%4100%030501
    hashCode()16100%4100%030301
    append(CharSequence)10100%2100%020301
    checkMutable()9100%2100%020301
    append(String)9100%2100%020301
    uncache()9100%n/a010401
    append(char)6100%n/a010201
    StringHolderSequence()4100%n/a010201
    numberOfAppends()4100%n/a010101
    isEffectivelyImmutable()3100%n/a010101
    needsStringConversion(StringHolder)2100%n/a010101
    \ No newline at end of file +StringHolderSequence

    StringHolderSequence

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 894100%0 of 134100%0990243032
    charAt(int)80100%14100%0802101
    appendToFlatList(List)58100%8100%0501601
    appendToAndReturnLengthImpl(StringBuilder)51100%6100%0401401
    appendToAndReturnLengthImpl(StringBuffer)51100%6100%0401401
    append(CharSequence, int, int)50100%8100%0501001
    append(StringHolder)50100%10100%0601401
    appendToAndReturnLengthDefaultImpl(Appendable)44100%6100%0401301
    updateHashCode(Object, int)42100%8100%0501201
    clone()41100%4100%030901
    computeLength()36100%6100%040801
    asContent()35100%8100%0501101
    newReader()33100%4100%030701
    getString()32100%2100%020901
    append(Object)29100%6100%040701
    markEffectivelyImmutable()28100%6100%0401001
    appendAll(Object[])25100%2100%020401
    updateHashCode(int)25100%4100%030601
    isCacheable()25100%6100%040801
    StringHolderSequence(int)22100%n/a010701
    addSequence(String)20100%2100%020801
    appendAll(Iterable)19100%2100%020501
    append(CharSequence)18100%4100%030501
    checkEquals(StringHolder)18100%4100%030501
    hashCode()16100%4100%030301
    checkMutable()9100%2100%020301
    append(String)9100%2100%020301
    uncache()9100%n/a010401
    append(char)6100%n/a010201
    StringHolderSequence()4100%n/a010201
    numberOfAppends()4100%n/a010101
    isEffectivelyImmutable()3100%n/a010101
    needsStringConversion(StringHolder)2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence.java.html index b11f2ed..2d31ac5 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringHolderSequence.java.html @@ -1,7 +1,7 @@ StringHolderSequence.java

    StringHolderSequence.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -30,30 +30,31 @@
      *
      * @author Christian Kohlschütter
      */
    -public class StringHolderSequence extends StringHolder implements Appendable {
    -  final List<CharSequence> sequence;
    +@SuppressWarnings("PMD.CyclomaticComplexity")
    +public class StringHolderSequence extends AbstractStringHolder implements Appendable {
    +  List<CharSequence> sequence;
     
    -  private boolean immutable = false;
    -  private boolean cannotUseCache = false;
    -  private Integer cachedHashCode = null;
    -  private Integer cachedLength = null;
    +  private boolean immutable = false;
    +  private boolean cannotUseCache = false;
    +  private Integer cachedHashCode = null;
    +  private Integer cachedLength = null;
     
       /**
        * Constructs a new, empty {@link StringHolderSequence}.
        */
    -  public StringHolderSequence() {
    -    this(10);
    -  }
    +  StringHolderSequence() {
    +    this(10);
    +  }
     
       /**
        * Constructs a new, empty {@link StringHolderSequence}.
        *
        * @param estimatedNumberOfAppends Estimated number of calls to {@link #append(Object)}, etc.
        */
    -  public StringHolderSequence(int estimatedNumberOfAppends) {
    -    super(0);
    -    sequence = new ArrayList<>(estimatedNumberOfAppends);
    -  }
    +  StringHolderSequence(int estimatedNumberOfAppends) {
    +    super(0);
    +    sequence = new ArrayList<>(estimatedNumberOfAppends);
    +  }
     
       /**
        * Checks if the to-be-appended {@link StringHolder} should be added as a {@link String} (with
    @@ -67,38 +68,38 @@
        * @see StringOnlySequence
        */
       protected boolean needsStringConversion(StringHolder sh) {
    -    return false;
    +    return false;
       }
     
       private void checkMutable() {
    -    if (immutable) {
    -      throw new IllegalStateException(
    +    if (immutable) {
    +      throw new IllegalStateException(
               "Cannot append -- instance is marked as effectively-immutable");
         }
    -  }
    +  }
     
       @Override
       public StringHolderSequence append(CharSequence csq, int start, int end) {
    -    if (end == start) {
    -      return this;
    +    if (end == start) {
    +      return this;
         }
     
    -    if (csq instanceof String) {
    -      append(((String) csq).substring(start, end));
    -    } else if (csq instanceof StringBuilder) {
    -      append(((StringBuilder) csq).substring(start, end));
    -    } else if (csq instanceof StringBuffer) {
    -      append(((StringBuffer) csq).substring(start, end));
    +    if (csq instanceof String) {
    +      append(((String) csq).substring(start, end));
    +    } else if (csq instanceof StringBuilder) {
    +      append(((StringBuilder) csq).substring(start, end));
    +    } else if (csq instanceof StringBuffer) {
    +      append(((StringBuffer) csq).substring(start, end));
         } else {
    -      append(csq.subSequence(start, end));
    +      append(csq.subSequence(start, end));
         }
    -    return this;
    +    return this;
       }
     
       @Override
       public StringHolderSequence append(char c) {
    -    addSequence(String.valueOf(c));
    -    return this;
    +    addSequence(String.valueOf(c));
    +    return this;
       }
     
       /**
    @@ -108,49 +109,59 @@
        * @return This instance.
        */
       public StringHolderSequence append(String s) {
    -    if (!s.isEmpty()) {
    -      addSequence(CommonStrings.lookupIfPossible(s));
    +    if (!s.isEmpty()) {
    +      addSequence(CommonStrings.lookupIfPossible(s));
         }
    -    return this;
    +    return this;
       }
     
       private void addSequence(String s) {
    -    int len = s.length();
    -    if (len == 0) {
    -      return;
    +    int len = s.length();
    +    if (len == 0) {
    +      return;
         }
     
    -    checkMutable();
    +    checkMutable();
     
    -    uncache();
    -    sequence.add(s);
    -    resizeBy(len, len);
    -  }
    +    uncache();
    +    sequence.add(s);
    +    resizeBy(len, len);
    +  }
     
       /**
        * Appends the given {@link StringHolder}, unless it is known to be empty.
        *
    +   * As a side-effect, the scope of the given {@link StringHolder} is updated with the scope of this
    +   * instance.
    +   *
        * @param s The string.
        * @return This instance.
        */
       public StringHolderSequence append(StringHolder s) {
    -    if (s.isKnownEmpty()) {
    -      return this;
    -    } else if (s.isString() || needsStringConversion(s)) {
    -      checkMutable();
    -      addSequence(s.toString());
    +    if (s.isKnownEmpty()) {
           return this;
    +    } else if (s.isString() || needsStringConversion(s)) {
    +      checkMutable();
    +
    +      if (s.getScope() == getScope()) { // NOPMD
    +        // don't double count
    +        s.updateScope(StringHolderScope.NONE);
    +      }
    +      addSequence(s.toString());
    +
    +      return this;
         }
     
    -    if (!s.isEffectivelyImmutable()) {
    -      cannotUseCache = true;
    +    if (!s.isEffectivelyImmutable()) {
    +      cannotUseCache = true;
         }
     
    -    uncache();
    -    sequence.add(s);
    -    resizeBy(s.getMinimumLength(), s.getExpectedLength());
    +    resizeBy(s.getMinimumLength(), s.getExpectedLength());
    +
    +    uncache();
    +    sequence.add(s);
     
    -    return this;
    +    return this;
       }
     
       /**
    @@ -160,10 +171,13 @@
        */
       @Override
       public StringHolderSequence append(CharSequence s) {
    -    if (!CharSequenceReleaseShim.isEmpty(s)) {
    -      addSequence(CommonStrings.lookupIfPossible(String.valueOf(s)));
    +    if (s instanceof StringHolder) {
    +      return append((StringHolder) s);
         }
    -    return this;
    +    if (!CharSequenceReleaseShim.isEmpty(s)) {
    +      addSequence(CommonStrings.lookupIfPossible(String.valueOf(s)));
    +    }
    +    return this;
       }
     
       /**
    @@ -173,12 +187,12 @@
        * @return This instance.
        */
       public StringHolderSequence appendAll(Object... objects) {
    -    Objects.requireNonNull(objects);
    +    Objects.requireNonNull(objects);
     
    -    for (Object obj : objects) {
    -      append(obj);
    +    for (Object obj : objects) {
    +      append(obj);
         }
    -    return this;
    +    return this;
       }
     
       /**
    @@ -188,12 +202,12 @@
        * @return This instance.
        */
       public StringHolderSequence appendAll(Iterable<Object> objects) {
    -    Objects.requireNonNull(objects);
    +    Objects.requireNonNull(objects);
     
    -    for (Object obj : objects) {
    -      append(obj);
    -    }
    -    return this;
    +    for (Object obj : objects) {
    +      append(obj);
    +    }
    +    return this;
       }
     
       /**
    @@ -205,79 +219,79 @@
        * @return This instance.
        */
       public StringHolderSequence append(Object s) {
    -    if (s instanceof StringHolder) {
    -      return append((StringHolder) s);
    -    } else if (s instanceof String) {
    -      return append((String) s);
    -    } else if (s instanceof CharSequence) {
    -      return append((CharSequence) s);
    +    if (s instanceof StringHolder) {
    +      return append((StringHolder) s);
    +    } else if (s instanceof String) {
    +      return append((String) s);
    +    } else if (s instanceof CharSequence) {
    +      return append((CharSequence) s);
         } else {
    -      return append(String.valueOf(s));
    +      return append(String.valueOf(s));
         }
       }
     
       @Override
       protected int appendToAndReturnLengthDefaultImpl(Appendable out) throws IOException {
    -    int len = 0;
    -    for (Object obj : sequence) {
    -      if (obj instanceof StringHolder) {
    -        StringHolder holder = (StringHolder) obj;
    -        if (holder.isKnownEmpty()) {
    -          continue;
    +    int len = 0;
    +    for (Object obj : sequence) {
    +      if (obj instanceof StringHolder) {
    +        StringHolder holder = (StringHolder) obj;
    +        if (holder.isKnownEmpty()) {
    +          continue;
             }
     
    -        len += holder.appendToAndReturnLength(out);
    -      } else {
    -        String s = (String) obj;
    -        len += s.length();
    -        out.append(s);
    +        len += holder.appendToAndReturnLength(out);
    +      } else {
    +        String s = (String) obj;
    +        len += s.length();
    +        out.append(s);
           }
    -    }
    -    return len;
    +    }
    +    return len;
       }
     
       @Override
       protected int appendToAndReturnLengthImpl(StringBuilder out) {
    -    out.ensureCapacity(out.length() + getMinimumLength());
    -
    -    int len = 0;
    -    for (Object obj : sequence) {
    -      if (obj instanceof StringHolder) {
    -        StringHolder holder = (StringHolder) obj;
    -        if (holder.isKnownEmpty()) {
    -          continue;
    +    out.ensureCapacity(out.length() + getMinimumLength());
    +
    +    int len = 0;
    +    for (Object obj : sequence) {
    +      if (obj instanceof StringHolder) {
    +        StringHolder holder = (StringHolder) obj;
    +        if (holder.isKnownEmpty()) {
    +          continue;
             }
     
    -        len += holder.appendToAndReturnLength(out);
    -      } else {
    -        String s = (String) obj;
    -        len += s.length();
    -        out.append(s);
    +        len += holder.appendToAndReturnLength(out);
    +      } else {
    +        String s = (String) obj;
    +        len += s.length();
    +        out.append(s);
           }
    -    }
    -    return len;
    +    }
    +    return len;
       }
     
       @Override
       protected int appendToAndReturnLengthImpl(StringBuffer out) {
    -    out.ensureCapacity(out.length() + getMinimumLength());
    -
    -    int len = 0;
    -    for (Object obj : sequence) {
    -      if (obj instanceof StringHolder) {
    -        StringHolder holder = (StringHolder) obj;
    -        if (holder.isKnownEmpty()) {
    -          continue;
    +    out.ensureCapacity(out.length() + getMinimumLength());
    +
    +    int len = 0;
    +    for (Object obj : sequence) {
    +      if (obj instanceof StringHolder) {
    +        StringHolder holder = (StringHolder) obj;
    +        if (holder.isKnownEmpty()) {
    +          continue;
             }
     
    -        len += holder.appendToAndReturnLength(out);
    -      } else {
    -        String s = (String) obj;
    -        len += s.length();
    -        out.append(s);
    +        len += holder.appendToAndReturnLength(out);
    +      } else {
    +        String s = (String) obj;
    +        len += s.length();
    +        out.append(s);
           }
    -    }
    -    return len;
    +    }
    +    return len;
       }
     
       /**
    @@ -288,136 +302,136 @@
        * @return The minimum for the estimated length.
        */
       final int appendToFlatList(List<Object> flatList) {
    -    int len = 0;
    -    for (Object obj : sequence) {
    -      if (obj instanceof StringHolder) {
    -        StringHolder holder = (StringHolder) obj;
    -        if (holder.isKnownEmpty()) {
    -          continue;
    +    int len = 0;
    +    for (Object obj : sequence) {
    +      if (obj instanceof StringHolder) {
    +        StringHolder holder = (StringHolder) obj;
    +        if (holder.isKnownEmpty()) {
    +          continue;
             }
     
    -        if (obj instanceof StringHolderSequence) {
    -          len += ((StringHolderSequence) obj).appendToFlatList(flatList);
    +        if (obj instanceof StringHolderSequence) {
    +          len += ((StringHolderSequence) obj).appendToFlatList(flatList);
             } else {
    -          len += holder.getMinimumLength();
    -          flatList.add(obj);
    +          len += holder.getMinimumLength();
    +          flatList.add(obj);
             }
    -      } else {
    -        String s = (String) obj;
    -        len += s.length();
    -        flatList.add(s);
    +      } else {
    +        String s = (String) obj;
    +        len += s.length();
    +        flatList.add(s);
           }
    -    }
    -    return len;
    +    }
    +    return len;
       }
     
       @Override
       protected String getString() {
    -    StringBuilder sb = new StringBuilder(Math.max(16, getExpectedLength()));
    -    int len = appendToAndReturnLength(sb);
    +    StringBuilder sb = new StringBuilder(Math.max(16, getExpectedLength()));
    +    int len = appendToAndReturnLength(sb);
     
    -    uncache();
    +    uncache();
     
         final String s;
    -    sequence.clear();
    -    if (len == 0) {
    -      s = "";
    +    sequence.clear();
    +    if (len == 0) {
    +      s = "";
         } else {
    -      s = sb.toString();
    -      sequence.add(s);
    +      s = sb.toString();
    +      sequence.add(s);
         }
     
    -    return s;
    +    return s;
       }
     
       @Override
       protected Reader newReader() {
    -    if (sequence.isEmpty()) {
    -      return new StringReader("");
    +    if (sequence.isEmpty()) {
    +      return new StringReader("");
         }
     
    -    final List<Object> flatList = new ArrayList<>(sequence.size());
    -    int len = appendToFlatList(flatList);
    -    if (len == 0) {
    -      return new StringReader("");
    +    final List<Object> flatList = new ArrayList<>(sequence.size());
    +    int len = appendToFlatList(flatList);
    +    if (len == 0) {
    +      return new StringReader("");
         }
     
    -    return new StringSequenceReader(flatList.iterator());
    +    return new StringSequenceReader(flatList.iterator());
       }
     
       private static final class StringSequenceReader extends Reader {
    -    private boolean closed = false;
    +    private boolean closed = false;
     
    -    private String currentString = null;
    +    private String currentString = null;
         private int currentPos;
     
         private final Iterator<Object> flatObjectIterator;
     
         private StringSequenceReader(Iterator<Object> flatObjectIterator) {
    -      super();
    -      this.flatObjectIterator = flatObjectIterator;
    -    }
    +      super();
    +      this.flatObjectIterator = flatObjectIterator;
    +    }
     
         private void ensureOpen() throws IOException {
    -      if (closed) {
    -        throw new IOException("Stream closed");
    +      if (closed) {
    +        throw new IOException("Stream closed");
           }
    -    }
    +    }
     
         @Override
         public boolean ready() throws IOException {
    -      ensureOpen();
    -      return true;
    +      ensureOpen();
    +      return true;
         }
     
         @Override
         public void close() throws IOException {
    -      closed = true;
    -    }
    +      closed = true;
    +    }
     
         int ensureObject() {
    -      if (currentString != null) {
    -        int len = currentString.length();
    -        if (currentPos >= len) {
    -          currentString = null;
    -          return ensureObject();
    +      if (currentString != null) {
    +        int len = currentString.length();
    +        if (currentPos >= len) {
    +          currentString = null;
    +          return ensureObject();
             } else {
    -          return len;
    +          return len;
             }
           } else {
    -        while (flatObjectIterator.hasNext()) {
    -          currentString = flatObjectIterator.next().toString();
    -          currentPos = 0;
    -          int len = currentString.length();
    -          if (len > 0) {
    -            return len;
    +        while (flatObjectIterator.hasNext()) {
    +          currentString = flatObjectIterator.next().toString();
    +          currentPos = 0;
    +          int len = currentString.length();
    +          if (len > 0) {
    +            return len;
               }
    -        }
    -        currentString = null;
    -        return 0;
    +        }
    +        currentString = null;
    +        return 0;
           }
         }
     
         @Override
         public int read(char[] cbuf, int off, int len) throws IOException {
    -      int currentLen = ensureObject();
    -      if (currentLen == 0) {
    -        return -1;
    +      int currentLen = ensureObject();
    +      if (currentLen == 0) {
    +        return -1;
           }
     
    -      len = Math.min(currentLen - currentPos, Math.min(cbuf.length - off, len));
    -      currentString.getChars(currentPos, currentPos + len, cbuf, off);
    -      currentPos += len;
    -      return len;
    +      len = Math.min(currentLen - currentPos, Math.min(cbuf.length - off, len));
    +      currentString.getChars(currentPos, currentPos + len, cbuf, off);
    +      currentPos += len;
    +      return len;
         }
     
         @Override
         public int read() throws IOException {
    -      int currentLen = ensureObject();
    -      if (currentLen == 0) {
    -        return -1;
    +      int currentLen = ensureObject();
    +      if (currentLen == 0) {
    +        return -1;
           }
    -      return currentString.charAt(currentPos++);
    +      return currentString.charAt(currentPos++);
         }
       }
     
    @@ -428,7 +442,7 @@
        * @return The number of appends.
        */
       public int numberOfAppends() {
    -    return sequence.size();
    +    return sequence.size();
       }
     
       /**
    @@ -443,152 +457,183 @@
        */
       @Override
       public Object asContent() {
    -    if (isString()) {
    -      return toString();
    +    if (isString()) {
    +      return toString();
         }
    -    if (sequence.isEmpty()) {
    -      return "";
    -    } else if (sequence.size() == 1) {
    -      Object obj = sequence.get(0);
    -      if (obj instanceof String) {
    -        return obj;
    +    if (sequence.isEmpty()) {
    +      return "";
    +    } else if (sequence.size() == 1) {
    +      Object obj = sequence.get(0);
    +      if (obj instanceof String) {
    +        return obj;
           }
    -      StringHolder sc = (StringHolder) obj;
    -      return sc.asContent();
    +      StringHolder sc = (StringHolder) obj;
    +      return sc.asContent();
         } else {
    -      return this;
    +      return this;
         }
       }
     
       @Override
       @SuppressWarnings("PMD.CognitiveComplexity")
       public char charAt(int index) {
    -    int offset = 0;
    +    int offset = 0;
     
    -    if (index < 0) {
    -      throw new IndexOutOfBoundsException();
    +    if (index < 0) {
    +      throw new IndexOutOfBoundsException();
         }
     
    -    for (Object obj : sequence) {
    +    for (Object obj : sequence) {
           final int len;
     
    -      if (obj instanceof StringHolder) {
    -        StringHolder sh = (StringHolder) obj;
    -        if (sh.isEmpty()) {
    -          len = 0;
    +      if (obj instanceof StringHolder) {
    +        StringHolder sh = (StringHolder) obj;
    +        if (sh.isEmpty()) {
    +          len = 0;
             } else {
    -          if (index == offset) {
    -            return sh.charAt(index - offset);
    +          if (index == offset) {
    +            return sh.charAt(index - offset);
               }
    -          len = sh.length();
    -          if (index < offset + len) {
    -            return sh.charAt(index - offset);
    +          len = sh.length();
    +          if (index < offset + len) {
    +            return sh.charAt(index - offset);
               }
             }
    -      } else {
    -        String s = (String) obj;
    -        len = s.length();
    -        if (index < offset + len) {
    -          return s.charAt(index - offset);
    +      } else {
    +        String s = (String) obj;
    +        len = s.length();
    +        if (index < offset + len) {
    +          return s.charAt(index - offset);
             }
           }
    -      offset += len;
    -    }
    +      offset += len;
    +    }
     
    -    throw new IndexOutOfBoundsException();
    +    throw new IndexOutOfBoundsException();
       }
     
       @Override
       public int hashCode() { // NOPMD.OverrideBothEqualsAndHashcode
    -    if (cachedHashCode == null || cannotUseCache) {
    -      cachedHashCode = updateHashCode(0);
    +    if (cachedHashCode == null || cannotUseCache) {
    +      cachedHashCode = updateHashCode(0);
         }
    -    return cachedHashCode;
    +    return cachedHashCode;
       }
     
       @Override
       protected int updateHashCode(int h) {
    -    if (isString()) {
    -      return super.updateHashCode(h);
    +    if (isString()) {
    +      return super.updateHashCode(h);
         }
     
    -    for (CharSequence obj : sequence) {
    -      h = updateHashCode(obj, h);
    -    }
    +    for (CharSequence obj : sequence) {
    +      h = updateHashCode(obj, h);
    +    }
     
    -    return h;
    +    return h;
       }
     
       private static int updateHashCode(Object obj, int h) {
    -    if (obj instanceof StringHolder) {
    -      StringHolder sh = (StringHolder) obj;
    -      if (!sh.isKnownEmpty()) {
    -        h = sh.updateHashCode(h);
    +    if (obj instanceof AbstractStringHolder) {
    +      AbstractStringHolder sh = (AbstractStringHolder) obj;
    +      if (!sh.isKnownEmpty()) {
    +        h = sh.updateHashCode(h);
           }
    -    } else {
    -      CharSequence s = (CharSequence) obj;
    -      if (h == 0) {
    -        return s.hashCode();
    +    } else {
    +      CharSequence s = (CharSequence) obj;
    +      if (h == 0) {
    +        return s.hashCode();
           }
    -      int len = s.length();
    -      for (int i = 0; i < len; i++) {
    -        h = 31 * h + s.charAt(i);
    +      int len = s.length();
    +      for (int i = 0; i < len; i++) {
    +        h = 31 * h + s.charAt(i);
           }
         }
     
    -    return h;
    +    return h;
       }
     
       @Override
       protected boolean checkEquals(StringHolder sh) {
    -    if (sh instanceof StringHolderSequence) {
    -      StringHolderSequence shs = (StringHolderSequence) sh;
    -      if (sequence.equals(shs.sequence)) {
    -        return true;
    +    if (sh instanceof StringHolderSequence) {
    +      StringHolderSequence shs = (StringHolderSequence) sh;
    +      if (sequence.equals(shs.sequence)) {
    +        return true;
           }
         }
     
    -    return super.checkEquals(sh);
    +    return super.checkEquals(sh);
       }
     
       @Override
       protected void uncache() {
    -    super.uncache();
    -    cachedHashCode = null;
    -    cachedLength = null;
    -  }
    +    super.uncache();
    +    cachedHashCode = null;
    +    cachedLength = null;
    +  }
     
       @Override
       protected int computeLength() {
    -    Integer length = cachedLength;
    -    if (length == null || cannotUseCache) {
    -      int len = 0;
    -      for (CharSequence obj : sequence) {
    -        len += obj.length();
    -      }
    -      cachedLength = length = len;
    +    Integer length = cachedLength;
    +    if (length == null || cannotUseCache) {
    +      int len = 0;
    +      for (CharSequence obj : sequence) {
    +        len += obj.length();
    +      }
    +      cachedLength = length = len;
         }
    -    return length;
    +    return length;
       }
     
       @Override
       public boolean isEffectivelyImmutable() {
    -    return immutable;
    +    return immutable;
       }
     
       @Override
       public void markEffectivelyImmutable() {
    -    if (immutable) {
    -      return;
    +    if (immutable) {
    +      return;
         }
    -    for (Object seq : sequence) {
    -      if (!(seq instanceof StringHolder)) {
    -        continue;
    +    for (Object seq : sequence) {
    +      if (!(seq instanceof StringHolder)) {
    +        continue;
    +      }
    +      StringHolder sh = (StringHolder) seq;
    +      sh.markEffectivelyImmutable();
    +    }
    +    immutable = true;
    +  }
    +
    +  @Override
    +  public boolean isCacheable() {
    +    for (Object seq : sequence) {
    +      if (!(seq instanceof StringHolder)) {
    +        continue;
           }
    -      StringHolder sh = (StringHolder) seq;
    -      sh.markEffectivelyImmutable();
    -    }
    -    immutable = true;
    -  }
    +      StringHolder sh = (StringHolder) seq;
    +      if (!sh.isCacheable()) {
    +        return false;
    +      }
    +    }
    +    return true;
    +  }
    +
    +  @Override
    +  public StringHolderSequence clone() {
    +    StringHolderSequence clone = (StringHolderSequence) super.clone();
    +
    +    List<CharSequence> seq = new ArrayList<>();
    +    for (int i = 0, n = sequence.size(); i < n; i++) {
    +      CharSequence cs = sequence.get(i);
    +      if (cs instanceof StringHolder) {
    +        cs = ((StringHolder) cs).clone();
    +      }
    +      seq.add(cs);
    +    }
    +    clone.sequence = seq;
    +
    +    return clone;
    +  }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringOnlySequence.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringOnlySequence.html index 28d29bd..e267ab0 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringOnlySequence.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringOnlySequence.html @@ -1 +1 @@ -StringOnlySequence

    StringOnlySequence

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 10100%0 of 0n/a030503
    StringOnlySequence()4100%n/a010201
    StringOnlySequence(int)4100%n/a010201
    needsStringConversion(StringHolder)2100%n/a010101
    \ No newline at end of file +StringOnlySequence

    StringOnlySequence

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 14100%0 of 0n/a040604
    StringOnlySequence()4100%n/a010201
    StringOnlySequence(int)4100%n/a010201
    clone()4100%n/a010101
    needsStringConversion(StringHolder)2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringOnlySequence.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringOnlySequence.java.html index 6389020..09d1d29 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringOnlySequence.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/StringOnlySequence.java.html @@ -1,7 +1,7 @@ StringOnlySequence.java

    StringOnlySequence.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -44,5 +44,10 @@
       protected boolean needsStringConversion(StringHolder sh) {
         return true;
       }
    +
    +  @Override
    +  public StringOnlySequence clone() {
    +    return (StringOnlySequence) super.clone();
    +  }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder$1.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder$1.html index 4ff16a7..d54d255 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder$1.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder$1.html @@ -1 +1 @@ -SuppliedStringHolder.new IOExceptionHandler() {...}

    SuppliedStringHolder.new IOExceptionHandler() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 3100%0 of 0n/a010101
    {...}3100%n/a010101
    \ No newline at end of file +SuppliedStringHolder.new IOExceptionHandler() {...}

    SuppliedStringHolder.new IOExceptionHandler() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 3100%0 of 0n/a010101
    {...}3100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder.html index 6130283..964f15f 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder.html @@ -1 +1 @@ -SuppliedStringHolder

    SuppliedStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 376100%0 of 56100%0430109014
    getSuppliedObject()96100%12100%0802601
    appendToAndReturnLengthDefaultImpl(Appendable)35100%6100%0401101
    appendToAndReturnLengthImpl(StringBuilder)35100%6100%0401101
    appendToAndReturnLengthImpl(StringBuffer)35100%6100%0401101
    appendToAndReturnLengthImpl(Writer)35100%6100%0401101
    SuppliedStringHolder(int, int, IOSupplier, IOExceptionHandler)20100%n/a010601
    getString()19100%4100%030401
    asContent()18100%4100%030601
    charAt(int)18100%4100%030501
    isLengthKnown()18100%4100%030601
    newReader()15100%2100%020501
    SuppliedStringHolder(int, int, Supplier)14100%n/a010201
    computeLength()13100%2100%020401
    static {...}5100%n/a010101
    \ No newline at end of file +SuppliedStringHolder

    SuppliedStringHolder

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 390100%0 of 56100%0440112015
    getSuppliedObject()96100%12100%0802601
    appendToAndReturnLengthDefaultImpl(Appendable)35100%6100%0401101
    appendToAndReturnLengthImpl(StringBuilder)35100%6100%0401101
    appendToAndReturnLengthImpl(StringBuffer)35100%6100%0401101
    appendToAndReturnLengthImpl(Writer)35100%6100%0401101
    SuppliedStringHolder(int, int, IOSupplier, IOExceptionHandler)20100%n/a010601
    getString()19100%4100%030401
    asContent()18100%4100%030601
    charAt(int)18100%4100%030501
    isLengthKnown()18100%4100%030601
    newReader()15100%2100%020501
    SuppliedStringHolder(int, int, Supplier)14100%n/a010201
    clone()14100%n/a010301
    computeLength()13100%2100%020401
    static {...}5100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder.java.html index ae1e297..d8d5343 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/SuppliedStringHolder.java.html @@ -1,7 +1,7 @@ SuppliedStringHolder.java

    SuppliedStringHolder.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -29,222 +29,228 @@
     import com.kohlschutter.annotations.compiletime.ExcludeFromCodeCoverageGeneratedReport;
     import com.kohlschutter.stringhold.IOExceptionHandler.ExceptionResponse;
     
    -class SuppliedStringHolder extends StringHolder {
    +class SuppliedStringHolder extends AbstractStringHolder {
     
       private static final IOExceptionHandler UNREACHABLE_EXCEPTION_HANDLER = new IOExceptionHandler() {
     
         @Override
    -    @ExcludeFromCodeCoverageGeneratedReport
    +    @ExcludeFromCodeCoverageGeneratedReport(reason = "unreachable")
         public ExceptionResponse onException(IOException exception) {
    -      // This could should never be reached
           return ExceptionResponse.ILLEGAL_STATE;
         }
       };
     
       private final IOSupplier<?> supplier;
       private final IOExceptionHandler onError;
    -  private final AtomicBoolean supplied = new AtomicBoolean(false);
    -  private Object object = null;
    +  private AtomicBoolean supplied = new AtomicBoolean(false);
    +  private Object object = null;
     
       SuppliedStringHolder(int minLen, int expLen, Supplier<?> supplier) {
    -    this(minLen, expLen, Objects.requireNonNull(supplier, "supplier")::get,
    +    this(minLen, expLen, Objects.requireNonNull(supplier, "supplier")::get,
             UNREACHABLE_EXCEPTION_HANDLER);
    -  }
    +  }
     
       SuppliedStringHolder(int minLen, int expLen, IOSupplier<?> supplier,
           IOExceptionHandler exceptionHandler) {
    -    super(minLen, expLen);
    -    this.supplier = supplier;
    -    this.onError = exceptionHandler;
    -  }
    +    super(minLen, expLen);
    +    this.supplier = supplier;
    +    this.onError = exceptionHandler;
    +  }
     
       private Object getSuppliedObject() {
    -    if (!supplied.compareAndSet(false, true)) {
    -      return object;
    +    if (!supplied.compareAndSet(false, true)) {
    +      return object;
         }
     
         try {
    -      object = supplier.get();
    -    } catch (IOException e) {
    +      object = supplier.get();
    +    } catch (IOException e) {
     
    -      ExceptionResponse resp = onError.onException(e);
    -      if (resp == ExceptionResponse.ILLEGAL_STATE) {
    -        throw new IllegalStateException("Unexpected IOException", e);
    +      ExceptionResponse resp = onError.onException(e);
    +      if (resp == ExceptionResponse.ILLEGAL_STATE) {
    +        throw new IllegalStateException("Unexpected IOException", e);
           }
     
    -      setError();
    +      setError();
     
    -      switch (onError.onException(e)) {
    +      switch (onError.onException(e)) {
             case FLUSH:
    -          object = "";
    -          break;
    +          object = "";
    +          break;
             case EXCEPTION_MESSAGE:
    -          object = e.toString();
    -          break;
    +          object = e.toString();
    +          break;
             case STACKTRACE:
    -          StringWriter sw = new StringWriter();
    -          e.printStackTrace(new PrintWriter(sw));
    -          object = sw.toString();
    -          break;
    +          StringWriter sw = new StringWriter();
    +          e.printStackTrace(new PrintWriter(sw));
    +          object = sw.toString();
    +          break;
             default:
    -          object = "";
    +          object = "";
               break;
           }
    -    }
    -    if (object instanceof StringHolder) {
    -      StringHolder sh = (StringHolder) object;
    -      resizeTo(sh.getMinimumLength(), sh.getExpectedLength());
    -      object = sh.asContent();
    +    }
    +    if (object instanceof StringHolder) {
    +      StringHolder sh = (StringHolder) object;
    +      resizeTo(sh.getMinimumLength(), sh.getExpectedLength());
    +      object = sh.asContent();
         }
     
    -    if (object instanceof String) {
    -      toString();
    +    if (object instanceof String) {
    +      toString();
         }
     
    -    return object;
    +    return object;
       }
     
       @Override
       public Object asContent() {
    -    if (isString()) {
    -      return toString();
    +    if (isString()) {
    +      return toString();
         }
    -    Object o = object;
    -    if (o instanceof StringHolder) {
    -      return ((StringHolder) o).asContent();
    +    Object o = object;
    +    if (o instanceof StringHolder) {
    +      return ((StringHolder) o).asContent();
         } else {
    -      return this;
    +      return this;
         }
       }
     
       @Override
       public char charAt(int index) {
    -    if (!isString()) {
    -      Object sup = getSuppliedObject();
    -      if (sup instanceof CharSequence) {
    -        return ((CharSequence) sup).charAt(index);
    +    if (!isString()) {
    +      Object sup = getSuppliedObject();
    +      if (sup instanceof CharSequence) {
    +        return ((CharSequence) sup).charAt(index);
           }
         }
    -    return super.charAt(index);
    +    return super.charAt(index);
       }
     
       @Override
       protected Reader newReader() throws IOException {
    -    Object obj = getSuppliedObject();
    -    if (obj instanceof StringHolder) {
    -      StringHolder sh = (StringHolder) obj;
    -      return sh.newReader();
    +    Object obj = getSuppliedObject();
    +    if (obj instanceof StringHolder) {
    +      StringHolder sh = (StringHolder) obj;
    +      return sh.toReader();
         } else {
    -      return super.newReader();
    +      return super.newReader();
         }
       }
     
       @Override
       protected int appendToAndReturnLengthDefaultImpl(Appendable out) throws IOException {
    -    Object obj = getSuppliedObject();
    -    if (obj instanceof StringHolder) {
    -      StringHolder sh = (StringHolder) obj;
    -      return sh.appendToAndReturnLengthDefaultImpl(out);
    -    } else if (obj instanceof CharSequence) {
    -      CharSequence cs = (CharSequence) obj;
    -      if (CharSequenceReleaseShim.isEmpty(cs)) {
    -        return 0;
    +    Object obj = getSuppliedObject();
    +    if (obj instanceof StringHolder) {
    +      StringHolder sh = (StringHolder) obj;
    +      return sh.appendToAndReturnLength(out);
    +    } else if (obj instanceof CharSequence) {
    +      CharSequence cs = (CharSequence) obj;
    +      if (CharSequenceReleaseShim.isEmpty(cs)) {
    +        return 0;
           } else {
    -        out.append(cs);
    -        return cs.length();
    +        out.append(cs);
    +        return cs.length();
           }
         } else {
    -      return super.appendToAndReturnLengthDefaultImpl(out);
    +      return super.appendToAndReturnLengthDefaultImpl(out);
         }
       }
     
       @Override
       protected int appendToAndReturnLengthImpl(StringBuilder out) {
    -    Object obj = getSuppliedObject();
    -    if (obj instanceof StringHolder) {
    -      StringHolder sh = (StringHolder) obj;
    -      return sh.appendToAndReturnLengthImpl(out);
    -    } else if (obj instanceof CharSequence) {
    -      CharSequence cs = (CharSequence) obj;
    -      if (CharSequenceReleaseShim.isEmpty(cs)) {
    -        return 0;
    +    Object obj = getSuppliedObject();
    +    if (obj instanceof StringHolder) {
    +      StringHolder sh = (StringHolder) obj;
    +      return sh.appendToAndReturnLength(out);
    +    } else if (obj instanceof CharSequence) {
    +      CharSequence cs = (CharSequence) obj;
    +      if (CharSequenceReleaseShim.isEmpty(cs)) {
    +        return 0;
           } else {
    -        out.append(cs);
    -        return cs.length();
    +        out.append(cs);
    +        return cs.length();
           }
         } else {
    -      return super.appendToAndReturnLengthImpl(out);
    +      return super.appendToAndReturnLengthImpl(out);
         }
       }
     
       @Override
       protected int appendToAndReturnLengthImpl(StringBuffer out) {
    -    Object obj = getSuppliedObject();
    -    if (obj instanceof StringHolder) {
    -      StringHolder sh = (StringHolder) obj;
    -      return sh.appendToAndReturnLengthImpl(out);
    -    } else if (obj instanceof CharSequence) {
    -      CharSequence cs = (CharSequence) obj;
    -      if (CharSequenceReleaseShim.isEmpty(cs)) {
    -        return 0;
    +    Object obj = getSuppliedObject();
    +    if (obj instanceof StringHolder) {
    +      StringHolder sh = (StringHolder) obj;
    +      return sh.appendToAndReturnLength(out);
    +    } else if (obj instanceof CharSequence) {
    +      CharSequence cs = (CharSequence) obj;
    +      if (CharSequenceReleaseShim.isEmpty(cs)) {
    +        return 0;
           } else {
    -        out.append(cs);
    -        return cs.length();
    +        out.append(cs);
    +        return cs.length();
           }
         } else {
    -      return super.appendToAndReturnLengthImpl(out);
    +      return super.appendToAndReturnLengthImpl(out);
         }
       }
     
       @Override
       protected int appendToAndReturnLengthImpl(Writer out) throws IOException {
    -    Object obj = getSuppliedObject();
    -    if (obj instanceof StringHolder) {
    -      StringHolder sh = (StringHolder) obj;
    -      return sh.appendToAndReturnLengthImpl(out);
    -    } else if (obj instanceof CharSequence) {
    -      CharSequence cs = (CharSequence) obj;
    -      if (CharSequenceReleaseShim.isEmpty(cs)) {
    -        return 0;
    +    Object obj = getSuppliedObject();
    +    if (obj instanceof StringHolder) {
    +      StringHolder sh = (StringHolder) obj;
    +      return sh.appendToAndReturnLength(out);
    +    } else if (obj instanceof CharSequence) {
    +      CharSequence cs = (CharSequence) obj;
    +      if (CharSequenceReleaseShim.isEmpty(cs)) {
    +        return 0;
           } else {
    -        out.append(cs);
    -        return cs.length();
    +        out.append(cs);
    +        return cs.length();
           }
         } else {
    -      return super.appendToAndReturnLengthImpl(out);
    +      return super.appendToAndReturnLengthImpl(out);
         }
       }
     
       @Override
       protected int computeLength() {
    -    Object obj = getSuppliedObject();
    -    if (obj instanceof CharSequence) {
    -      return ((CharSequence) obj).length();
    +    Object obj = getSuppliedObject();
    +    if (obj instanceof CharSequence) {
    +      return ((CharSequence) obj).length();
         }
    -    return super.computeLength();
    +    return super.computeLength();
       }
     
       @Override
       public boolean isLengthKnown() {
    -    if (super.isLengthKnown()) {
    -      return true;
    +    if (super.isLengthKnown()) {
    +      return true;
         }
    -    Object obj = object;
    -    if (obj instanceof StringHolder) {
    -      return ((StringHolder) obj).isLengthKnown();
    +    Object obj = object;
    +    if (obj instanceof StringHolder) {
    +      return ((StringHolder) obj).isLengthKnown();
         } else {
    -      return (obj instanceof CharSequence);
    +      return (obj instanceof CharSequence);
         }
       }
     
       @Override
       protected String getString() {
    -    Object obj = object == null ? getSuppliedObject() : object;
    -    if (obj instanceof CharSequence) {
    -      return ((CharSequence) obj).toString();
    +    Object obj = object == null ? getSuppliedObject() : object;
    +    if (obj instanceof CharSequence) {
    +      return ((CharSequence) obj).toString();
         } else {
    -      return String.valueOf(obj);
    +      return String.valueOf(obj);
         }
       }
    +
    +  @Override
    +  public SuppliedStringHolder clone() {
    +    SuppliedStringHolder clone = (SuppliedStringHolder) super.clone();
    +    clone.supplied = new AtomicBoolean(supplied.get());
    +    return clone;
    +  }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/index.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/index.html index 3d1aa33..7a2e452 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/index.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/index.html @@ -1 +1 @@ -com.kohlschutter.stringhold

    com.kohlschutter.stringhold

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 4,238100%0 of 538100%049801,1120226025
    StringHolder1,468100%253100%0203042307601
    StringHolderSequence811100%120100%090022203001
    SuppliedStringHolder376100%56100%043010901401
    CommonStrings366100%18100%0130400401
    ReaderStringHolder302100%21100%0210870901
    AsyncStringHolderSequence267100%28100%02806401401
    StringHolderSequence.StringSequenceReader131100%14100%0140380701
    LimitedStringHolderScope128100%8100%01502901101
    LazyInitReader108100%4100%01902501701
    LazyInitReader.KickstartPlaceholder68100%n/a01101601101
    FixedLengthSuppliedStringHolder41100%100%060120501
    CachedIOSupplier39100%4100%040120201
    IOExceptionHandler.ExceptionResponse33100%n/a01060101
    HasLength26100%8100%08060401
    CharSequenceReleaseShim13100%100%04030301
    LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim100%n/a02020201
    SimpleStringHolder100%n/a02040201
    StringOnlySequence100%n/a03050301
    StringHolderScope100%n/a04040401
    LazyInitReaderReleaseShim100%n/a02020201
    StringHolderScope.new StringHolderScope() {...}100%n/a01010101
    HasMinimumLength100%n/a01010101
    SuppliedStringHolder.new IOExceptionHandler() {...}100%n/a01010101
    HasKnownLength100%n/a01010101
    HasExpectedLength100%n/a01010101
    \ No newline at end of file +com.kohlschutter.stringhold

    com.kohlschutter.stringhold

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 4,832100%0 of 650100%060701,2830279028
    AbstractStringHolder1,216100%212100%0166036506001
    StringHolderSequence894100%134100%099024303201
    StringHolder434100%79100%071010403101
    SuppliedStringHolder390100%56100%044011201501
    CommonStrings366100%18100%0130400401
    ConditionalStringHolder304100%60100%06209803201
    ReaderStringHolder302100%21100%0210870901
    AsyncStringHolderSequence267100%28100%02806401401
    StringHolderSequence.StringSequenceReader131100%14100%0140380701
    LimitedStringHolderScope130100%8100%01502901101
    LazyInitReader108100%4100%01902501701
    LazyInitReader.KickstartPlaceholder68100%n/a01101601101
    FixedLengthSuppliedStringHolder41100%2100%060120501
    CachedIOSupplier39100%4100%040120201
    IOExceptionHandler.ExceptionResponse33100%n/a01060101
    HasLength26100%8100%08060401
    StringOnlySequence14100%n/a04060401
    CharSequenceReleaseShim13100%2100%04030301
    LazyInitReaderReleaseShim.KickstartPlaceholderReleaseShim12100%n/a02020201
    SimpleStringHolder100%n/a02040201
    StringHolderScope100%n/a04040401
    LazyInitReaderReleaseShim100%n/a02020201
    ReaderShim100%n/a02020201
    StringHolderScope.new StringHolderScope() {...}100%n/a01010101
    HasMinimumLength100%n/a01010101
    SuppliedStringHolder.new IOExceptionHandler() {...}100%n/a01010101
    HasKnownLength100%n/a01010101
    HasExpectedLength100%n/a01010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/index.source.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/index.source.html index 81a2395..7b925aa 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/index.source.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/com.kohlschutter.stringhold/index.source.html @@ -1 +1 @@ -com.kohlschutter.stringhold

    com.kohlschutter.stringhold

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 4,238100%0 of 538100%049801,1120226025
    StringHolder.java1,468100%253100%0203042307601
    StringHolderSequence.java942100%134100%0104026003702
    SuppliedStringHolder.java379100%56100%044010901502
    CommonStrings.java366100%18100%0130400401
    ReaderStringHolder.java302100%21100%0210870901
    AsyncStringHolderSequence.java267100%28100%02806401401
    LazyInitReader.java176100%4100%03004102802
    LimitedStringHolderScope.java128100%8100%01502901101
    FixedLengthSuppliedStringHolder.java41100%100%060120501
    CachedIOSupplier.java39100%4100%040120201
    IOExceptionHandler.java33100%n/a01060101
    HasLength.java26100%8100%08060401
    LazyInitReaderReleaseShim.java20100%n/a04040402
    CharSequenceReleaseShim.java13100%100%04030301
    StringHolderScope.java100%n/a05040502
    StringOnlySequence.java100%n/a03050301
    SimpleStringHolder.java100%n/a02040201
    HasMinimumLength.java100%n/a01010101
    HasExpectedLength.java100%n/a01010101
    HasKnownLength.java100%n/a01010101
    \ No newline at end of file +com.kohlschutter.stringhold

    com.kohlschutter.stringhold

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 4,832100%0 of 650100%060701,2830279028
    AbstractStringHolder.java1,216100%212100%0166036506001
    StringHolderSequence.java1,025100%148100%0113028103902
    StringHolder.java434100%79100%071010403101
    SuppliedStringHolder.java393100%56100%045011201602
    CommonStrings.java366100%18100%0130400401
    ConditionalStringHolder.java304100%60100%06209803201
    ReaderStringHolder.java302100%21100%0210870901
    AsyncStringHolderSequence.java267100%28100%02806401401
    LazyInitReader.java176100%4100%03004102802
    LimitedStringHolderScope.java130100%8100%01502901101
    FixedLengthSuppliedStringHolder.java41100%2100%060120501
    CachedIOSupplier.java39100%4100%040120201
    IOExceptionHandler.java33100%n/a01060101
    HasLength.java26100%8100%08060401
    LazyInitReaderReleaseShim.java20100%n/a04040402
    StringOnlySequence.java14100%n/a04060401
    CharSequenceReleaseShim.java13100%2100%04030301
    StringHolderScope.java11100%n/a05040502
    SimpleStringHolder.java100%n/a02040201
    ReaderShim.java100%n/a02020201
    HasMinimumLength.java100%n/a01010101
    HasExpectedLength.java100%n/a01010101
    HasKnownLength.java100%n/a01010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/index.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/index.html index 621d00a..a4030a3 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-common/index.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-common/index.html @@ -1 +1 @@ -stringhold-common

    stringhold-common

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 4,238100%0 of 538100%049801,1120226025
    com.kohlschutter.stringhold4,238100%538100%049801,1120226025
    \ No newline at end of file +stringhold-common

    stringhold-common

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 4,832100%0 of 650100%060701,2830279028
    com.kohlschutter.stringhold4,832100%650100%060701,2830279028
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditional.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditional.html new file mode 100644 index 0000000..30dffcc --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditional.html @@ -0,0 +1 @@ +Conditional

    Conditional

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 113100%0 of 12100%01202905
    render(TemplateContext, LNode[])79100%10100%0701901
    getConditionalSuppliedState(Map, String)13100%2100%020401
    isConditionalSet(Map, String)9100%n/a010201
    setConditional(Map, String, boolean)8100%n/a010201
    Conditional()4100%n/a010201
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditional.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditional.java.html new file mode 100644 index 0000000..a5758f1 --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditional.java.html @@ -0,0 +1,134 @@ +Conditional.java

    Conditional.java

    /*
    + * stringhold
    + *
    + * Copyright 2022, 2023 Christian Kohlschütter
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.kohlschutter.stringhold.liqp;
    +
    +import java.util.Map;
    +
    +import org.eclipse.jdt.annotation.Nullable;
    +
    +import liqp.TemplateContext;
    +import liqp.nodes.LNode;
    +import liqp.tags.Tag;
    +
    +/**
    + * Sets/gets the conditional state for a certain conditional-key.
    + * <p>
    + * Examples: <pre><code>
    + * {% conditional get: someState %} // false
    + * {% conditional set: someState %} // no output
    + * {% conditional get: someState %} // true
    + * {% conditional clear: someState %} // no output
    + * {% conditional get: someState %} // false
    + * </code></pre>
    + *
    + * <b>NOTE:</b> By default, conditionals are {@code true}. The behavior of declaring a conditional
    + * tag within a conditionally block is currently undefined.
    + *
    + * @author Christian Kohlschütter
    + * @see Conditionally
    + */
    +public final class Conditional extends Tag {
    +  static final String ENVMAP_CONDITIONAL_PREFIX = " stringhold.conditional.";
    +  static final String ENVMAP_SUPPLIED_PREFIX = " stringhold.conditional-supplied.";
    +
    +  /**
    +   * Constructs a new "conditional" {@link Tag}.
    +   */
    +  public Conditional() {
    +    super("conditional");
    +  }
    +
    +  @SuppressWarnings("PMD.UnnecessaryBoxing")
    +  @Override
    +  public Object render(TemplateContext context, LNode... nodes) {
    +    String args = String.valueOf(nodes[0].render(context));
    +
    +    String[] parts = args.split(":");
    +    if (parts.length != 2) {
    +      throw new IllegalArgumentException(args);
    +    }
    +
    +    String command = parts[0];
    +    String key = parts[1];
    +
    +    boolean b;
    +    switch (command) {
    +      case "set":
    +        b = true;
    +        break;
    +      case "clear":
    +        b = false;
    +        break;
    +      case "get":
    +        return isConditionalSet(context.getEnvironmentMap(), key);
    +      default:
    +        throw new IllegalArgumentException("Illegal conditional command: " + command);
    +    }
    +
    +    Map<String, Object> map = context.getEnvironmentMap();
    +    Boolean supplied = getConditionalSuppliedState(map, key);
    +    if (supplied != null && supplied.booleanValue() != b) {
    +      throw new IllegalStateException("Conditional already accessed: " + key);
    +    }
    +
    +    setConditional(map, key, b);
    +
    +    return null;
    +  }
    +
    +  /**
    +   * Checks if the conditional identified by the given key is set.
    +   *
    +   * @param envMap The environment map.
    +   * @param key The key, without its internal prefix.
    +   * @return {@code true} if set.
    +   */
    +  public static boolean isConditionalSet(Map<String, Object> envMap, String key) {
    +    Object val = envMap.get(Conditional.ENVMAP_CONDITIONAL_PREFIX + key);
    +    return Boolean.parseBoolean(String.valueOf(val));
    +  }
    +
    +  /**
    +   * Checks if the conditional identified by the given key is set.
    +   *
    +   * @param envMap The environment map.
    +   * @param key The key, without its internal prefix.
    +   * @param on {@code true} if set, {@code false} if clear.
    +   */
    +  public static void setConditional(Map<String, Object> envMap, String key, boolean on) {
    +    envMap.put(Conditional.ENVMAP_CONDITIONAL_PREFIX + key, on);
    +  }
    +
    +  /**
    +   * Checks the "supplied" state of the conditional identified by the given key.
    +   *
    +   * @param envMap The environment map.
    +   * @param key The key, without its internal prefix.
    +   * @return {@code false}/{@code true} for the "supply" condition once determined, or {@code null}
    +   *         if not determined yet.
    +   */
    +  public static @Nullable Boolean getConditionalSuppliedState(Map<String, Object> envMap,
    +      String key) {
    +    Object val = envMap.get(Conditional.ENVMAP_SUPPLIED_PREFIX + key);
    +    if (val == null) {
    +      return null;
    +    }
    +    return Boolean.valueOf(String.valueOf(val));
    +  }
    +}
    +
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditionally.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditionally.html new file mode 100644 index 0000000..0488c2b --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditionally.html @@ -0,0 +1 @@ +Conditionally

    Conditionally

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 47100%0 of 0n/a0401204
    render(TemplateContext, LNode[])28100%n/a010601
    lambda$render$1(Map, String, StringHolder)13100%n/a010301
    Conditionally()4100%n/a010201
    lambda$render$0(Object)2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditionally.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditionally.java.html new file mode 100644 index 0000000..49192b0 --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/Conditionally.java.html @@ -0,0 +1,72 @@ +Conditionally.java

    Conditionally.java

    /*
    + * stringhold
    + *
    + * Copyright 2022, 2023 Christian Kohlschütter
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.kohlschutter.stringhold.liqp;
    +
    +import java.util.Map;
    +
    +import com.kohlschutter.stringhold.StringHolder;
    +
    +import liqp.TemplateContext;
    +import liqp.blocks.Block;
    +import liqp.nodes.LNode;
    +
    +/**
    + * Defines a conditional section, which may be excluded from the final output.
    + * <p>
    + * Example: <pre><code>
    + * {% conditional set: someState %}
    + * {% conditionally someState %}
    + * Hello World
    + * {% endconditionally %}
    + * {% conditional clear: someState %} // remove line to include content from the above section
    + * </code></pre>
    + *
    + * <b>IMPORTANT:</b> This requires the use of {@link StringHolderRenderTransformer}.
    + *
    + * @author Christian Kohlschütter
    + * @see Conditional
    + */
    +public final class Conditionally extends Block {
    +  /**
    +   * Constructs a new "conditionally" {@link Block}.
    +   */
    +  public Conditionally() {
    +    super("conditionally");
    +  }
    +
    +  @Override
    +  public Object render(TemplateContext context, LNode... nodes) {
    +    Object conditional = nodes[0].render(context);
    +    Object blockNode = nodes[1].render(context);
    +
    +    String key = String.valueOf(conditional);
    +
    +    StringHolder sh = StringHolder.withSupplier(() -> {
    +      return blockNode;
    +    });
    +
    +    Map<String, Object> envMap = context.getEnvironmentMap();
    +    return StringHolder.withConditionalStringHolder(sh, (o) -> {
    +      boolean supply = Conditional.isConditionalSet(envMap, key);
    +      envMap.put(Conditional.ENVMAP_SUPPLIED_PREFIX + key, supply);
    +
    +      return supply;
    +    });
    +  }
    +}
    +
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer$1.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer$1.html index f6433d3..fddcb30 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer$1.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer$1.html @@ -1 +1 @@ -StringHolderRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}

    StringHolderRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 106100%0 of 6100%0802205
    lambda$$0(int, StringHolderScope, Object)41100%2100%020901
    {...}26100%n/a010301
    lambda$$1(StringHolderScope, int, Object)18100%2100%020501
    append(Object)13100%2100%020401
    getResult()8100%n/a010101
    \ No newline at end of file +StringHolderRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}

    StringHolderRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 86100%0 of 2100%0601805
    lambda$$0(int, StringHolderScope, Object)29100%n/a010701
    {...}26100%n/a010301
    lambda$$1(StringHolderScope, int, Object)18100%2100%020501
    getResult()8100%n/a010101
    append(Object)5100%n/a010201
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer.html index 829d48d..c759ef0 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer.html @@ -1 +1 @@ -StringHolderRenderTransformer

    StringHolderRenderTransformer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 116100%0 of 8100%014029010
    transformObject(TemplateContext, Object)44100%6100%0401301
    newObjectAppender(TemplateContext, int)16100%n/a010201
    lambda$newObjectAppender$1(TemplateContext, String)15100%2100%020401
    static {...}13100%n/a010301
    newCachedInstance()7100%n/a010101
    StringHolderRenderTransformer(WeakHashMap)6100%n/a010301
    lambda$newObjectAppender$0(int)6100%n/a010101
    newUncachedInstance()5100%n/a010101
    getSharedCacheInstance()2100%n/a010101
    lambda$transformObject$2(StringHolderSequence, StringHolderSequence)2100%n/a010101
    \ No newline at end of file +StringHolderRenderTransformer

    StringHolderRenderTransformer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 137100%0 of 12100%017033011
    transformObject(TemplateContext, Object)55100%10100%0601501
    newObjectAppender(TemplateContext, int)16100%n/a010201
    lambda$newObjectAppender$1(TemplateContext, String)14100%2100%020401
    static {...}14100%n/a010301
    StringHolderRenderTransformer(int, WeakHashMap)9100%n/a010401
    newCachedInstance(int)8100%n/a010101
    lambda$newObjectAppender$0(int, StringHolder)8100%n/a010101
    newUncachedInstance()6100%n/a010101
    newCachedInstance()3100%n/a010101
    getSharedCacheInstance()2100%n/a010101
    lambda$transformObject$2(StringHolderSequence, StringHolderSequence)2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer.java.html index 4794d8d..fcc1899 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringHolderRenderTransformer.java.html @@ -1,7 +1,7 @@ StringHolderRenderTransformer.java

    StringHolderRenderTransformer.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -36,18 +36,26 @@
     public final class StringHolderRenderTransformer implements RenderTransformer {
       static final String SCOPE_KEY = StringHolderScope.class.getName();
     
    -  private static final WeakHashMap<StringHolderSequence, StringHolderSequence> HOLDER_CACHE =
    +  @SuppressWarnings("PMD.LooseCoupling")
    +  private static final WeakHashMap<StringHolderSequence, StringHolderSequence> HOLDER_CACHE =
           new WeakHashMap<>();
     
    -  private static final StringHolderRenderTransformer INSTANCE = new StringHolderRenderTransformer(
    -      HOLDER_CACHE);
    +  private static final int DEFAULT_MAX_LENGTH = 64 * 1024;
     
    +  private static final StringHolderRenderTransformer INSTANCE = new StringHolderRenderTransformer(
    +      DEFAULT_MAX_LENGTH, HOLDER_CACHE);
    +
    +  @SuppressWarnings("PMD.LooseCoupling")
       private final WeakHashMap<StringHolderSequence, StringHolderSequence> holderCache;
     
    -  private StringHolderRenderTransformer(
    -      WeakHashMap<StringHolderSequence, StringHolderSequence> holderCache) {
    -    this.holderCache = holderCache;
    -  }
    +  private final int maximumCacheableLength;
    +
    +  @SuppressWarnings("PMD.LooseCoupling")
    +  private StringHolderRenderTransformer(int maximumLength,
    +      WeakHashMap<StringHolderSequence, StringHolderSequence> holderCache) {
    +    this.maximumCacheableLength = maximumLength;
    +    this.holderCache = holderCache;
    +  }
     
       /**
        * Returns the shared {@link StringHolderRenderTransformer} instance.
    @@ -61,11 +69,12 @@
        * @return The instance.
        */
       public static StringHolderRenderTransformer getSharedCacheInstance() {
    -    return INSTANCE;
    +    return INSTANCE;
       }
     
       /**
    -   * Creates a new, cached {@link StringHolderRenderTransformer} instance.
    +   * Creates a new, cached {@link StringHolderRenderTransformer} instance, using a default maximum
    +   * length of 64k characters.
        *
        * This instance uses its own cache for de-duplicating {@link StringHolderSequence}s, which may
        * help to significantly reduce heap allocation, at the cost of a slightly slower execution.
    @@ -73,7 +82,20 @@
        * @return The instance.
        */
       public static StringHolderRenderTransformer newCachedInstance() {
    -    return new StringHolderRenderTransformer(new WeakHashMap<>());
    +    return newCachedInstance(DEFAULT_MAX_LENGTH);
    +  }
    +
    +  /**
    +   * Creates a new, cached {@link StringHolderRenderTransformer} instance.
    +   *
    +   * This instance uses its own cache for de-duplicating {@link StringHolderSequence}s, which may
    +   * help to significantly reduce heap allocation, at the cost of a slightly slower execution.
    +   *
    +   * @param maximumLength The maximum string length to cache.
    +   * @return The instance.
    +   */
    +  public static StringHolderRenderTransformer newCachedInstance(int maximumLength) {
    +    return new StringHolderRenderTransformer(maximumLength, new WeakHashMap<>());
       }
     
       /**
    @@ -85,87 +107,88 @@
        * @return The instance.
        */
       public static StringHolderRenderTransformer newUncachedInstance() {
    -    return new StringHolderRenderTransformer(null);
    +    return new StringHolderRenderTransformer(0, null);
       }
     
       @Override
       public Controller newObjectAppender(TemplateContext context, int estimatedNumberOfAppends) {
         @SuppressWarnings("PMD.AvoidThrowingRawExceptionTypes")
    -    StringHolderScope scope = (StringHolderScope) context.getEnvironmentMap().computeIfAbsent(
    +    final StringHolderScope scope = (StringHolderScope) context.getEnvironmentMap().computeIfAbsent(
             SCOPE_KEY, (k) -> {
    -          int maxLen = context.getParser().getProtectionSettings().maxSizeRenderedString;
    -          if (maxLen != Integer.MAX_VALUE) {
    -            return LimitedStringHolderScope.withUpperLimitForMinimumLength(maxLen, () -> {
    -              throw new RuntimeException("rendered string exceeds " + maxLen);
    +          int maxLen = context.getParser().getLimitMaxSizeRenderedString();
    +          if (maxLen != Integer.MAX_VALUE) {
    +            return LimitedStringHolderScope.withUpperLimitForMinimumLength(maxLen, (
    +                stringholder) -> {
    +              throw new RuntimeException("rendered string exceeds " + maxLen + ": " + stringholder);
                 });
               } else {
    -            return StringHolderScope.NONE;
    +            return StringHolderScope.NONE;
               }
             });
     
    -    return new Controller() {
    -      private Object result = "";
    -      private ObjectAppender appender = (o) -> {
    -        if (o instanceof StringHolder) {
    -          ((StringHolder) o).updateScope(scope);
    +    return new Controller() {
    +      private Object result = "";
    +      private ObjectAppender appender = (o) -> {
    +        if (o instanceof StringHolder) {
    +          ((StringHolder) o).updateScope(scope);
             }
    -        result = o;
    +        result = o;
     
    -        appender = (o2) -> {
    -          StringHolderSequence seq = new StringHolderSequence(Math.max(3,
    +        appender = (o2) -> {
    +          StringHolderSequence seq = StringHolder.newSequence(Math.max(3,
                   estimatedNumberOfAppends));
     
    -          if (result instanceof StringHolder) {
    -            ((StringHolder) result).updateScope(StringHolderScope.NONE);
    -          }
    -          seq.updateScope(scope);
    -          seq.append(result);
    +          seq.updateScope(scope);
    +          seq.append(result);
     
    -          result = seq;
    +          result = seq;
     
    -          seq.append(o2);
    -          appender = seq::append;
    -        };
    -      };
    +          seq.append(o2);
    +          appender = seq::append;
    +        };
    +      };
     
           @Override
           public Object getResult() {
    -        return transformObject(context, result);
    +        return transformObject(context, result);
           }
     
           @Override
           public void append(Object obj) {
    -        if (obj instanceof StringHolder) {
    -          ((StringHolder) obj).updateScope(StringHolderScope.NONE);
    -        }
    -        appender.append(obj);
    -      }
    +        appender.append(obj);
    +      }
         };
       }
     
       @Override
       public Object transformObject(TemplateContext context, Object obj) {
    -    if (obj instanceof StringHolder) {
    -      StringHolder sh = (StringHolder) obj;
    +    if (obj instanceof StringHolder) {
    +      StringHolder sh = (StringHolder) obj;
     
           StringHolder o;
    -      if (sh instanceof StringHolderSequence && holderCache != null) {
    -        StringHolderSequence shs = (StringHolderSequence) sh;
    -        shs.markEffectivelyImmutable();
    -        shs.hashCode(); // pre-compute hashcode to reduce time under lock
    +      if (holderCache != null && (sh instanceof StringHolderSequence) && sh.isCacheable()) {
    +        StringHolderSequence shs = (StringHolderSequence) sh;
    +
    +        if (shs.getMinimumLength() > maximumCacheableLength) {
    +          // don't cache
    +          return shs.asContent();
    +        }
    +
    +        shs.markEffectivelyImmutable();
    +        shs.hashCode(); // pre-compute hashcode to reduce time under lock
     
             // de-duplicate identical StringHolderSequences
    -        synchronized (holderCache) {
    -          o = holderCache.computeIfAbsent(shs, (k) -> shs);
    -        }
    -      } else {
    -        o = sh;
    +        synchronized (holderCache) {
    +          o = holderCache.computeIfAbsent(shs, (k) -> shs);
    +        }
    +      } else {
    +        o = sh;
           }
     
    -      return o.asContent();
    +      return o.asContent();
         } else {
    -      return obj;
    +      return obj;
         }
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.html new file mode 100644 index 0000000..807ded6 --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.html @@ -0,0 +1 @@ +StringholdLiqpHelper

    StringholdLiqpHelper

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 35100%0 of 2100%0401003
    newConfiguredTemplateParser(Function)17100%2100%020501
    configure(TemplateParser.Builder)12100%n/a010401
    newConfiguredTemplateParser()6100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.java.html new file mode 100644 index 0000000..86604f2 --- /dev/null +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringholdLiqpHelper.java.html @@ -0,0 +1,80 @@ +StringholdLiqpHelper.java

    StringholdLiqpHelper.java

    /*
    + * stringhold
    + *
    + * Copyright 2022, 2023 Christian Kohlschütter
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.kohlschutter.stringhold.liqp;
    +
    +import java.util.function.Function;
    +
    +import com.kohlschutter.annotations.compiletime.ExcludeFromCodeCoverageGeneratedReport;
    +
    +import liqp.TemplateParser;
    +import liqp.TemplateParser.Builder;
    +
    +/**
    + * Some helper methods that can be useful when working with Liqp.
    + *
    + * @author Christian Kohlschütter
    + */
    +public final class StringholdLiqpHelper {
    +
    +  @ExcludeFromCodeCoverageGeneratedReport(reason = "unreachable")
    +  private StringholdLiqpHelper() {
    +    throw new IllegalStateException("No instances");
    +  }
    +
    +  /**
    +   * Configures the given {@link Builder}, adding {@link Conditionally} and {@link Conditional}, as
    +   * well as using the {@link StringHolderRenderTransformer} available through
    +   * {@link StringHolderRenderTransformer#getSharedCacheInstance()}..
    +   *
    +   * @param builder The builder to configure.
    +   * @return The builder.
    +   */
    +  public static TemplateParser.Builder configure(TemplateParser.Builder builder) {
    +    return builder //
    +        .withInsertion(new Conditional()) //
    +        .withInsertion(new Conditionally()) //
    +        .withRenderTransformer(StringHolderRenderTransformer.getSharedCacheInstance());
    +  }
    +
    +  /**
    +   * Creates a new {@link TemplateParser}, configured via {@link #configure(Builder)}.
    +   *
    +   * @return The configured {@link TemplateParser}.
    +   */
    +  public static TemplateParser newConfiguredTemplateParser() {
    +    return configure(new TemplateParser.Builder()).build();
    +  }
    +
    +  /**
    +   * Creates a new {@link TemplateParser}, configured via {@link #configure(Builder)}, adding
    +   * additional configuration as specified.
    +   *
    +   * @param additionalConfiguration The additional configuration.
    +   * @return The new template parser.
    +   */
    +  public static TemplateParser newConfiguredTemplateParser(
    +      Function<TemplateParser.Builder, TemplateParser.Builder> additionalConfiguration) {
    +    TemplateParser.Builder builder = new TemplateParser.Builder();
    +    configure(builder);
    +    if (additionalConfiguration != null) {
    +      builder = additionalConfiguration.apply(builder);
    +    }
    +    return builder.build();
    +  }
    +}
    +
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer$1.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer$1.html index 2c6e8d3..7d36442 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer$1.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer$1.html @@ -1 +1 @@ -StringsOnlyRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}

    StringsOnlyRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 117100%0 of 2100%0802507
    lambda$$2(int, StringHolderScope, Object)35100%n/a010801
    lambda$$3(TemplateContext, int, Object)25100%n/a010601
    {...}23100%n/a010301
    lambda$$1(TemplateContext, String)15100%2100%020401
    getResult()8100%n/a010101
    lambda$$0(int)6100%n/a010101
    append(Object)5100%n/a010201
    \ No newline at end of file +StringsOnlyRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}

    StringsOnlyRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 110100%0 of 2100%0802407
    lambda$$2(int, StringHolderScope, Object)29100%n/a010701
    lambda$$3(TemplateContext, int, Object)25100%n/a010601
    {...}23100%n/a010301
    lambda$$1(TemplateContext, String)14100%2100%020401
    getResult()8100%n/a010101
    lambda$$0(int, StringHolder)6100%n/a010101
    append(Object)5100%n/a010201
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer.html index 9049e44..af2570b 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer.html @@ -1 +1 @@ -StringsOnlyRenderTransformer

    StringsOnlyRenderTransformer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 17100%0 of 0n/a040404
    newObjectAppender(TemplateContext, int)7100%n/a010101
    static {...}5100%n/a010101
    transformObject(TemplateContext, Object)3100%n/a010101
    getInstance()2100%n/a010101
    \ No newline at end of file +StringsOnlyRenderTransformer

    StringsOnlyRenderTransformer

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 17100%0 of 0n/a040404
    newObjectAppender(TemplateContext, int)7100%n/a010101
    static {...}5100%n/a010101
    transformObject(TemplateContext, Object)3100%n/a010101
    getInstance()2100%n/a010101
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer.java.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer.java.html index 95b8edc..a05611e 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer.java.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/StringsOnlyRenderTransformer.java.html @@ -1,7 +1,7 @@ StringsOnlyRenderTransformer.java

    StringsOnlyRenderTransformer.java

    /*
      * stringhold
      *
    - * Copyright 2022 Christian Kohlschütter
    + * Copyright 2022, 2023 Christian Kohlschütter
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
    @@ -17,6 +17,7 @@
      */
     package com.kohlschutter.stringhold.liqp;
     
    +import com.kohlschutter.annotations.compiletime.SuppressFBWarnings;
     import com.kohlschutter.stringhold.LimitedStringHolderScope;
     import com.kohlschutter.stringhold.StringHolder;
     import com.kohlschutter.stringhold.StringHolderScope;
    @@ -31,8 +32,9 @@
      *
      * @author Christian Kohlschütter
      */
    +@SuppressFBWarnings("CT_CONSTRUCTOR_THROW")
     public final class StringsOnlyRenderTransformer implements RenderTransformer {
    -  private static final StringsOnlyRenderTransformer INSTANCE = new StringsOnlyRenderTransformer();
    +  private static final StringsOnlyRenderTransformer INSTANCE = new StringsOnlyRenderTransformer();
     
       private StringsOnlyRenderTransformer() {
       }
    @@ -43,38 +45,36 @@
        * @return The instance.
        */
       public static StringsOnlyRenderTransformer getInstance() {
    -    return INSTANCE;
    +    return INSTANCE;
       }
     
       @Override
       public Controller newObjectAppender(TemplateContext context, int estimatedNumberOfAppends) {
    -    return new Controller() {
    -      private Object result = "";
    -      private ObjectAppender appender = (o) -> {
    -        StringHolder sh = StringHolder.withContent(o);
    -        result = sh;
    +    return new Controller() {
    +      private Object result = "";
    +      private ObjectAppender appender = (o) -> {
    +        StringHolder sh = StringHolder.withContent(o);
    +        result = sh;
     
             @SuppressWarnings("PMD.AvoidThrowingRawExceptionTypes")
    -        StringHolderScope scope = (StringHolderScope) context.getEnvironmentMap().computeIfAbsent(
    +        StringHolderScope scope = (StringHolderScope) context.getEnvironmentMap().computeIfAbsent(
                 StringHolderRenderTransformer.SCOPE_KEY, (k) -> {
    -              int maxLen = context.getParser().getProtectionSettings().maxSizeRenderedString;
    -              if (maxLen != Integer.MAX_VALUE) {
    -                return LimitedStringHolderScope.withUpperLimitForMinimumLength(maxLen, () -> {
    -                  throw new RuntimeException("rendered string exceeds " + maxLen);
    +              int maxLen = context.getParser().getLimitMaxSizeRenderedString();
    +              if (maxLen != Integer.MAX_VALUE) {
    +                return LimitedStringHolderScope.withUpperLimitForMinimumLength(maxLen, (
    +                    stringholder) -> {
    +                  throw new RuntimeException("rendered string exceeds " + maxLen);
                     });
                   } else {
    -                return StringHolderScope.NONE;
    +                return StringHolderScope.NONE;
                   }
                 });
     
    -        sh.updateScope(scope);
    +        sh.updateScope(scope);
     
    -        appender = (o2) -> {
    -          StringOnlySequence seq = new StringOnlySequence(estimatedNumberOfAppends);
    -          seq.updateScope(scope);
    -
    -          // do not double-count
    -          ((StringHolder) result).updateScope(null);
    +        appender = (o2) -> {
    +          StringOnlySequence seq = new StringOnlySequence(estimatedNumberOfAppends);
    +          seq.updateScope(scope);
     
               seq.append(result);
               result = seq;
    @@ -100,4 +100,4 @@
         return String.valueOf(obj);
       }
     }
    -
    \ No newline at end of file + \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/index.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/index.html index 6fe0872..acd6762 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/index.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/index.html @@ -1 +1 @@ -com.kohlschutter.stringhold.liqp

    com.kohlschutter.stringhold.liqp

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 356100%0 of 16100%03407802604
    StringsOnlyRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}117100%2100%080250701
    StringHolderRenderTransformer116100%8100%01402901001
    StringHolderRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}106100%6100%080220501
    StringsOnlyRenderTransformer17100%n/a04040401
    \ No newline at end of file +com.kohlschutter.stringhold.liqp

    com.kohlschutter.stringhold.liqp

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 545100%0 of 30100%055012803907
    StringHolderRenderTransformer137100%12100%01703301101
    Conditional113100%12100%0120290501
    StringsOnlyRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}110100%2100%080240701
    StringHolderRenderTransformer.new RenderTransformer.ObjectAppender.Controller() {...}86100%2100%060180501
    Conditionally47100%n/a040120401
    StringholdLiqpHelper35100%2100%040100301
    StringsOnlyRenderTransformer17100%n/a04040401
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/index.source.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/index.source.html index 2eaaa95..41a5588 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/index.source.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/com.kohlschutter.stringhold.liqp/index.source.html @@ -1 +1 @@ -com.kohlschutter.stringhold.liqp

    com.kohlschutter.stringhold.liqp

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 356100%0 of 16100%03407802604
    StringHolderRenderTransformer.java222100%14100%02205001502
    StringsOnlyRenderTransformer.java134100%2100%01202801102
    \ No newline at end of file +com.kohlschutter.stringhold.liqp

    com.kohlschutter.stringhold.liqp

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 545100%0 of 30100%055012803907
    StringHolderRenderTransformer.java223100%14100%02305001602
    StringsOnlyRenderTransformer.java127100%2100%01202701102
    Conditional.java113100%12100%0120290501
    Conditionally.java47100%n/a040120401
    StringholdLiqpHelper.java35100%2100%040100301
    \ No newline at end of file diff --git a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/index.html b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/index.html index 8c4d724..42ca883 100644 --- a/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/index.html +++ b/stringhold-codecoverage/jacoco-aggregate/stringhold-liqp/index.html @@ -1 +1 @@ -stringhold-liqp

    stringhold-liqp

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 356100%0 of 16100%03407802604
    com.kohlschutter.stringhold.liqp356100%16100%03407802604
    \ No newline at end of file +stringhold-liqp

    stringhold-liqp

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 545100%0 of 30100%055012803907
    com.kohlschutter.stringhold.liqp545100%30100%055012803907
    \ No newline at end of file diff --git a/js/apache-maven-fluido-2.0.0-M2.min.js b/stringhold-codecoverage/js/apache-maven-fluido-2.0.0-M8.min.js similarity index 52% rename from js/apache-maven-fluido-2.0.0-M2.min.js rename to stringhold-codecoverage/js/apache-maven-fluido-2.0.0-M8.min.js index 7a84154..819716a 100644 --- a/js/apache-maven-fluido-2.0.0-M2.min.js +++ b/stringhold-codecoverage/js/apache-maven-fluido-2.0.0-M8.min.js @@ -1,287 +1,287 @@ -(function(e,p){"object"===typeof module&&"object"===typeof module.exports?module.exports=e.document?p(e,!0):function(e){if(!e.document)throw Error("jQuery requires a window with a document");return p(e)}:p(e)})("undefined"!==typeof window?window:this,function(e,p){function x(a){var b=a.length,f=d.type(a);return"function"===f||d.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===f||0===b||"number"===typeof b&&0b;b+=2)"margin"=== -f&&(u+=d.css(a,f+oa[b],!0,l)),k?("content"===f&&(u-=d.css(a,"padding"+oa[b],!0,l)),"margin"!==f&&(u-=d.css(a,"border"+oa[b]+"Width",!0,l))):(u+=d.css(a,"padding"+oa[b],!0,l),"padding"!==f&&(u+=d.css(a,"border"+oa[b]+"Width",!0,l)));return u}function U(a,b,f){var k=!0,l="width"===b?a.offsetWidth:a.offsetHeight,u=ga(a),c=w.boxSizing&&"border-box"===d.css(a,"boxSizing",!1,u);if(0>=l||null==l){l=pa(a,b,u);if(0>l||null==l)l=a.style[b];if(Ja.test(l))return l;k=c&&(w.boxSizingReliable()||l===a.style[b]); -l=parseFloat(l)||0}return l+S(a,b,f||(c?"border":"content"),k,u)+"px"}function H(a,b,f,d,l){return new H.prototype.init(a,b,f,d,l)}function J(){setTimeout(function(){wa=void 0});return wa=d.now()}function v(a,b){var f,d={height:a},l=0;for(b=b?1:0;4>l;l+=2-b)f=oa[l],d["margin"+f]=d["padding"+f]=a;b&&(d.opacity=d.width=a);return d}function da(a,b,f){for(var d,l=(xa[b]||[]).concat(xa["*"]),c=0,e=l.length;cf&&l)return b;e.resolveWith(a,[h]);return!1}, -h=e.promise({elem:a,props:d.extend({},b),opts:d.extend(!0,{specialEasing:{}},f),originalProperties:b,originalOptions:f,startTime:wa||J(),duration:f.duration,tweens:[],createTween:function(b,f){b=d.Tween(a,h.opts,b,f,h.opts.specialEasing[b]||h.opts.easing);h.tweens.push(b);return b},stop:function(b){var f=0,d=b?h.tweens.length:0;if(k)return this;for(k=!0;fa?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){a=d.merge(this.constructor(),a);a.prevObject=this;a.context=this.context;return a},each:function(a,b){return d.each(this,a,b)},map:function(a){return this.pushStack(d.map(this,function(b,f){return a.call(b,f,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)}, -last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&af?Math.max(0,d+f):f:0;fF.cacheLength&&delete a[b.shift()];return a[d+" "]=f}var b=[];return a}function k(a){a[Q]=!0;return a}function l(a){var b=I.createElement("div");try{return!!a(b)}catch(ma){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function c(a,b){var d=a.split("|");for(a=a.length;a--;)F.attrHandle[d[a]]=b}function e(a,b){var d=b&&a,f=d&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex|| --2147483648)-(~a.sourceIndex||-2147483648);if(f)return f;if(d)for(;d=d.nextSibling;)if(d===b)return-1;return a?1:-1}function g(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function h(a){return function(b){var d=b.nodeName.toLowerCase();return("input"===d||"button"===d)&&b.type===a}}function m(a){return k(function(b){b=+b;return k(function(d,f){for(var k,l=a([],d.length,b),c=l.length;c--;)d[k=l[c]]&&(d[k]=!(f[k]=d[k]))})})}function t(a){return a&&"undefined"!==typeof a.getElementsByTagName&& -a}function n(){}function v(a){for(var b=0,d=a.length,f="";bb;b+=2)"margin"=== +e&&(u+=d.css(a,e+oa[b],!0,l)),k?("content"===e&&(u-=d.css(a,"padding"+oa[b],!0,l)),"margin"!==e&&(u-=d.css(a,"border"+oa[b]+"Width",!0,l))):(u+=d.css(a,"padding"+oa[b],!0,l),"padding"!==e&&(u+=d.css(a,"border"+oa[b]+"Width",!0,l)));return u}function U(a,b,e){var k=!0,l="width"===b?a.offsetWidth:a.offsetHeight,u=ga(a),c=w.boxSizing&&"border-box"===d.css(a,"boxSizing",!1,u);if(0>=l||null==l){l=pa(a,b,u);if(0>l||null==l)l=a.style[b];if(Ja.test(l))return l;k=c&&(w.boxSizingReliable()||l===a.style[b]); +l=parseFloat(l)||0}return l+S(a,b,e||(c?"border":"content"),k,u)+"px"}function H(a,b,e,d,l){return new H.prototype.init(a,b,e,d,l)}function J(){setTimeout(function(){wa=void 0});return wa=d.now()}function v(a,b){var e,d={height:a},l=0;for(b=b?1:0;4>l;l+=2-b)e=oa[l],d["margin"+e]=d["padding"+e]=a;b&&(d.opacity=d.width=a);return d}function da(a,b,e){for(var d,l=(xa[b]||[]).concat(xa["*"]),c=0,f=l.length;ce&&l)return b;f.resolveWith(a,[h]);return!1}, +h=f.promise({elem:a,props:d.extend({},b),opts:d.extend(!0,{specialEasing:{}},e),originalProperties:b,originalOptions:e,startTime:wa||J(),duration:e.duration,tweens:[],createTween:function(b,e){b=d.Tween(a,h.opts,b,e,h.opts.specialEasing[b]||h.opts.easing);h.tweens.push(b);return b},stop:function(b){var e=0,d=b?h.tweens.length:0;if(k)return this;for(k=!0;ea?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){a=d.merge(this.constructor(),a);a.prevObject=this;a.context=this.context;return a},each:function(a,b){return d.each(this,a,b)},map:function(a){return this.pushStack(d.map(this,function(b,e){return a.call(b,e,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)}, +last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&ae?Math.max(0,d+e):e:0;eF.cacheLength&&delete a[b.shift()];return a[d+" "]=e}var b=[];return a}function k(a){a[Q]=!0;return a}function l(a){var b=I.createElement("div");try{return!!a(b)}catch(ma){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function c(a,b){var d=a.split("|");for(a=a.length;a--;)F.attrHandle[d[a]]=b}function f(a,b){var d=b&&a,e=d&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex|| +-2147483648)-(~a.sourceIndex||-2147483648);if(e)return e;if(d)for(;d=d.nextSibling;)if(d===b)return-1;return a?1:-1}function g(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function h(a){return function(b){var d=b.nodeName.toLowerCase();return("input"===d||"button"===d)&&b.type===a}}function m(a){return k(function(b){b=+b;return k(function(d,e){for(var k,l=a([],d.length,b),c=l.length;c--;)d[k=l[c]]&&(d[k]=!(e[k]=d[k]))})})}function t(a){return a&&"undefined"!==typeof a.getElementsByTagName&& +a}function n(){}function v(a){for(var b=0,d=a.length,e="";b+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,ta=/=[\x20\t\r\n\f]*([^\]'"]*?)[\x20\t\r\n\f]*\]/g,ua=new RegExp(ia),wa=new RegExp("^"+ka+"$"),ja={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG:new RegExp("^("+"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w","w*")+")"),ATTR:new RegExp("^"+la),PSEUDO:new RegExp("^"+ia), CHILD:/^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i,bool:/^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,needsContext:/^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i},ya=/^(?:input|select|textarea|button)$/i,za=/^h\d$/i,ha= -/^[^{]+\{\s*\[native \w/,Aa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,na=/[+~]/,Ca=/'|\\/g,qa=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,ra=function(a,b,d){a="0x"+b-65536;return a!==a||d?b:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,a&1023|56320)},xa=function(){R()};try{Y.apply(V=Ga.call(E.childNodes),E.childNodes),V[E.childNodes.length].nodeType}catch(T){Y={apply:V.length?function(a,b){La.apply(a,Ga.call(b))}:function(a,b){for(var d=a.length,f=0;a[d++]=b[f++];);a.length= +/^[^{]+\{\s*\[native \w/,Aa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,na=/[+~]/,Ca=/'|\\/g,qa=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,ra=function(a,b,d){a="0x"+b-65536;return a!==a||d?b:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,a&1023|56320)},xa=function(){R()};try{Y.apply(V=Ga.call(E.childNodes),E.childNodes),V[E.childNodes.length].nodeType}catch(T){Y={apply:V.length?function(a,b){La.apply(a,Ga.call(b))}:function(a,b){for(var d=a.length,e=0;a[d++]=b[e++];);a.length= d-1}}}B=b.support={};G=b.isXML=function(a){return(a=a&&(a.ownerDocument||a).documentElement)?"HTML"!==a.nodeName:!1};R=b.setDocument=function(a){var b=a?a.ownerDocument||a:E;if(b===I||9!==b.nodeType||!b.documentElement)return I;I=b;O=b.documentElement;(a=b.defaultView)&&a!==a.top&&(a.addEventListener?a.addEventListener("unload",xa,!1):a.attachEvent&&a.attachEvent("onunload",xa));H=!G(b);B.attributes=l(function(a){a.className="i";return!a.getAttribute("className")});B.getElementsByTagName=l(function(a){a.appendChild(b.createComment("")); return!a.getElementsByTagName("*").length});B.getElementsByClassName=ha.test(b.getElementsByClassName);B.getById=l(function(a){O.appendChild(a).id=Q;return!b.getElementsByName||!b.getElementsByName(Q).length});B.getById?(F.find.ID=function(a,b){if("undefined"!==typeof b.getElementById&&H)return(a=b.getElementById(a))&&a.parentNode?[a]:[]},F.filter.ID=function(a){var b=a.replace(qa,ra);return function(a){return a.getAttribute("id")===b}}):(delete F.find.ID,F.filter.ID=function(a){var b=a.replace(qa, -ra);return function(a){return(a="undefined"!==typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}});F.find.TAG=B.getElementsByTagName?function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a);if(B.qsa)return b.querySelectorAll(a)}:function(a,b){var d=[],f=0;b=b.getElementsByTagName(a);if("*"===a){for(;a=b[f++];)1===a.nodeType&&d.push(a);return d}return b};F.find.CLASS=B.getElementsByClassName&&function(a,b){if(H)return b.getElementsByClassName(a)}; +ra);return function(a){return(a="undefined"!==typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}});F.find.TAG=B.getElementsByTagName?function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a);if(B.qsa)return b.querySelectorAll(a)}:function(a,b){var d=[],e=0;b=b.getElementsByTagName(a);if("*"===a){for(;a=b[e++];)1===a.nodeType&&d.push(a);return d}return b};F.find.CLASS=B.getElementsByClassName&&function(a,b){if(H)return b.getElementsByClassName(a)}; J=[];r=[];if(B.qsa=ha.test(b.querySelectorAll))l(function(a){O.appendChild(a).innerHTML="\x3ca id\x3d'"+Q+"'\x3e\x3c/a\x3e\x3cselect id\x3d'"+Q+"-\f]' msallowcapture\x3d''\x3e\x3coption selected\x3d''\x3e\x3c/option\x3e\x3c/select\x3e";a.querySelectorAll("[msallowcapture^\x3d'']").length&&r.push("[*^$]\x3d[\\x20\\t\\r\\n\\f]*(?:''|\"\")");a.querySelectorAll("[selected]").length||r.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)"); a.querySelectorAll("[id~\x3d"+Q+"-]").length||r.push("~\x3d");a.querySelectorAll(":checked").length||r.push(":checked");a.querySelectorAll("a#"+Q+"+*").length||r.push(".#.+[+~]")}),l(function(a){var d=b.createElement("input");d.setAttribute("type","hidden");a.appendChild(d).setAttribute("name","D");a.querySelectorAll("[name\x3dd]").length&&r.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?\x3d");a.querySelectorAll(":enabled").length||r.push(":enabled",":disabled");a.querySelectorAll("*,:x");r.push(",.*:")}); (B.matchesSelector=ha.test(Ba=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&l(function(a){B.disconnectedMatch=Ba.call(a,"div");Ba.call(a,"[s!\x3d'']:x");J.push("!\x3d",ia)});r=r.length&&new RegExp(r.join("|"));J=J.length&&new RegExp(J.join("|"));va=(a=ha.test(O.compareDocumentPosition))||ha.test(O.contains)?function(a,b){var d=9===a.nodeType?a.documentElement:a;b=b&&b.parentNode;return a===b||!!(b&&1===b.nodeType&&(d.contains?d.contains(b):a.compareDocumentPosition&& -a.compareDocumentPosition(b)&16))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1};ca=a?function(a,d){if(a===d)return x=!0,0;var f=!a.compareDocumentPosition-!d.compareDocumentPosition;if(f)return f;f=(a.ownerDocument||a)===(d.ownerDocument||d)?a.compareDocumentPosition(d):1;return f&1||!B.sortDetached&&d.compareDocumentPosition(a)===f?a===b||a.ownerDocument===E&&va(E,a)?-1:d===b||d.ownerDocument===E&&va(E,d)?1:P?ba(P,a)-ba(P,d):0:f&4?-1:1}:function(a,d){if(a===d)return x=!0,0; -var f=0,k=a.parentNode,l=d.parentNode,c=[a],u=[d];if(!k||!l)return a===b?-1:d===b?1:k?-1:l?1:P?ba(P,a)-ba(P,d):0;if(k===l)return e(a,d);for(;a=a.parentNode;)c.unshift(a);for(a=d;a=a.parentNode;)u.unshift(a);for(;c[f]===u[f];)f++;return f?e(c[f],u[f]):c[f]===E?-1:u[f]===E?1:0};return b};b.matches=function(a,d){return b(a,null,null,d)};b.matchesSelector=function(a,d){(a.ownerDocument||a)!==I&&R(a);d=d.replace(ta,"\x3d'$1']");if(!(!B.matchesSelector||!H||J&&J.test(d)||r&&r.test(d)))try{var f=Ba.call(a, -d);if(f||B.disconnectedMatch||a.document&&11!==a.document.nodeType)return f}catch(Da){}return 0a.nodeType)return!1;return!0},parent:function(a){return!F.pseudos.empty(a)},header:function(a){return za.test(a.nodeName)},input:function(a){return ya.test(a.nodeName)}, button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:m(function(){return[0]}),last:m(function(a,b){return[b-1]}),eq:m(function(a,b,d){return[0>d?d+b:d]}),even:m(function(a,b){for(var d=0;dd?d+b:d;0<=--b;)a.push(b);return a}),gt:m(function(a,b,d){for(d=0>d?d+b:d;++d(?:<\/\1>|)$/,Gb=/^.[^:#\[\.,]*$/;d.filter=function(a,b,f){var k=b[0];f&&(a=":not("+a+")");return 1===b.length&&1===k.nodeType?d.find.matchesSelector(k,a)?[k]:[]:d.find.matches(a,d.grep(b,function(a){return 1===a.nodeType}))};d.fn.extend({find:function(a){var b,f=[],k=this,l=k.length;if("string"!==typeof a)return this.pushStack(d(a).filter(function(){for(b= -0;b)[^>]*|#([\w-]*))$/;(d.fn.init=function(a,b){var f;if(!a)return this;if("string"=== -typeof a){f="\x3c"===a.charAt(0)&&"\x3e"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:Vb.exec(a);if(!f||!f[1]&&b)return!b||b.jquery?(b||Ha).find(a):this.constructor(b).find(a);if(f[1]){if(b=b instanceof d?b[0]:b,d.merge(this,d.parseHTML(f[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),mb.test(f[1])&&d.isPlainObject(b))for(f in b)if(d.isFunction(this[f]))this[f](b[f]);else this.attr(f,b[f])}else{if((b=z.getElementById(f[2]))&&b.parentNode){if(b.id!==f[2])return Ha.find(a);this.length=1;this[0]=b}this.context= -z;this.selector=a}return this}if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(d.isFunction(a))return"undefined"!==typeof Ha.ready?Ha.ready(a):a(d);void 0!==a.selector&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)}).prototype=d.fn;Ha=d(z);var Wb=/^(?:parents|prev(?:Until|All))/,Xb={children:!0,contents:!0,next:!0,prev:!0};d.extend({dir:function(a,b,f){var k=[];for(a=a[b];a&&9!==a.nodeType&&(void 0===f||1!==a.nodeType||!d(a).is(f));)1===a.nodeType&& -k.push(a),a=a[b];return k},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&d.push(a);return d}});d.fn.extend({has:function(a){var b,f=d(a,this),k=f.length;return this.filter(function(){for(b=0;bf.nodeType&&(e?-1d?d+b:d;0<=--b;)a.push(b);return a}),gt:m(function(a,b,d){for(d=0>d?d+b:d;++d(?:<\/\1>|)$/,Gb=/^.[^:#\[\.,]*$/;d.filter=function(a,b,e){var k=b[0];e&&(a=":not("+a+")");return 1===b.length&&1===k.nodeType?d.find.matchesSelector(k,a)?[k]:[]:d.find.matches(a,d.grep(b,function(a){return 1===a.nodeType}))};d.fn.extend({find:function(a){var b,e=[],k=this,l=k.length;if("string"!==typeof a)return this.pushStack(d(a).filter(function(){for(b= +0;b)[^>]*|#([\w-]*))$/;(d.fn.init=function(a,b){var e;if(!a)return this;if("string"=== +typeof a){e="\x3c"===a.charAt(0)&&"\x3e"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:Vb.exec(a);if(!e||!e[1]&&b)return!b||b.jquery?(b||Ha).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof d?b[0]:b,d.merge(this,d.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),mb.test(e[1])&&d.isPlainObject(b))for(e in b)if(d.isFunction(this[e]))this[e](b[e]);else this.attr(e,b[e])}else{if((b=z.getElementById(e[2]))&&b.parentNode){if(b.id!==e[2])return Ha.find(a);this.length=1;this[0]=b}this.context= +z;this.selector=a}return this}if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(d.isFunction(a))return"undefined"!==typeof Ha.ready?Ha.ready(a):a(d);void 0!==a.selector&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)}).prototype=d.fn;Ha=d(z);var Wb=/^(?:parents|prev(?:Until|All))/,Xb={children:!0,contents:!0,next:!0,prev:!0};d.extend({dir:function(a,b,e){var k=[];for(a=a[b];a&&9!==a.nodeType&&(void 0===e||1!==a.nodeType||!d(a).is(e));)1===a.nodeType&& +k.push(a),a=a[b];return k},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&d.push(a);return d}});d.fn.extend({has:function(a){var b,e=d(a,this),k=e.length;return this.filter(function(){for(b=0;be.nodeType&&(f?-1p.indexOf(":")&&"on"+p,a=a[d.expando]?a: -new d.Event(p,"object"===typeof a&&a),a.isTrigger=k?2:3,a.namespace=n.join("."),a.namespace_re=a.namespace?new RegExp("(^|\\.)"+n.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=f),b=null==b?[a]:d.makeArray(b,[a]),n=d.event.special[p]||{},k||!n.trigger||!1!==n.trigger.apply(f,b))){if(!k&&!n.noBubble&&!d.isWindow(f)){m=n.delegateType||p;nb.test(m+p)||(h=h.parentNode);for(;h;h=h.parentNode)t.push(h),c=h;c===(f.ownerDocument||z)&&t.push(c.defaultView||c.parentWindow||e)}for(v= -0;(h=t[v++])&&!a.isPropagationStopped();)a.type=1p.indexOf(":")&&"on"+p,a=a[d.expando]?a: +new d.Event(p,"object"===typeof a&&a),a.isTrigger=k?2:3,a.namespace=n.join("."),a.namespace_re=a.namespace?new RegExp("(^|\\.)"+n.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=e),b=null==b?[a]:d.makeArray(b,[a]),n=d.event.special[p]||{},k||!n.trigger||!1!==n.trigger.apply(e,b))){if(!k&&!n.noBubble&&!d.isWindow(e)){m=n.delegateType||p;nb.test(m+p)||(h=h.parentNode);for(;h;h=h.parentNode)t.push(h),c=h;c===(e.ownerDocument||z)&&t.push(c.defaultView||c.parentWindow||g)}for(v= +0;(h=t[v++])&&!a.isPropagationStopped();)a.type=1]*)\/>/gi,rb=/<([\w:]+)/,sb=/\s*$/g,ca={option:[1,"\x3cselect multiple\x3d'multiple'\x3e","\x3c/select\x3e"],legend:[1,"\x3cfieldset\x3e","\x3c/fieldset\x3e"],area:[1, "\x3cmap\x3e","\x3c/map\x3e"],param:[1,"\x3cobject\x3e","\x3c/object\x3e"],thead:[1,"\x3ctable\x3e","\x3c/table\x3e"],tr:[2,"\x3ctable\x3e\x3ctbody\x3e","\x3c/tbody\x3e\x3c/table\x3e"],col:[2,"\x3ctable\x3e\x3ctbody\x3e\x3c/tbody\x3e\x3ccolgroup\x3e","\x3c/colgroup\x3e\x3c/table\x3e"],td:[3,"\x3ctable\x3e\x3ctbody\x3e\x3ctr\x3e","\x3c/tr\x3e\x3c/tbody\x3e\x3c/table\x3e"],_default:w.htmlSerialize?[0,"",""]:[1,"X\x3cdiv\x3e","\x3c/div\x3e"]},Za=Aa(z).appendChild(z.createElement("div"));ca.optgroup= -ca.option;ca.tbody=ca.tfoot=ca.colgroup=ca.caption=ca.thead;ca.th=ca.td;d.extend({clone:function(a,b,f){var c,l,e,g,h,m=d.contains(a.ownerDocument,a);w.html5Clone||d.isXMLDoc(a)||!pb.test("\x3c"+a.nodeName+"\x3e")?e=a.cloneNode(!0):(Za.innerHTML=a.outerHTML,Za.removeChild(e=Za.firstChild));if(!(w.noCloneEvent&&w.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||d.isXMLDoc(a)))for(c=N(e),h=N(a),g=0;null!=(l=h[g]);++g)if(c[g]){var n=c[g],t,p=void 0,v;if(1===n.nodeType){t=n.nodeName.toLowerCase();if(!w.noCloneEvent&& +ca.option;ca.tbody=ca.tfoot=ca.colgroup=ca.caption=ca.thead;ca.th=ca.td;d.extend({clone:function(a,b,e){var c,l,f,g,h,m=d.contains(a.ownerDocument,a);w.html5Clone||d.isXMLDoc(a)||!pb.test("\x3c"+a.nodeName+"\x3e")?f=a.cloneNode(!0):(Za.innerHTML=a.outerHTML,Za.removeChild(f=Za.firstChild));if(!(w.noCloneEvent&&w.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||d.isXMLDoc(a)))for(c=N(f),h=N(a),g=0;null!=(l=h[g]);++g)if(c[g]){var n=c[g],t,p=void 0,v;if(1===n.nodeType){t=n.nodeName.toLowerCase();if(!w.noCloneEvent&& n[d.expando]){v=d._data(n);for(p in v.events)d.removeEvent(n,p,v.handle);n.removeAttribute(d.expando)}if("script"===t&&n.text!==l.text)ia(n).text=l.text,A(n);else if("object"===t)n.parentNode&&(n.outerHTML=l.outerHTML),w.html5Clone&&l.innerHTML&&!d.trim(n.innerHTML)&&(n.innerHTML=l.innerHTML);else if("input"===t&&Ua.test(l.type))n.defaultChecked=n.checked=l.checked,n.value!==l.value&&(n.value=l.value);else if("option"===t)n.defaultSelected=n.selected=l.defaultSelected;else if("input"===t||"textarea"=== -t)n.defaultValue=l.defaultValue}}if(b)if(f)for(h=h||N(a),c=c||N(e),g=0;null!=(l=h[g]);g++)P(l,c[g]);else P(a,e);c=N(e,"script");0f;f++)c[a+oa[f]+b]=d[f]||d[f-2]||d[0];return c}};ub.test(a)||(d.cssHooks[a+b].set=va)});d.fn.extend({css:function(a,b){return sa(this,function(a,b,c){var f,e={},k=0;if(d.isArray(b)){c=ga(a);for(f=b.length;kc)?null:[],g=a?c+1:f.length,h=0>c?g:a?c:0;he;e++)c[a+oa[e]+b]=d[e]||d[e-2]||d[0];return c}};ub.test(a)||(d.cssHooks[a+b].set=va)});d.fn.extend({css:function(a,b){return sa(this,function(a,b,c){var e,f={},k=0;if(d.isArray(b)){c=ga(a);for(e=b.length;kc)?null:[],g=a?c+1:e.length,h=0>c?g:a?c:0;hc.indexOf(" "+e+" ")&&(c+=e+" ");c=d.trim(c);f.className!==c&&(f.className=c)}return this},removeClass:function(a){var b, -f,c,e,g,h=0,m=this.length;b=0===arguments.length||"string"===typeof a&&a;if(d.isFunction(a))return this.each(function(b){d(this).removeClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(Y)||[];hc.indexOf(" "+f+" ")&&(c+=f+" ");c=d.trim(c);e.className!==c&&(e.className=c)}return this},removeClass:function(a){var b, +e,c,f,g,h=0,m=this.length;b=0===arguments.length||"string"===typeof a&&a;if(d.isFunction(a))return this.each(function(b){d(this).removeClass(a.call(this,b,this.className))});if(b)for(b=(a||"").match(Y)||[];ha||304===a;if(c){l=t;for(var p=B,I,z,r,D,G=l.contents,K=l.dataTypes;"*"===K[0];)K.shift(),void 0===z&&(z=l.mimeType||p.getResponseHeader("Content-Type"));if(z)for(D in G)if(G[D]&&G[D].test(z)){K.unshift(D);break}if(K[0]in c)r=K[0];else{for(D in c){if(!K[0]||l.converters[D+" "+K[0]]){r=D;break}I||(I=D)}r=r||I}r?(r!==K[0]&&K.unshift(r),l=c[r]):l=void 0}a:{c=t;I=l;z=B;r=f;var P, +b){function c(a,b,c,e){var f,k,l,u;u=b;if(2!==L){L=2;m&&clearTimeout(m);v=void 0;h=e||"";B.readyState=0a||304===a;if(c){l=t;for(var p=B,I,z,r,D,G=l.contents,K=l.dataTypes;"*"===K[0];)K.shift(),void 0===z&&(z=l.mimeType||p.getResponseHeader("Content-Type"));if(z)for(D in G)if(G[D]&&G[D].test(z)){K.unshift(D);break}if(K[0]in c)r=K[0];else{for(D in c){if(!K[0]||l.converters[D+" "+K[0]]){r=D;break}I||(I=D)}r=r||I}r?(r!==K[0]&&K.unshift(r),l=c[r]):l=void 0}a:{c=t;I=l;z=B;r=e;var P, O,F,p={},G=c.dataTypes.slice();if(G[1])for(O in c.converters)p[O.toLowerCase()]=c.converters[O];for(D=G.shift();D;)if(c.responseFields[D]&&(z[c.responseFields[D]]=I),!F&&r&&c.dataFilter&&(I=c.dataFilter(I,c.dataType)),F=D,D=G.shift())if("*"===D)D=F;else if("*"!==F&&F!==D){O=p[F+" "+D]||p["* "+D];if(!O)for(P in p)if(l=P.split(" "),l[1]===D&&(O=p[F+" "+l[0]]||p["* "+l[0]])){!0===O?O=p[P]:!0!==p[P]&&(D=l[0],G.unshift(l[1]));break}if(!0!==O)if(O&&c["throws"])I=O(I);else try{I=O(I)}catch(Tb){l={state:"parsererror", -error:O?Tb:"No conversion from "+F+" to "+D};break a}}l={state:"success",data:I}}if(f)t.ifModified&&((u=B.getResponseHeader("Last-Modified"))&&(d.lastModified[g]=u),(u=B.getResponseHeader("etag"))&&(d.etag[g]=u)),204===a||"HEAD"===t.type?u="nocontent":304===a?u="notmodified":(u=l.state,e=l.data,k=l.error,f=!k);else if(k=u,a||!u)u="error",0>a&&(a=0);B.status=a;B.statusText=(b||u)+"";f?w.resolveWith(y,[e,u,B]):w.rejectWith(y,[B,u,k]);B.statusCode(da);da=void 0;n&&C.trigger(f?"ajaxSuccess":"ajaxError", -[B,t,f?e:k]);A.fireWith(y,[B,u]);n&&(C.trigger("ajaxComplete",[B,t]),--d.active||d.event.trigger("ajaxStop"))}}"object"===typeof a&&(b=a,a=void 0);b=b||{};var e,g,h,m,n,v,p,t=d.ajaxSetup({},b),y=t.context||t,C=t.context&&(y.nodeType||y.jquery)?d(y):d.event,w=d.Deferred(),A=d.Callbacks("once memory"),da=t.statusCode||{},I={},z={},L=0,r="canceled",B={readyState:0,getResponseHeader:function(a){var b;if(2===L){if(!p)for(p={};b=rc.exec(h);)p[b[1].toLowerCase()]=b[2];b=p[a.toLowerCase()]}return null==b? +error:O?Tb:"No conversion from "+F+" to "+D};break a}}l={state:"success",data:I}}if(e)t.ifModified&&((u=B.getResponseHeader("Last-Modified"))&&(d.lastModified[g]=u),(u=B.getResponseHeader("etag"))&&(d.etag[g]=u)),204===a||"HEAD"===t.type?u="nocontent":304===a?u="notmodified":(u=l.state,f=l.data,k=l.error,e=!k);else if(k=u,a||!u)u="error",0>a&&(a=0);B.status=a;B.statusText=(b||u)+"";e?w.resolveWith(y,[f,u,B]):w.rejectWith(y,[B,u,k]);B.statusCode(da);da=void 0;n&&C.trigger(e?"ajaxSuccess":"ajaxError", +[B,t,e?f:k]);A.fireWith(y,[B,u]);n&&(C.trigger("ajaxComplete",[B,t]),--d.active||d.event.trigger("ajaxStop"))}}"object"===typeof a&&(b=a,a=void 0);b=b||{};var f,g,h,m,n,v,p,t=d.ajaxSetup({},b),y=t.context||t,C=t.context&&(y.nodeType||y.jquery)?d(y):d.event,w=d.Deferred(),A=d.Callbacks("once memory"),da=t.statusCode||{},I={},z={},L=0,r="canceled",B={readyState:0,getResponseHeader:function(a){var b;if(2===L){if(!p)for(p={};b=rc.exec(h);)p[b[1].toLowerCase()]=b[2];b=p[a.toLowerCase()]}return null==b? null:b},getAllResponseHeaders:function(){return 2===L?h:null},setRequestHeader:function(a,b){var d=a.toLowerCase();L||(a=z[d]=z[d]||a,I[a]=b);return this},overrideMimeType:function(a){L||(t.mimeType=a);return this},statusCode:function(a){var b;if(a)if(2>L)for(b in a)da[b]=[da[b],a[b]];else B.always(a[B.status]);return this},abort:function(a){a=a||r;v&&v.abort(a);c(0,a);return this}};w.promise(B).complete=A.add;B.success=B.done;B.error=B.fail;t.url=((a||t.url||la)+"").replace(qc,"").replace(tc,ua[1]+ "//");t.type=b.method||b.type||t.method||t.type;t.dataTypes=d.trim(t.dataType||"*").toLowerCase().match(Y)||[""];null==t.crossDomain&&(a=zb.exec(t.url.toLowerCase()),t.crossDomain=!(!a||a[1]===ua[1]&&a[2]===ua[2]&&(a[3]||("http:"===a[1]?"80":"443"))===(ua[3]||("http:"===ua[1]?"80":"443"))));t.data&&t.processData&&"string"!==typeof t.data&&(t.data=d.param(t.data,t.traditional));D(Ab,t,b,B);if(2===L)return B;(n=d.event&&t.global)&&0===d.active++&&d.event.trigger("ajaxStart");t.type=t.type.toUpperCase(); t.hasContent=!sc.test(t.type);g=t.url;t.hasContent||(t.data&&(g=t.url+=(db.test(g)?"\x26":"?")+t.data,delete t.data),!1===t.cache&&(t.url=yb.test(g)?g.replace(yb,"$1_\x3d"+cb++):g+(db.test(g)?"\x26":"?")+"_\x3d"+cb++));t.ifModified&&(d.lastModified[g]&&B.setRequestHeader("If-Modified-Since",d.lastModified[g]),d.etag[g]&&B.setRequestHeader("If-None-Match",d.etag[g]));(t.data&&t.hasContent&&!1!==t.contentType||b.contentType)&&B.setRequestHeader("Content-Type",t.contentType);B.setRequestHeader("Accept", -t.dataTypes[0]&&t.accepts[t.dataTypes[0]]?t.accepts[t.dataTypes[0]]+("*"!==t.dataTypes[0]?", "+Bb+"; q\x3d0.01":""):t.accepts["*"]);for(e in t.headers)B.setRequestHeader(e,t.headers[e]);if(t.beforeSend&&(!1===t.beforeSend.call(y,B,t)||2===L))return B.abort();r="abort";for(e in{success:1,error:1,complete:1})B[e](t[e]);if(v=D(Va,t,b,B)){B.readyState=1;n&&C.trigger("ajaxSend",[B,t]);t.async&&0L)c(-1, -F);else throw F;}}else c(-1,"No Transport");return B},getJSON:function(a,b,c){return d.get(a,b,c,"json")},getScript:function(a,b){return d.get(a,void 0,b,"script")}});d.each(["get","post"],function(a,b){d[b]=function(a,c,e,g){d.isFunction(c)&&(g=g||e,e=c,c=void 0);return d.ajax({url:a,type:b,dataType:g,data:c,success:e})}});d._evalUrl=function(a){return d.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})};d.fn.extend({wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this, +t.dataTypes[0]&&t.accepts[t.dataTypes[0]]?t.accepts[t.dataTypes[0]]+("*"!==t.dataTypes[0]?", "+Bb+"; q\x3d0.01":""):t.accepts["*"]);for(f in t.headers)B.setRequestHeader(f,t.headers[f]);if(t.beforeSend&&(!1===t.beforeSend.call(y,B,t)||2===L))return B.abort();r="abort";for(f in{success:1,error:1,complete:1})B[f](t[f]);if(v=D(Va,t,b,B)){B.readyState=1;n&&C.trigger("ajaxSend",[B,t]);t.async&&0L)c(-1, +F);else throw F;}}else c(-1,"No Transport");return B},getJSON:function(a,b,c){return d.get(a,b,c,"json")},getScript:function(a,b){return d.get(a,void 0,b,"script")}});d.each(["get","post"],function(a,b){d[b]=function(a,c,f,g){d.isFunction(c)&&(g=g||f,f=c,c=void 0);return d.ajax({url:a,type:b,dataType:g,data:c,success:f})}});d._evalUrl=function(a){return d.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})};d.fn.extend({wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this, b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return d.isFunction(a)?this.each(function(b){d(this).wrapInner(a.call(this,b))}):this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=d.isFunction(a);return this.each(function(c){d(this).wrapAll(b? a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()}});d.expr.filters.hidden=function(a){return 0>=a.offsetWidth&&0>=a.offsetHeight||!w.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||d.css(a,"display"))};d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)};var uc=/%20/g,Nb=/\[\]$/,Cb=/\r?\n/g,vc=/^(?:submit|button|image|reset|file)$/i,wc=/^(?:input|select|textarea|keygen)/i;d.param= -function(a,b){var c,e=[],g=function(a,b){b=d.isFunction(b)?b():null==b?"":b;e[e.length]=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)};void 0===b&&(b=d.ajaxSettings&&d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){g(this.name,this.value)});else for(c in a)ea(c,a[c],b,g);return e.join("\x26").replace(uc,"+")};d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=d.prop(this, -"elements");return a?d.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!d(this).is(":disabled")&&wc.test(this.nodeName)&&!vc.test(a)&&(this.checked||!Ua.test(a))}).map(function(a,b){a=d(this).val();return null==a?null:d.isArray(a)?d.map(a,function(a){return{name:b.name,value:a.replace(Cb,"\r\n")}}):{name:b.name,value:a.replace(Cb,"\r\n")}}).get()}});d.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){var a;if(!(a=!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&& -La()))a:{try{a=new e.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}a=void 0}return a}:La;var xc=0,Ra={},Sa=d.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var a in Ra)Ra[a](void 0,!0)});w.cors=!!Sa&&"withCredentials"in Sa;(Sa=w.ajax=!!Sa)&&d.ajaxTransport(function(a){if(!a.crossDomain||w.cors){var b;return{send:function(c,e){var f,g=a.xhr(),k=++xc;g.open(a.type,a.url,a.async,a.username,a.password);if(a.xhrFields)for(f in a.xhrFields)g[f]=a.xhrFields[f];a.mimeType&& -g.overrideMimeType&&g.overrideMimeType(a.mimeType);a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(f in c)void 0!==c[f]&&g.setRequestHeader(f,c[f]+"");g.send(a.hasContent&&a.data||null);b=function(c,f){var h,l,m;if(b&&(f||4===g.readyState))if(delete Ra[k],b=void 0,g.onreadystatechange=d.noop,f)4!==g.readyState&&g.abort();else{m={};h=g.status;"string"===typeof g.responseText&&(m.text=g.responseText);try{l=g.statusText}catch(Mb){l=""}h||!a.isLocal||a.crossDomain?1223=== -h&&(h=204):h=m.text?200:404}m&&e(h,l,m,g.getAllResponseHeaders())};a.async?4===g.readyState?setTimeout(b):g.onreadystatechange=Ra[k]=b:b()},abort:function(){b&&b(void 0,!0)}}}});d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){d.globalEval(a);return a}}});d.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1);a.crossDomain&&(a.type="GET", -a.global=!1)});d.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||d("head")[0]||z.documentElement;return{send:function(d,f){b=z.createElement("script");b.async=!0;a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,d){if(d||!b.readyState||/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,d||f(200,"success")};c.insertBefore(b,c.firstChild)},abort:function(){if(b)b.onload(void 0, -!0)}}}});var Db=[],eb=/(=)\?(?=&|$)|\?\?/;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Db.pop()||d.expando+"_"+cb++;this[a]=!0;return a}});d.ajaxPrefilter("json jsonp",function(a,b,c){var f,g,h,m=!1!==a.jsonp&&(eb.test(a.url)?"url":"string"===typeof a.data&&!(a.contentType||"").indexOf("application/x-www-form-urlencoded")&&eb.test(a.data)&&"data");if(m||"jsonp"===a.dataTypes[0])return f=a.jsonpCallback=d.isFunction(a.jsonpCallback)?a.jsonpCallback():a.jsonpCallback,m?a[m]=a[m].replace(eb, -"$1"+f):!1!==a.jsonp&&(a.url+=(db.test(a.url)?"\x26":"?")+a.jsonp+"\x3d"+f),a.converters["script json"]=function(){h||d.error(f+" was not called");return h[0]},a.dataTypes[0]="json",g=e[f],e[f]=function(){h=arguments},c.always(function(){e[f]=g;a[f]&&(a.jsonpCallback=b.jsonpCallback,Db.push(f));h&&d.isFunction(g)&&g(h[0]);h=g=void 0}),"script"});d.parseHTML=function(a,b,c){if(!a||"string"!==typeof a)return null;"boolean"===typeof b&&(c=b,b=!1);b=b||z;var f=mb.exec(a);c=!c&&[];if(f)return[b.createElement(f[1])]; -f=d.buildFragment([a],b,c);c&&c.length&&d(c).remove();return d.merge([],f.childNodes)};var Eb=d.fn.load;d.fn.load=function(a,b,c){if("string"!==typeof a&&Eb)return Eb.apply(this,arguments);var f,e,g,h=this,m=a.indexOf(" ");0<=m&&(f=d.trim(a.slice(m,a.length)),a=a.slice(0,m));d.isFunction(b)?(c=b,b=void 0):b&&"object"===typeof b&&(g="POST");0this.$items.length-1||0>c))return this.sliding?this.$element.one("slid",function(){h.to(c)}):g==c?this.pause().cycle():this.slide(c>g?"next":"prev",e(this.$items[c]))},pause:function(c){c||(this.paused=!0);this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end), -this.cycle(!0));clearInterval(this.interval);this.interval=null;return this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(c,g){var h=this.$element.find(".item.active"),m=g||h[c]();g=this.interval;var n="next"==c?"left":"right",p="next"==c?"first":"last",r=this;this.sliding=!0;g&&this.pause();m=m.length?m:this.$element.find(".item")[p]();p=e.Event("slide",{relatedTarget:m[0],direction:n});if(!m.hasClass("active")){this.$indicators.length&& -(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var c=e(r.$indicators.children()[r.getActiveIndex()]);c&&c.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(p);if(p.isDefaultPrevented())return;m.addClass(c);m[0].offsetWidth;h.addClass(n);m.addClass(n);this.$element.one(e.support.transition.end,function(){m.removeClass([c,n].join(" ")).addClass("active");h.removeClass(["active",n].join(" "));r.sliding=!1; -setTimeout(function(){r.$element.trigger("slid")},0)})}else{this.$element.trigger(p);if(p.isDefaultPrevented())return;h.removeClass("active");m.addClass("active");this.sliding=!1;this.$element.trigger("slid")}g&&this.cycle();return this}}};var x=e.fn.carousel;e.fn.carousel=function(c){return this.each(function(){var g=e(this),h=g.data("carousel"),m=e.extend({},e.fn.carousel.defaults,"object"==typeof c&&c),n="string"==typeof c?c:m.slide;h||g.data("carousel",h=new p(this,m));if("number"==typeof c)h.to(c); -else if(n)h[n]();else m.interval&&h.pause().cycle()})};e.fn.carousel.defaults={interval:5E3,pause:"hover"};e.fn.carousel.Constructor=p;e.fn.carousel.noConflict=function(){e.fn.carousel=x;return this};e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(c){var g=e(this),h,m=e(g.attr("data-target")||(h=g.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,""));h=e.extend({},m.data(),g.data());var n;m.carousel(h);(n=g.attr("data-slide-to"))&&m.data("carousel").pause().to(n).cycle(); +function(a,b){var c,f=[],g=function(a,b){b=d.isFunction(b)?b():null==b?"":b;f[f.length]=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)};void 0===b&&(b=d.ajaxSettings&&d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){g(this.name,this.value)});else for(c in a)ea(c,a[c],b,g);return f.join("\x26").replace(uc,"+")};d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=d.prop(this, +"elements");return a?d.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!d(this).is(":disabled")&&wc.test(this.nodeName)&&!vc.test(a)&&(this.checked||!Ua.test(a))}).map(function(a,b){a=d(this).val();return null==a?null:d.isArray(a)?d.map(a,function(a){return{name:b.name,value:a.replace(Cb,"\r\n")}}):{name:b.name,value:a.replace(Cb,"\r\n")}}).get()}});d.ajaxSettings.xhr=void 0!==g.ActiveXObject?function(){var a;if(!(a=!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&& +La()))a:{try{a=new g.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}a=void 0}return a}:La;var xc=0,Ra={},Sa=d.ajaxSettings.xhr();g.attachEvent&&g.attachEvent("onunload",function(){for(var a in Ra)Ra[a](void 0,!0)});w.cors=!!Sa&&"withCredentials"in Sa;(Sa=w.ajax=!!Sa)&&d.ajaxTransport(function(a){if(!a.crossDomain||w.cors){var b;return{send:function(c,f){var e,g=a.xhr(),k=++xc;g.open(a.type,a.url,a.async,a.username,a.password);if(a.xhrFields)for(e in a.xhrFields)g[e]=a.xhrFields[e];a.mimeType&& +g.overrideMimeType&&g.overrideMimeType(a.mimeType);a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&g.setRequestHeader(e,c[e]+"");g.send(a.hasContent&&a.data||null);b=function(c,e){var h,l,m;if(b&&(e||4===g.readyState))if(delete Ra[k],b=void 0,g.onreadystatechange=d.noop,e)4!==g.readyState&&g.abort();else{m={};h=g.status;"string"===typeof g.responseText&&(m.text=g.responseText);try{l=g.statusText}catch(Mb){l=""}h||!a.isLocal||a.crossDomain?1223=== +h&&(h=204):h=m.text?200:404}m&&f(h,l,m,g.getAllResponseHeaders())};a.async?4===g.readyState?setTimeout(b):g.onreadystatechange=Ra[k]=b:b()},abort:function(){b&&b(void 0,!0)}}}});d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){d.globalEval(a);return a}}});d.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1);a.crossDomain&&(a.type="GET", +a.global=!1)});d.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||d("head")[0]||z.documentElement;return{send:function(d,e){b=z.createElement("script");b.async=!0;a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,d){if(d||!b.readyState||/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,d||e(200,"success")};c.insertBefore(b,c.firstChild)},abort:function(){if(b)b.onload(void 0, +!0)}}}});var Db=[],eb=/(=)\?(?=&|$)|\?\?/;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Db.pop()||d.expando+"_"+cb++;this[a]=!0;return a}});d.ajaxPrefilter("json jsonp",function(a,b,c){var e,f,h,m=!1!==a.jsonp&&(eb.test(a.url)?"url":"string"===typeof a.data&&!(a.contentType||"").indexOf("application/x-www-form-urlencoded")&&eb.test(a.data)&&"data");if(m||"jsonp"===a.dataTypes[0])return e=a.jsonpCallback=d.isFunction(a.jsonpCallback)?a.jsonpCallback():a.jsonpCallback,m?a[m]=a[m].replace(eb, +"$1"+e):!1!==a.jsonp&&(a.url+=(db.test(a.url)?"\x26":"?")+a.jsonp+"\x3d"+e),a.converters["script json"]=function(){h||d.error(e+" was not called");return h[0]},a.dataTypes[0]="json",f=g[e],g[e]=function(){h=arguments},c.always(function(){g[e]=f;a[e]&&(a.jsonpCallback=b.jsonpCallback,Db.push(e));h&&d.isFunction(f)&&f(h[0]);h=f=void 0}),"script"});d.parseHTML=function(a,b,c){if(!a||"string"!==typeof a)return null;"boolean"===typeof b&&(c=b,b=!1);b=b||z;var e=mb.exec(a);c=!c&&[];if(e)return[b.createElement(e[1])]; +e=d.buildFragment([a],b,c);c&&c.length&&d(c).remove();return d.merge([],e.childNodes)};var Eb=d.fn.load;d.fn.load=function(a,b,c){if("string"!==typeof a&&Eb)return Eb.apply(this,arguments);var e,f,g,h=this,m=a.indexOf(" ");0<=m&&(e=d.trim(a.slice(m,a.length)),a=a.slice(0,m));d.isFunction(b)?(c=b,b=void 0):b&&"object"===typeof b&&(g="POST");0this.$items.length-1||0>c))return this.sliding?this.$element.one("slid",function(){h.to(c)}):f==c?this.pause().cycle():this.slide(c>f?"next":"prev",g(this.$items[c]))},pause:function(c){c||(this.paused=!0);this.$element.find(".next, .prev").length&&g.support.transition.end&&(this.$element.trigger(g.support.transition.end), +this.cycle(!0));clearInterval(this.interval);this.interval=null;return this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(c,f){var h=this.$element.find(".item.active"),m=f||h[c]();f=this.interval;var n="next"==c?"left":"right",p="next"==c?"first":"last",r=this;this.sliding=!0;f&&this.pause();m=m.length?m:this.$element.find(".item")[p]();p=g.Event("slide",{relatedTarget:m[0],direction:n});if(!m.hasClass("active")){this.$indicators.length&& +(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var c=g(r.$indicators.children()[r.getActiveIndex()]);c&&c.addClass("active")}));if(g.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(p);if(p.isDefaultPrevented())return;m.addClass(c);m[0].offsetWidth;h.addClass(n);m.addClass(n);this.$element.one(g.support.transition.end,function(){m.removeClass([c,n].join(" ")).addClass("active");h.removeClass(["active",n].join(" "));r.sliding=!1; +setTimeout(function(){r.$element.trigger("slid")},0)})}else{this.$element.trigger(p);if(p.isDefaultPrevented())return;h.removeClass("active");m.addClass("active");this.sliding=!1;this.$element.trigger("slid")}f&&this.cycle();return this}}};var x=g.fn.carousel;g.fn.carousel=function(c){return this.each(function(){var f=g(this),h=f.data("carousel"),m=g.extend({},g.fn.carousel.defaults,"object"==typeof c&&c),n="string"==typeof c?c:m.slide;h||f.data("carousel",h=new p(this,m));if("number"==typeof c)h.to(c); +else if(n)h[n]();else m.interval&&h.pause().cycle()})};g.fn.carousel.defaults={interval:5E3,pause:"hover"};g.fn.carousel.Constructor=p;g.fn.carousel.noConflict=function(){g.fn.carousel=x;return this};g(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(c){var f=g(this),h,m=g(f.attr("data-target")||(h=f.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,""));h=g.extend({},m.data(),f.data());var n;m.carousel(h);(n=f.attr("data-slide-to"))&&m.data("carousel").pause().to(n).cycle(); c.preventDefault()})}(window.jQuery); -!function(e){var p=function(c,g){this.$element=e(c);this.options=e.extend({},e.fn.collapse.defaults,g);this.options.parent&&(this.$parent=e(this.options.parent));this.options.toggle&&this.toggle()};p.prototype={constructor:p,dimension:function(){return this.$element.hasClass("width")?"width":"height"},show:function(){var c,g,h,m;if(!this.transitioning&&!this.$element.hasClass("in")){c=this.dimension();g=e.camelCase(["scroll",c].join("-"));if((h=this.$parent&&this.$parent.find("\x3e .accordion-group \x3e .in"))&&h.length){if((m= -h.data("collapse"))&&m.transitioning)return;h.collapse("hide");m||h.data("collapse",null)}this.$element[c](0);this.transition("addClass",e.Event("show"),"shown");e.support.transition&&this.$element[c](this.$element[0][g])}},hide:function(){var c;!this.transitioning&&this.$element.hasClass("in")&&(c=this.dimension(),this.reset(this.$element[c]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[c](0))},reset:function(c){var e=this.dimension();this.$element.removeClass("collapse")[e](c|| -"auto")[0].offsetWidth;this.$element[null!==c?"addClass":"removeClass"]("collapse");return this},transition:function(c,g,h){var m=this,n=function(){"show"==g.type&&m.reset();m.transitioning=0;m.$element.trigger(h)};this.$element.trigger(g);g.isDefaultPrevented()||(this.transitioning=1,this.$element[c]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,n):n())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var x=e.fn.collapse; -e.fn.collapse=function(c){return this.each(function(){var g=e(this),h=g.data("collapse"),m=e.extend({},e.fn.collapse.defaults,g.data(),"object"==typeof c&&c);h||g.data("collapse",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.collapse.defaults={toggle:!0};e.fn.collapse.Constructor=p;e.fn.collapse.noConflict=function(){e.fn.collapse=x;return this};e(document).on("click.collapse.data-api","[data-toggle\x3dcollapse]",function(c){var g=e(this),h;c=g.attr("data-target")||c.preventDefault()||(h= -g.attr("href"))&&h.replace(/.*(?=#[^\s]+$)/,"");h=e(c).data("collapse")?"toggle":g.data();g[e(c).hasClass("in")?"addClass":"removeClass"]("collapsed");e(c).collapse(h)})}(window.jQuery); -!function(e){function p(){e(".dropdown-backdrop").remove();e("[data-toggle\x3ddropdown]").each(function(){x(e(this)).removeClass("open")})}function x(c){var g=c.attr("data-target");g||(g=(g=c.attr("href"))&&/#/.test(g)&&g.replace(/.*(?=#[^\s]*$)/,""));(g=g&&e(g))&&g.length||(g=c.parent());return g}var c=function(c){var g=e(c).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){g.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(c){c= -e(this);var g,h;if(!c.is(".disabled, :disabled")){g=x(c);h=g.hasClass("open");p();if(!h){if("ontouchstart"in document.documentElement)e('\x3cdiv class\x3d"dropdown-backdrop"/\x3e').insertBefore(e(this)).on("click",p);g.toggleClass("open")}c.focus();return!1}},keydown:function(c){var g,h,p;if(/(38|40|27)/.test(c.keyCode)&&(g=e(this),c.preventDefault(),c.stopPropagation(),!g.is(".disabled, :disabled"))){h=x(g);p=h.hasClass("open");if(!p||p&&27==c.keyCode)return 27==c.which&&h.find("[data-toggle\x3ddropdown]").focus(), -g.click();g=e("[role\x3dmenu] li:not(.divider):visible a",h);g.length&&(h=g.index(g.filter(":focus")),38==c.keyCode&&0c.left&&(e=-2*c.left,c.left=0,g.offset(c),p=g[0].offsetWidth),this.replaceArrow(e-m+p,p,"left")):this.replaceArrow(r-n,r,"top");x&&g.offset(c)},replaceArrow:function(c,e,h){this.arrow().css(h,c?50*(1-c/e)+"%":"")},setContent:function(){var c=this.tip(),e=this.getTitle();c.find(".tooltip-inner")[this.options.html?"html":"text"](e);c.removeClass("fade in top bottom left right")},hide:function(){function c(){var c= -setTimeout(function(){g.off(e.support.transition.end).detach()},500);g.one(e.support.transition.end,function(){clearTimeout(c);g.detach()})}var g=this.tip(),h=e.Event("hide");this.$element.trigger(h);if(!h.isDefaultPrevented())return g.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?c():g.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var c=this.$element;(c.attr("title")||"string"!=typeof c.attr("data-original-title"))&&c.attr("data-original-title",c.attr("title")|| -"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var c=this.$element[0];return e.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():{width:c.offsetWidth,height:c.offsetHeight},this.$element.offset())},getTitle:function(){var c=this.$element,e=this.options;return c.attr("data-original-title")||("function"==typeof e.title?e.title.call(c[0]):e.title)},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow= -this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(c){c=c?e(c.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var x=e.fn.tooltip; -e.fn.tooltip=function(c){return this.each(function(){var g=e(this),h=g.data("tooltip"),m="object"==typeof c&&c;h||g.data("tooltip",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.tooltip.Constructor=p;e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'\x3cdiv class\x3d"tooltip"\x3e\x3cdiv class\x3d"tooltip-arrow"\x3e\x3c/div\x3e\x3cdiv class\x3d"tooltip-inner"\x3e\x3c/div\x3e\x3c/div\x3e',trigger:"hover focus",title:"",delay:0,html:!1,container:!1};e.fn.tooltip.noConflict= -function(){e.fn.tooltip=x;return this}}(window.jQuery); -!function(e){var p=function(c,e){this.init("popover",c,e)};p.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:p,setContent:function(){var c=this.tip(),e=this.getTitle(),h=this.getContent();c.find(".popover-title")[this.options.html?"html":"text"](e);c.find(".popover-content")[this.options.html?"html":"text"](h);c.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var c=this.$element,e=this.options; -return("function"==typeof e.content?e.content.call(c[0]):e.content)||c.attr("data-content")},tip:function(){this.$tip||(this.$tip=e(this.options.template));return this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var x=e.fn.popover;e.fn.popover=function(c){return this.each(function(){var g=e(this),h=g.data("popover"),m="object"==typeof c&&c;h||g.data("popover",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.popover.Constructor=p;e.fn.popover.defaults= -e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'\x3cdiv class\x3d"popover"\x3e\x3cdiv class\x3d"arrow"\x3e\x3c/div\x3e\x3ch3 class\x3d"popover-title"\x3e\x3c/h3\x3e\x3cdiv class\x3d"popover-content"\x3e\x3c/div\x3e\x3c/div\x3e'});e.fn.popover.noConflict=function(){e.fn.popover=x;return this}}(window.jQuery); -!function(e){function p(c,g){var h=e.proxy(this.process,this),m=e(c).is("body")?e(window):e(c),n;this.options=e.extend({},e.fn.scrollspy.defaults,g);this.$scrollElement=m.on("scroll.scroll-spy.data-api",h);this.selector=(this.options.target||(n=e(c).attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li \x3e a";this.$body=e("body");this.refresh();this.process()}p.prototype={constructor:p,refresh:function(){var c=this;this.offsets=e([]);this.targets=e([]);this.$body.find(this.selector).map(function(){var g= -e(this),g=g.data("target")||g.attr("href"),h=/^#\w/.test(g)&&e(g);return h&&h.length&&[[h.position().top+(!e.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),g]]||null}).sort(function(c,e){return c[0]-e[0]}).each(function(){c.offsets.push(this[0]);c.targets.push(this[1])})},process:function(){var c=this.$scrollElement.scrollTop()+this.options.offset,e=(this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight)-this.$scrollElement.height(),h=this.offsets,m=this.targets,n=this.activeTarget, -p;if(c>=e)return n!=(p=m.last()[0])&&this.activate(p);for(p=h.length;p--;)n!=m[p]&&c>=h[p]&&(!h[p+1]||c<=h[p+1])&&this.activate(m[p])},activate:function(c){this.activeTarget=c;e(this.selector).parent(".active").removeClass("active");c=e(this.selector+'[data-target\x3d"'+c+'"],'+this.selector+'[href\x3d"'+c+'"]').parent("li").addClass("active");c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active"));c.trigger("activate")}};var x=e.fn.scrollspy;e.fn.scrollspy=function(c){return this.each(function(){var g= -e(this),h=g.data("scrollspy"),m="object"==typeof c&&c;h||g.data("scrollspy",h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.scrollspy.Constructor=p;e.fn.scrollspy.defaults={offset:10};e.fn.scrollspy.noConflict=function(){e.fn.scrollspy=x;return this};e(window).on("load",function(){e('[data-spy\x3d"scroll"]').each(function(){var c=e(this);c.scrollspy(c.data())})})}(window.jQuery); -!function(e){var p=function(c){this.element=e(c)};p.prototype={constructor:p,show:function(){var c=this.element,g=c.closest("ul:not(.dropdown-menu)"),h=c.attr("data-target"),m,n;h||(h=(h=c.attr("href"))&&h.replace(/.*(?=#[^\s]*$)/,""));c.parent("li").hasClass("active")||(m=g.find(".active:last a")[0],n=e.Event("show",{relatedTarget:m}),c.trigger(n),n.isDefaultPrevented()||(h=e(h),this.activate(c.parent("li"),g),this.activate(h,h.parent(),function(){c.trigger({type:"shown",relatedTarget:m})})))},activate:function(c, -g,h){function m(){n.removeClass("active").find("\x3e .dropdown-menu \x3e .active").removeClass("active");c.addClass("active");p?(c[0].offsetWidth,c.addClass("in")):c.removeClass("fade");c.parent(".dropdown-menu")&&c.closest("li.dropdown").addClass("active");h&&h()}var n=g.find("\x3e .active"),p=h&&e.support.transition&&n.hasClass("fade");p?n.one(e.support.transition.end,m):m();n.removeClass("in")}};var x=e.fn.tab;e.fn.tab=function(c){return this.each(function(){var g=e(this),h=g.data("tab");h||g.data("tab", -h=new p(this));if("string"==typeof c)h[c]()})};e.fn.tab.Constructor=p;e.fn.tab.noConflict=function(){e.fn.tab=x;return this};e(document).on("click.tab.data-api",'[data-toggle\x3d"tab"], [data-toggle\x3d"pill"]',function(c){c.preventDefault();e(this).tab("show")})}(window.jQuery); -!function(e){var p=function(c,g){this.$element=e(c);this.options=e.extend({},e.fn.typeahead.defaults,g);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=e(this.options.menu);this.shown=!1;this.listen()};p.prototype={constructor:p,select:function(){var c=this.$menu.find(".active").attr("data-value");this.$element.val(this.updater(c)).change(); -return this.hide()},updater:function(c){return c},show:function(){var c=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});this.$menu.insertAfter(this.$element).css({top:c.top+c.height,left:c.left}).show();this.shown=!0;return this},hide:function(){this.$menu.hide();this.shown=!1;return this},lookup:function(c){this.query=this.$element.val();return!this.query||this.query.lengthc.left&&(f=-2*c.left,c.left=0,g.offset(c),p=g[0].offsetWidth),this.replaceArrow(f-m+p,p,"left")):this.replaceArrow(r-n,r,"top");x&&g.offset(c)},replaceArrow:function(c,f,g){this.arrow().css(g,c?50*(1-c/f)+"%":"")},setContent:function(){var c=this.tip(),f=this.getTitle();c.find(".tooltip-inner")[this.options.html?"html":"text"](f);c.removeClass("fade in top bottom left right")},hide:function(){function c(){var c= +setTimeout(function(){f.off(g.support.transition.end).detach()},500);f.one(g.support.transition.end,function(){clearTimeout(c);f.detach()})}var f=this.tip(),h=g.Event("hide");this.$element.trigger(h);if(!h.isDefaultPrevented())return f.removeClass("in"),g.support.transition&&this.$tip.hasClass("fade")?c():f.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var c=this.$element;(c.attr("title")||"string"!=typeof c.attr("data-original-title"))&&c.attr("data-original-title",c.attr("title")|| +"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var c=this.$element[0];return g.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():{width:c.offsetWidth,height:c.offsetHeight},this.$element.offset())},getTitle:function(){var c=this.$element,f=this.options;return c.attr("data-original-title")||("function"==typeof f.title?f.title.call(c[0]):f.title)},tip:function(){return this.$tip=this.$tip||g(this.options.template)},arrow:function(){return this.$arrow= +this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(c){c=c?g(c.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var x=g.fn.tooltip; +g.fn.tooltip=function(c){return this.each(function(){var f=g(this),h=f.data("tooltip"),m="object"==typeof c&&c;h||f.data("tooltip",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.tooltip.Constructor=p;g.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'\x3cdiv class\x3d"tooltip"\x3e\x3cdiv class\x3d"tooltip-arrow"\x3e\x3c/div\x3e\x3cdiv class\x3d"tooltip-inner"\x3e\x3c/div\x3e\x3c/div\x3e',trigger:"hover focus",title:"",delay:0,html:!1,container:!1};g.fn.tooltip.noConflict= +function(){g.fn.tooltip=x;return this}}(window.jQuery); +!function(g){var p=function(c,f){this.init("popover",c,f)};p.prototype=g.extend({},g.fn.tooltip.Constructor.prototype,{constructor:p,setContent:function(){var c=this.tip(),f=this.getTitle(),g=this.getContent();c.find(".popover-title")[this.options.html?"html":"text"](f);c.find(".popover-content")[this.options.html?"html":"text"](g);c.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var c=this.$element,f=this.options; +return("function"==typeof f.content?f.content.call(c[0]):f.content)||c.attr("data-content")},tip:function(){this.$tip||(this.$tip=g(this.options.template));return this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var x=g.fn.popover;g.fn.popover=function(c){return this.each(function(){var f=g(this),h=f.data("popover"),m="object"==typeof c&&c;h||f.data("popover",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.popover.Constructor=p;g.fn.popover.defaults= +g.extend({},g.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'\x3cdiv class\x3d"popover"\x3e\x3cdiv class\x3d"arrow"\x3e\x3c/div\x3e\x3ch3 class\x3d"popover-title"\x3e\x3c/h3\x3e\x3cdiv class\x3d"popover-content"\x3e\x3c/div\x3e\x3c/div\x3e'});g.fn.popover.noConflict=function(){g.fn.popover=x;return this}}(window.jQuery); +!function(g){function p(c,f){var h=g.proxy(this.process,this),m=g(c).is("body")?g(window):g(c),n;this.options=g.extend({},g.fn.scrollspy.defaults,f);this.$scrollElement=m.on("scroll.scroll-spy.data-api",h);this.selector=(this.options.target||(n=g(c).attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li \x3e a";this.$body=g("body");this.refresh();this.process()}p.prototype={constructor:p,refresh:function(){var c=this;this.offsets=g([]);this.targets=g([]);this.$body.find(this.selector).map(function(){var f= +g(this),f=f.data("target")||f.attr("href"),h=/^#\w/.test(f)&&g(f);return h&&h.length&&[[h.position().top+(!g.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),f]]||null}).sort(function(c,g){return c[0]-g[0]}).each(function(){c.offsets.push(this[0]);c.targets.push(this[1])})},process:function(){var c=this.$scrollElement.scrollTop()+this.options.offset,f=(this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight)-this.$scrollElement.height(),g=this.offsets,m=this.targets,n=this.activeTarget, +p;if(c>=f)return n!=(p=m.last()[0])&&this.activate(p);for(p=g.length;p--;)n!=m[p]&&c>=g[p]&&(!g[p+1]||c<=g[p+1])&&this.activate(m[p])},activate:function(c){this.activeTarget=c;g(this.selector).parent(".active").removeClass("active");c=g(this.selector+'[data-target\x3d"'+c+'"],'+this.selector+'[href\x3d"'+c+'"]').parent("li").addClass("active");c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active"));c.trigger("activate")}};var x=g.fn.scrollspy;g.fn.scrollspy=function(c){return this.each(function(){var f= +g(this),h=f.data("scrollspy"),m="object"==typeof c&&c;h||f.data("scrollspy",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.scrollspy.Constructor=p;g.fn.scrollspy.defaults={offset:10};g.fn.scrollspy.noConflict=function(){g.fn.scrollspy=x;return this};g(window).on("load",function(){g('[data-spy\x3d"scroll"]').each(function(){var c=g(this);c.scrollspy(c.data())})})}(window.jQuery); +!function(g){var p=function(c){this.element=g(c)};p.prototype={constructor:p,show:function(){var c=this.element,f=c.closest("ul:not(.dropdown-menu)"),h=c.attr("data-target"),m,n;h||(h=(h=c.attr("href"))&&h.replace(/.*(?=#[^\s]*$)/,""));c.parent("li").hasClass("active")||(m=f.find(".active:last a")[0],n=g.Event("show",{relatedTarget:m}),c.trigger(n),n.isDefaultPrevented()||(h=g(h),this.activate(c.parent("li"),f),this.activate(h,h.parent(),function(){c.trigger({type:"shown",relatedTarget:m})})))},activate:function(c, +f,h){function m(){n.removeClass("active").find("\x3e .dropdown-menu \x3e .active").removeClass("active");c.addClass("active");p?(c[0].offsetWidth,c.addClass("in")):c.removeClass("fade");c.parent(".dropdown-menu")&&c.closest("li.dropdown").addClass("active");h&&h()}var n=f.find("\x3e .active"),p=h&&g.support.transition&&n.hasClass("fade");p?n.one(g.support.transition.end,m):m();n.removeClass("in")}};var x=g.fn.tab;g.fn.tab=function(c){return this.each(function(){var f=g(this),h=f.data("tab");h||f.data("tab", +h=new p(this));if("string"==typeof c)h[c]()})};g.fn.tab.Constructor=p;g.fn.tab.noConflict=function(){g.fn.tab=x;return this};g(document).on("click.tab.data-api",'[data-toggle\x3d"tab"], [data-toggle\x3d"pill"]',function(c){c.preventDefault();g(this).tab("show")})}(window.jQuery); +!function(g){var p=function(c,f){this.$element=g(c);this.options=g.extend({},g.fn.typeahead.defaults,f);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.source=this.options.source;this.$menu=g(this.options.menu);this.shown=!1;this.listen()};p.prototype={constructor:p,select:function(){var c=this.$menu.find(".active").attr("data-value");this.$element.val(this.updater(c)).change(); +return this.hide()},updater:function(c){return c},show:function(){var c=g.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});this.$menu.insertAfter(this.$element).css({top:c.top+c.height,left:c.left}).show();this.shown=!0;return this},hide:function(){this.$menu.hide();this.shown=!1;return this},lookup:function(c){this.query=this.$element.val();return!this.query||this.query.length=c-n?"bottom":null!=p&&g<=p?"top":!1;this.affixed!==c&&(this.affixed=c,this.unpin="bottom"==c?h.top-g:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(c?"-"+c:"")))}};var x=e.fn.affix;e.fn.affix=function(c){return this.each(function(){var g=e(this),h=g.data("affix"),m="object"==typeof c&&c;h||g.data("affix", -h=new p(this,m));if("string"==typeof c)h[c]()})};e.fn.affix.Constructor=p;e.fn.affix.defaults={offset:0};e.fn.affix.noConflict=function(){e.fn.affix=x;return this};e(window).on("load",function(){e('[data-spy\x3d"affix"]').each(function(){var c=e(this),g=c.data();g.offset=g.offset||{};g.offsetBottom&&(g.offset.bottom=g.offsetBottom);g.offsetTop&&(g.offset.top=g.offsetTop);c.affix(g)})})}(window.jQuery);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; -(function(){function e(c){function e(c){var e=c.charCodeAt(0);if(92!==e)return e;var g=c.charAt(1);return(e=H[g])?e:"0"<=g&&"7">=g?parseInt(c.substring(1),8):"u"===g||"x"===g?parseInt(c.substring(2),16):c.charCodeAt(1)}function g(c){if(32>c)return(16>c?"\\x0":"\\x")+c.toString(16);c=String.fromCharCode(c);if("\\"===c||"-"===c||"["===c||"]"===c)c="\\"+c;return c}function h(c){var h=c.substring(1,c.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g);c= -[];for(var m=[],n="^"===h[0],p=n?1:0,v=h.length;pr||122r||90r||122v[0]&&(v[1]+1>v[0]&&m.push("-"),m.push(g(v[1])));m.push("]");return m.join("")}function m(c){for(var e=c.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),g=e.length,m=[],v=0,A=0;v/, -q])):g.push(["com",/^#[^\n\r]*/,q,"#"]));e.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,q]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));e.regexLiterals&&h.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(m=e.types)&& -h.push(["typ",m]);e=(""+e.keywords).replace(/^ | $/g,"");e.length&&h.push(["kwd",RegExp("^(?:"+e.replace(/[\s,]+/g,"|")+")\\b"),q]);g.push(["pln",/^\s+/,q," \r\n\t "]);h.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return c(g,h)}function h(c,e){function g(c){switch(c.nodeType){case 1:if(m.test(c.className))break; -if("BR"===c.nodeName)h(c),c.parentNode&&c.parentNode.removeChild(c);else for(c=c.firstChild;c;c=c.nextSibling)g(c);break;case 3:case 4:if(A){var e=c.nodeValue,r=e.match(p);if(r){var v=e.substring(0,r.index);c.nodeValue=v;(e=e.substring(r.index+r[0].length))&&c.parentNode.insertBefore(n.createTextNode(e),c.nextSibling);h(c);v||c.parentNode.removeChild(c)}}}}function h(c){function e(c,g){g=g?c.cloneNode(!1):c;var h=c.parentNode;if(h){h=e(h,1);c=c.nextSibling;h.appendChild(g);for(var m=c;m;m=c)c=m.nextSibling, -h.appendChild(m)}return g}for(;!c.nextSibling;)if(c=c.parentNode,!c)return;c=e(c.nextSibling,0);for(var g;(g=c.parentNode)&&1===g.nodeType;)c=g;x.push(c)}var m=/(?:^|\s)nocode(?:\s|$)/,p=/\r\n?|\n/,n=c.ownerDocument,r;c.currentStyle?r=c.currentStyle.whiteSpace:window.getComputedStyle&&(r=n.defaultView.getComputedStyle(c,q).getPropertyValue("white-space"));var A=r&&"pre"===r.substring(0,3);for(r=n.createElement("LI");c.firstChild;)r.appendChild(c.firstChild);for(var x=[r],E=0;E=G&&(h+=2);g>=C&&(c+=2)}}catch(Z){"console"in window&&console.log(Z&&Z.stack?Z.stack:Z)}}var r=["break,continue,do,else,for,if,return,while"],E=[[r,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +this.select();this.$element.focus()},mouseenter:function(c){this.mousedover=!0;this.$menu.find(".active").removeClass("active");g(c.currentTarget).addClass("active")},mouseleave:function(c){this.mousedover=!1;!this.focused&&this.shown&&this.hide()}};var x=g.fn.typeahead;g.fn.typeahead=function(c){return this.each(function(){var f=g(this),h=f.data("typeahead"),m="object"==typeof c&&c;h||f.data("typeahead",h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.typeahead.defaults={source:[],items:8,menu:'\x3cul class\x3d"typeahead dropdown-menu"\x3e\x3c/ul\x3e', +item:'\x3cli\x3e\x3ca href\x3d"#"\x3e\x3c/a\x3e\x3c/li\x3e',minLength:1};g.fn.typeahead.Constructor=p;g.fn.typeahead.noConflict=function(){g.fn.typeahead=x;return this};g(document).on("focus.typeahead.data-api",'[data-provide\x3d"typeahead"]',function(c){c=g(this);c.data("typeahead")||c.typeahead(c.data())})}(window.jQuery); +!function(g){var p=function(c,f){this.options=g.extend({},g.fn.affix.defaults,f);this.$window=g(window).on("scroll.affix.data-api",g.proxy(this.checkPosition,this)).on("click.affix.data-api",g.proxy(function(){setTimeout(g.proxy(this.checkPosition,this),1)},this));this.$element=g(c);this.checkPosition()};p.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=g(document).height(),f=this.$window.scrollTop(),h=this.$element.offset(),m=this.options.offset,n=m.bottom,p=m.top;"object"!= +typeof m&&(n=p=m);"function"==typeof p&&(p=m.top());"function"==typeof n&&(n=m.bottom());c=null!=this.unpin&&f+this.unpin<=h.top?!1:null!=n&&h.top+this.$element.height()>=c-n?"bottom":null!=p&&f<=p?"top":!1;this.affixed!==c&&(this.affixed=c,this.unpin="bottom"==c?h.top-f:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(c?"-"+c:"")))}};var x=g.fn.affix;g.fn.affix=function(c){return this.each(function(){var f=g(this),h=f.data("affix"),m="object"==typeof c&&c;h||f.data("affix", +h=new p(this,m));if("string"==typeof c)h[c]()})};g.fn.affix.Constructor=p;g.fn.affix.defaults={offset:0};g.fn.affix.noConflict=function(){g.fn.affix=x;return this};g(window).on("load",function(){g('[data-spy\x3d"affix"]').each(function(){var c=g(this),f=c.data();f.offset=f.offset||{};f.offsetBottom&&(f.offset.bottom=f.offsetBottom);f.offsetTop&&(f.offset.top=f.offsetTop);c.affix(f)})})}(window.jQuery);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function g(c){function f(c){var f=c.charCodeAt(0);if(92!==f)return f;var g=c.charAt(1);return(f=H[g])?f:"0"<=g&&"7">=g?parseInt(c.substring(1),8):"u"===g||"x"===g?parseInt(c.substring(2),16):c.charCodeAt(1)}function g(c){if(32>c)return(16>c?"\\x0":"\\x")+c.toString(16);c=String.fromCharCode(c);if("\\"===c||"-"===c||"["===c||"]"===c)c="\\"+c;return c}function h(c){var h=c.substring(1,c.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g);c= +[];for(var m=[],n="^"===h[0],p=n?1:0,v=h.length;pr||122r||90r||122v[0]&&(v[1]+1>v[0]&&m.push("-"),m.push(g(v[1])));m.push("]");return m.join("")}function m(c){for(var f=c.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),g=f.length,m=[],v=0,A=0;v/, +q])):g.push(["com",/^#[^\n\r]*/,q,"#"]));f.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,q]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));f.regexLiterals&&h.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(m=f.types)&& +h.push(["typ",m]);f=(""+f.keywords).replace(/^ | $/g,"");f.length&&h.push(["kwd",RegExp("^(?:"+f.replace(/[\s,]+/g,"|")+")\\b"),q]);g.push(["pln",/^\s+/,q," \r\n\t "]);h.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return c(g,h)}function h(c,f){function g(c){switch(c.nodeType){case 1:if(m.test(c.className))break; +if("BR"===c.nodeName)h(c),c.parentNode&&c.parentNode.removeChild(c);else for(c=c.firstChild;c;c=c.nextSibling)g(c);break;case 3:case 4:if(A){var f=c.nodeValue,r=f.match(p);if(r){var v=f.substring(0,r.index);c.nodeValue=v;(f=f.substring(r.index+r[0].length))&&c.parentNode.insertBefore(n.createTextNode(f),c.nextSibling);h(c);v||c.parentNode.removeChild(c)}}}}function h(c){function f(c,g){g=g?c.cloneNode(!1):c;var h=c.parentNode;if(h){h=f(h,1);c=c.nextSibling;h.appendChild(g);for(var m=c;m;m=c)c=m.nextSibling, +h.appendChild(m)}return g}for(;!c.nextSibling;)if(c=c.parentNode,!c)return;c=f(c.nextSibling,0);for(var g;(g=c.parentNode)&&1===g.nodeType;)c=g;x.push(c)}var m=/(?:^|\s)nocode(?:\s|$)/,p=/\r\n?|\n/,n=c.ownerDocument,r;c.currentStyle?r=c.currentStyle.whiteSpace:window.getComputedStyle&&(r=n.defaultView.getComputedStyle(c,q).getPropertyValue("white-space"));var A=r&&"pre"===r.substring(0,3);for(r=n.createElement("LI");c.firstChild;)r.appendChild(c.firstChild);for(var x=[r],E=0;E=G&&(h+=2);g>=C&&(c+=2)}}catch(Z){"console"in window&&console.log(Z&&Z.stack?Z.stack:Z)}}var r=["break,continue,do,else,for,if,return,while"],E=[[r,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],fa=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],aa=[E,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], V=[aa,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],ha=[r,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], -Aa=[r,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],r=[r,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,Ta=/\S/,Ia=g({keywords:[fa,V,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +Aa=[r,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],r=[r,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,Ta=/\S/,Ia=f({keywords:[fa,V,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ ha,Aa,r],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),ia={};m(Ia,["default-code"]);m(c([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), "default-markup htm html mxml xhtml xml xsl".split(" "));m(c([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", -/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);m(c([],[["atv",/^[\S\s]+/]]),["uq.val"]);m(g({keywords:fa,hashComments:!0,cStyleComments:!0,types:N}),"c cc cpp cxx cyc m".split(" "));m(g({keywords:"null,true,false"}),["json"]);m(g({keywords:V,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}),["cs"]);m(g({keywords:aa,cStyleComments:!0}),["java"]);m(g({keywords:r,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);m(g({keywords:ha,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), -["cv","py"]);m(g({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);m(g({keywords:Aa,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);m(g({keywords:E,cStyleComments:!0,regexLiterals:!0}),["js"]);m(g({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", -hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);m(c([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(c,e,g){var m=document.createElement("PRE");m.innerHTML=c;g&&h(m,g);W({g:e,i:g,h:m});return m.innerHTML};window.prettyPrint=function(c){function e(){for(var g=window.PR_SHOULD_USE_CONTINUATION?x.now()+250:Infinity;A\]\.\/\(\)\*\\\n\t\b\v]/g, -"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()};this.hasAnchorJSLink=function(c){var e=c.firstChild&&-1<(" "+c.firstChild.className+" ").indexOf(" anchorjs-link ");c=c.lastChild&&-1<(" "+c.lastChild.className+" ").indexOf(" anchorjs-link ");return e||c||!1}}}); \ No newline at end of file +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);m(c([],[["atv",/^[\S\s]+/]]),["uq.val"]);m(f({keywords:fa,hashComments:!0,cStyleComments:!0,types:N}),"c cc cpp cxx cyc m".split(" "));m(f({keywords:"null,true,false"}),["json"]);m(f({keywords:V,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}),["cs"]);m(f({keywords:aa,cStyleComments:!0}),["java"]);m(f({keywords:r,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);m(f({keywords:ha,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);m(f({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);m(f({keywords:Aa,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);m(f({keywords:E,cStyleComments:!0,regexLiterals:!0}),["js"]);m(f({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);m(c([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(c,f,g){var m=document.createElement("PRE");m.innerHTML=c;g&&h(m,g);W({g:f,i:g,h:m});return m.innerHTML};window.prettyPrint=function(c){function f(){for(var g=window.PR_SHOULD_USE_CONTINUATION?x.now()+250:Infinity;A\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()};this.hasAnchorJSLink=function(c){var f=c.firstChild&&-1<(" "+c.firstChild.className+" ").indexOf(" anchorjs-link ");c=c.lastChild&&-1<(" "+c.lastChild.className+" ").indexOf(" anchorjs-link ");return f||c||!1}}}); \ No newline at end of file diff --git a/stringhold-codecoverage/license-plugin-report.xml b/stringhold-codecoverage/license-plugin-report.xml new file mode 100644 index 0000000..869a63c --- /dev/null +++ b/stringhold-codecoverage/license-plugin-report.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/stringhold-codecoverage/licenses.html b/stringhold-codecoverage/licenses.html index 2d56469..20738c1 100644 --- a/stringhold-codecoverage/licenses.html +++ b/stringhold-codecoverage/licenses.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Project Licenses - + + stringhold-codecoverage – Project Licenses + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,17 +45,17 @@
    -Built by Maven +Built by Maven
    -
    +

    Overview

    Typically the licenses listed for the project are that of the project itself, and not of dependencies.

    Project Licenses

    Apache License, Version 2.0

    -
    +
                                      Apache License
                                Version 2.0, January 2004
    @@ -308,9 +306,9 @@ 

    Apache License, Version 2.0

    \ No newline at end of file diff --git a/stringhold-codecoverage/plugin-management.html b/stringhold-codecoverage/plugin-management.html index bfaf176..e0e594b 100644 --- a/stringhold-codecoverage/plugin-management.html +++ b/stringhold-codecoverage/plugin-management.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Project Plugin Management - + + stringhold-codecoverage – Project Plugin Management + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,11 +45,11 @@
    -Built by Maven +Built by Maven
    -
    +

    Project Plugin Management

    @@ -60,138 +58,158 @@

    Project Plugin Management

    - - - - - + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + - + + + + + - - + + + + + + + + + + - + + + + + - - + +
    ArtifactId Version
    com.coderplus.maven.pluginscopy-rename-maven-plugin1.0.1
    com.github.spotbugs spotbugs-maven-plugin4.7.3.0
    4.8.2.0
    com.kohlschutter.mavenpluginscopy-rename-maven-plugin2.0.0
    com.kohlschutter.retrolambdaretrolambda-maven-plugin2.5.8.2
    com.mycila license-maven-plugin4.2.rc3
    4.3
    de.thetaphi forbiddenapis3.4
    3.6
    io.github.git-commit-id git-commit-id-maven-plugin5.0.0
    7.0.0
    net.revelc.code impsort-maven-plugin1.8.0
    1.9.0
    net.revelc.code.formatter formatter-maven-plugin2.21.0
    2.23.0
    org.apache.maven.plugins maven-antrun-plugin 3.1.0
    org.apache.maven.pluginsmaven-assembly-plugin3.4.2
    org.apache.maven.pluginsmaven-checkstyle-plugin3.2.1
    maven-assembly-plugin3.6.0
    org.apache.maven.pluginsmaven-clean-plugin3.2.0
    maven-checkstyle-plugin3.3.1
    org.apache.maven.pluginsmaven-compiler-plugin3.10.1
    maven-clean-plugin3.3.2
    org.apache.maven.pluginsmaven-dependency-plugin3.5.0
    maven-compiler-plugin3.12.1
    org.apache.maven.pluginsmaven-deploy-plugin3.0.0
    maven-dependency-plugin3.6.1
    org.apache.maven.pluginsmaven-enforcer-plugin3.1.0
    maven-deploy-plugin3.1.1
    org.apache.maven.pluginsmaven-gpg-plugin3.0.1
    maven-enforcer-plugin3.4.1
    org.apache.maven.pluginsmaven-install-pluginmaven-gpg-plugin 3.1.0
    org.apache.maven.pluginsmaven-invoker-plugin3.4.0
    maven-install-plugin3.1.1
    org.apache.maven.pluginsmaven-jar-plugin3.3.0
    maven-invoker-plugin3.6.0
    org.apache.maven.pluginsmaven-javadoc-plugin3.4.1
    maven-jar-plugin3.3.0
    org.apache.maven.pluginsmaven-pmd-plugin3.20.0
    maven-javadoc-plugin3.6.3
    org.apache.maven.pluginsmaven-project-info-reports-plugin3.4.2
    maven-pmd-plugin3.21.2
    org.apache.maven.pluginsmaven-release-plugin2.5.3
    maven-project-info-reports-plugin3.5.0
    org.apache.maven.pluginsmaven-resources-plugin3.3.0
    maven-release-plugin3.0.1
    org.apache.maven.pluginsmaven-scm-plugin2.0.0-M3
    maven-resources-plugin3.3.1
    org.apache.maven.pluginsmaven-scm-publish-plugin3.1.0
    maven-scm-plugin2.0.1
    org.apache.maven.pluginsmaven-shade-plugin3.4.1
    maven-scm-publish-plugin3.2.1
    org.apache.maven.pluginsmaven-site-plugin4.0.0-M4
    maven-shade-plugin3.5.1
    org.apache.maven.pluginsmaven-source-plugin3.2.1
    maven-site-plugin4.0.0-M11
    org.apache.maven.pluginsmaven-source-plugin3.3.0
    org.apache.maven.plugins maven-surefire-plugin3.0.0-M8
    3.2.3
    org.codehaus.mojoanimal-sniffer-maven-plugin1.23
    org.codehaus.mojobuild-helper-maven-plugin3.3.0
    build-helper-maven-plugin3.5.0
    org.codehaus.mojoproperties-maven-plugin1.2.1
    org.codehaus.mojotemplating-maven-plugin3.0.0
    org.codehaus.mojo versions-maven-plugin2.14.2
    2.16.2
    org.eclipse.m2elifecycle-mapping1.0.0
    org.jacoco jacoco-maven-plugin0.8.8
    0.8.11
    org.sonatype.plugins nexus-staging-maven-plugin 1.6.13
    @@ -242,9 +260,9 @@

    Project Plugin Management

    \ No newline at end of file diff --git a/stringhold-codecoverage/plugin-updates-report.html b/stringhold-codecoverage/plugin-updates-report.html new file mode 100644 index 0000000..d22cf3e --- /dev/null +++ b/stringhold-codecoverage/plugin-updates-report.html @@ -0,0 +1,1267 @@ + + + + + + + + + + stringhold-codecoverage – Plugin Updates Report + + + + + + + Fork me on GitHub +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Overview

    +

    This report summarizes newer versions that may be available for your project's various plugins.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    # of plugins using the latest version available39
    # of plugins where the next version available is smaller than an incremental version update0
    # of plugins where the next version available is an incremental version update0
    # of plugins where the next version available is a minor version update0
    # of plugins where the next version available is a major version update0
    # of plugins where a dependencies section containes a dependency with an updated version0
    +

    Plugin Management

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusGroup IdArtifact IdCurrent VersionLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
    com.github.spotbugsspotbugs-maven-plugin4.8.2.0
    com.kohlschutter.mavenpluginscopy-rename-maven-plugin2.0.0
    com.kohlschutter.retrolambdaretrolambda-maven-plugin2.5.8.2
    com.mycilalicense-maven-plugin4.3
    de.thetaphiforbiddenapis3.6
    io.github.git-commit-idgit-commit-id-maven-plugin7.0.0
    net.revelc.codeimpsort-maven-plugin1.9.0
    net.revelc.code.formatterformatter-maven-plugin2.23.0
    org.apache.maven.pluginsmaven-antrun-plugin3.1.0
    org.apache.maven.pluginsmaven-assembly-plugin3.6.0
    org.apache.maven.pluginsmaven-checkstyle-plugin3.3.1
    org.apache.maven.pluginsmaven-clean-plugin3.3.2
    org.apache.maven.pluginsmaven-compiler-plugin3.12.1
    org.apache.maven.pluginsmaven-dependency-plugin3.6.1
    org.apache.maven.pluginsmaven-deploy-plugin3.1.1
    org.apache.maven.pluginsmaven-enforcer-plugin3.4.1
    org.apache.maven.pluginsmaven-gpg-plugin3.1.0
    org.apache.maven.pluginsmaven-install-plugin3.1.1
    org.apache.maven.pluginsmaven-invoker-plugin3.6.0
    org.apache.maven.pluginsmaven-jar-plugin3.3.0
    org.apache.maven.pluginsmaven-javadoc-plugin3.6.3
    org.apache.maven.pluginsmaven-pmd-plugin3.21.2
    org.apache.maven.pluginsmaven-project-info-reports-plugin3.5.0
    org.apache.maven.pluginsmaven-release-plugin3.0.1
    org.apache.maven.pluginsmaven-resources-plugin3.3.1
    org.apache.maven.pluginsmaven-scm-plugin2.0.1
    org.apache.maven.pluginsmaven-scm-publish-plugin3.2.1
    org.apache.maven.pluginsmaven-shade-plugin3.5.1
    org.apache.maven.pluginsmaven-site-plugin4.0.0-M11
    org.apache.maven.pluginsmaven-source-plugin3.3.0
    org.apache.maven.pluginsmaven-surefire-plugin3.2.3
    org.codehaus.mojoanimal-sniffer-maven-plugin1.23
    org.codehaus.mojobuild-helper-maven-plugin3.5.0
    org.codehaus.mojoproperties-maven-plugin1.2.1
    org.codehaus.mojotemplating-maven-plugin3.0.0
    org.codehaus.mojoversions-maven-plugin2.16.2
    org.eclipse.m2elifecycle-mapping1.0.0
    org.jacocojacoco-maven-plugin0.8.11
    org.sonatype.pluginsnexus-staging-maven-plugin1.6.13
    StatusGroup IdArtifact IdCurrent VersionLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
    +

    Plugins

    +

    This project does not declare any plugins in a build/plugins section.

    +

    Plugin Updates

    +

    +

    Plugin com.github.spotbugs:spotbugs-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.github.spotbugs
    Artifact Idspotbugs-maven-plugin
    Current Version4.8.2.0
    +

    Plugin com.kohlschutter.mavenplugins:copy-rename-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.kohlschutter.mavenplugins
    Artifact Idcopy-rename-maven-plugin
    Current Version2.0.0
    +

    Plugin com.kohlschutter.retrolambda:retrolambda-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.kohlschutter.retrolambda
    Artifact Idretrolambda-maven-plugin
    Current Version2.5.8.2
    +

    Plugin com.mycila:license-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.mycila
    Artifact Idlicense-maven-plugin
    Current Version4.3
    +

    Plugin de.thetaphi:forbiddenapis

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idde.thetaphi
    Artifact Idforbiddenapis
    Current Version3.6
    +

    Plugin io.github.git-commit-id:git-commit-id-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idio.github.git-commit-id
    Artifact Idgit-commit-id-maven-plugin
    Current Version7.0.0
    +

    Plugin net.revelc.code:impsort-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idnet.revelc.code
    Artifact Idimpsort-maven-plugin
    Current Version1.9.0
    +

    Plugin net.revelc.code.formatter:formatter-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idnet.revelc.code.formatter
    Artifact Idformatter-maven-plugin
    Current Version2.23.0
    +

    Plugin org.apache.maven.plugins:maven-antrun-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-antrun-plugin
    Current Version3.1.0
    +

    Plugin org.apache.maven.plugins:maven-assembly-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-assembly-plugin
    Current Version3.6.0
    +

    Plugin org.apache.maven.plugins:maven-checkstyle-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-checkstyle-plugin
    Current Version3.3.1
    +

    Dependencies of org.apache.maven.plugins:maven-checkstyle-plugin

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
    com.puppycrawl.toolscheckstyle10.12.6jar
    StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
    +

    Dependency com.puppycrawl.tools:checkstyle

    + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.puppycrawl.tools
    Artifact Idcheckstyle
    Current Version10.12.6
    Classifier
    Typejar
    +

    Plugin org.apache.maven.plugins:maven-clean-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-clean-plugin
    Current Version3.3.2
    +

    Plugin org.apache.maven.plugins:maven-compiler-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-compiler-plugin
    Current Version3.12.1
    +

    Plugin org.apache.maven.plugins:maven-dependency-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-dependency-plugin
    Current Version3.6.1
    +

    Plugin org.apache.maven.plugins:maven-deploy-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-deploy-plugin
    Current Version3.1.1
    +

    Plugin org.apache.maven.plugins:maven-enforcer-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-enforcer-plugin
    Current Version3.4.1
    +

    Plugin org.apache.maven.plugins:maven-gpg-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-gpg-plugin
    Current Version3.1.0
    +

    Plugin org.apache.maven.plugins:maven-install-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-install-plugin
    Current Version3.1.1
    +

    Plugin org.apache.maven.plugins:maven-invoker-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-invoker-plugin
    Current Version3.6.0
    +

    Plugin org.apache.maven.plugins:maven-jar-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-jar-plugin
    Current Version3.3.0
    +

    Plugin org.apache.maven.plugins:maven-javadoc-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-javadoc-plugin
    Current Version3.6.3
    +

    Plugin org.apache.maven.plugins:maven-pmd-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-pmd-plugin
    Current Version3.21.2
    +

    Plugin org.apache.maven.plugins:maven-project-info-reports-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-project-info-reports-plugin
    Current Version3.5.0
    +

    Plugin org.apache.maven.plugins:maven-release-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-release-plugin
    Current Version3.0.1
    +

    Plugin org.apache.maven.plugins:maven-resources-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-resources-plugin
    Current Version3.3.1
    +

    Plugin org.apache.maven.plugins:maven-scm-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-scm-plugin
    Current Version2.0.1
    +

    Plugin org.apache.maven.plugins:maven-scm-publish-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-scm-publish-plugin
    Current Version3.2.1
    +

    Plugin org.apache.maven.plugins:maven-shade-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-shade-plugin
    Current Version3.5.1
    +

    Plugin org.apache.maven.plugins:maven-site-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-site-plugin
    Current Version4.0.0-M11
    +

    Dependencies of org.apache.maven.plugins:maven-site-plugin

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
    org.apache.maven.skinsmaven-fluido-skin2.0.0-M8jar
    StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
    +

    Dependency org.apache.maven.skins:maven-fluido-skin

    + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.skins
    Artifact Idmaven-fluido-skin
    Current Version2.0.0-M8
    Classifier
    Typejar
    +

    Plugin org.apache.maven.plugins:maven-source-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-source-plugin
    Current Version3.3.0
    +

    Plugin org.apache.maven.plugins:maven-surefire-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.apache.maven.plugins
    Artifact Idmaven-surefire-plugin
    Current Version3.2.3
    +

    Plugin org.codehaus.mojo:animal-sniffer-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idanimal-sniffer-maven-plugin
    Current Version1.23
    +

    Plugin org.codehaus.mojo:build-helper-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idbuild-helper-maven-plugin
    Current Version3.5.0
    +

    Plugin org.codehaus.mojo:properties-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idproperties-maven-plugin
    Current Version1.2.1
    +

    Plugin org.codehaus.mojo:templating-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idtemplating-maven-plugin
    Current Version3.0.0
    +

    Plugin org.codehaus.mojo:versions-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.codehaus.mojo
    Artifact Idversions-maven-plugin
    Current Version2.16.2
    +

    Dependencies of org.codehaus.mojo:versions-maven-plugin

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
    com.kohlschuttermaven-plugin-config1.6.6jar
    StatusGroup IdArtifact IdCurrent VersionClassifierTypeLatest SubincrementalLatest IncrementalLatest MinorLatest MajorDependency status
    +

    Dependency com.kohlschutter:maven-plugin-config

    + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idcom.kohlschutter
    Artifact Idmaven-plugin-config
    Current Version1.6.6
    Classifier
    Typejar
    +

    Plugin org.eclipse.m2e:lifecycle-mapping

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.eclipse.m2e
    Artifact Idlifecycle-mapping
    Current Version1.0.0
    +

    Plugin org.jacoco:jacoco-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.jacoco
    Artifact Idjacoco-maven-plugin
    Current Version0.8.11
    +

    Plugin org.sonatype.plugins:nexus-staging-maven-plugin

    + + + + + + + + + + + + +
    Status No newer versions available.
    Group Idorg.sonatype.plugins
    Artifact Idnexus-staging-maven-plugin
    Current Version1.6.13
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/stringhold-codecoverage/plugins.html b/stringhold-codecoverage/plugins.html index b018777..904427b 100644 --- a/stringhold-codecoverage/plugins.html +++ b/stringhold-codecoverage/plugins.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Project Plugins - + + stringhold-codecoverage – Project Plugins + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,11 +45,11 @@
    -Built by Maven +Built by Maven
    -
    +

    Project Build Plugins

    @@ -60,61 +58,97 @@

    Project Build Plugins

    + + + + + + + + + + + + - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + - - + + - - + + + + + + - + + + + + - + - - + + + + + + -
    ArtifactId Version
    com.github.spotbugsspotbugs-maven-plugin4.8.2.0
    com.mycilalicense-maven-plugin4.3
    de.thetaphiforbiddenapis3.6
    io.github.git-commit-id git-commit-id-maven-plugin5.0.0
    7.0.0
    org.apache.maven.pluginsmaven-antrun-plugin3.1.0
    org.apache.maven.pluginsmaven-clean-plugin3.2.0
    maven-checkstyle-plugin3.3.1
    org.apache.maven.pluginsmaven-compiler-plugin3.10.1
    maven-clean-plugin3.3.2
    org.apache.maven.pluginsmaven-dependency-plugin3.5.0
    maven-compiler-plugin3.12.1
    org.apache.maven.pluginsmaven-deploy-plugin3.0.0
    maven-dependency-plugin3.6.1
    org.apache.maven.pluginsmaven-enforcer-plugin3.1.0
    maven-deploy-plugin3.1.1
    org.apache.maven.pluginsmaven-install-plugin3.1.0
    maven-enforcer-plugin3.4.1
    org.apache.maven.pluginsmaven-install-plugin3.1.1
    org.apache.maven.plugins maven-jar-plugin 3.3.0
    org.apache.maven.pluginsmaven-javadoc-plugin3.6.3
    org.apache.maven.pluginsmaven-resources-plugin3.3.0
    maven-pmd-plugin3.21.2
    org.apache.maven.pluginsmaven-scm-plugin2.0.0-M3
    maven-resources-plugin3.3.1
    org.apache.maven.pluginsmaven-scm-plugin2.0.1
    org.apache.maven.plugins maven-site-plugin4.0.0-M4
    4.0.0-M11
    org.apache.maven.pluginsmaven-source-plugin3.3.0
    org.apache.maven.plugins maven-surefire-plugin3.0.0-M8
    3.2.3
    org.codehaus.mojoversions-maven-plugin2.14.2
    properties-maven-plugin1.2.1
    org.codehaus.mojoversions-maven-plugin2.16.2
    org.jacoco jacoco-maven-plugin0.8.8
    +0.8.11

    Project Report Plugins

    @@ -122,17 +156,41 @@

    Project Report Plugins

    + + + + + + + + + + + + - + + + + + - + -
    ArtifactId Version
    com.github.spotbugsspotbugs-maven-plugin4.8.2.0
    org.apache.maven.pluginsmaven-checkstyle-plugin3.3.1
    org.apache.maven.pluginsmaven-javadoc-plugin3.6.3
    org.apache.maven.plugins maven-jxr-plugin3.3.0
    3.3.1
    org.apache.maven.pluginsmaven-pmd-plugin3.21.2
    org.apache.maven.plugins maven-project-info-reports-plugin3.4.2
    3.5.0
    org.apache.maven.plugins maven-site-plugin4.0.0-M4
    +4.0.0-M11 + +org.codehaus.mojo +versions-maven-plugin +2.16.2 + +org.jacoco +jacoco-maven-plugin +0.8.11
    @@ -180,9 +238,9 @@

    Project Report Plugins

    \ No newline at end of file diff --git a/stringhold-codecoverage/project-info.html b/stringhold-codecoverage/project-info.html index a8cf4f5..08d1202 100644 --- a/stringhold-codecoverage/project-info.html +++ b/stringhold-codecoverage/project-info.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Project Information - + + stringhold-codecoverage – Project Information + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,55 +45,55 @@
    -Built by Maven +Built by Maven
    -
    +

    Project Information

    -

    This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by Maven on behalf of the project.

    +

    This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by Maven on behalf of the project.

    Overview

    - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - -
    Document Description
    DependenciesThis document lists the project's dependencies and provides information on each dependency.
    DependenciesThis document lists the project's dependencies and provides information on each dependency.
    Dependency InformationThis document describes how to include this project as a dependency using various dependency management tools.
    Dependency InformationThis document describes how to include this project as a dependency using various dependency management tools.
    Dependency ManagementThis document lists the dependencies that are defined through dependencyManagement.
    Dependency ManagementThis document lists the dependencies that are defined through dependencyManagement.
    Distribution ManagementThis document provides informations on the distribution management of this project.
    Distribution ManagementThis document provides informations on the distribution management of this project.
    AboutCode coverage
    AboutCode coverage
    Issue ManagementThis document provides information on the issue management system used in this project.
    Issue ManagementThis document provides information on the issue management system used in this project.
    LicensesThis document lists the project license(s).
    LicensesThis document lists the project license(s).
    Plugin ManagementThis document lists the plugins that are defined through pluginManagement.
    Plugin ManagementThis document lists the plugins that are defined through pluginManagement.
    PluginsThis document lists the build plugins and the report plugins used by this project.
    PluginsThis document lists the build plugins and the report plugins used by this project.
    Source Code ManagementThis document lists ways to access the online source repository.
    Source Code ManagementThis document lists ways to access the online source repository.
    SummaryThis document lists other related information of this project
    SummaryThis document lists other related information of this project
    TeamThis document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.
    +Team +This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.
    @@ -143,9 +141,9 @@

    Overview

    \ No newline at end of file diff --git a/stringhold-codecoverage/project-reports.html b/stringhold-codecoverage/project-reports.html new file mode 100644 index 0000000..b5e74bc --- /dev/null +++ b/stringhold-codecoverage/project-reports.html @@ -0,0 +1,125 @@ + + + + + + + + + + stringhold-codecoverage – Generated Reports + + + + + + + Fork me on GitHub +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Generated Reports

    +

    This document provides an overview of the various reports that are automatically generated by Maven . Each report is briefly described below.

    +

    Overview

    + + + + + + + + + + + + + + + +
    DocumentDescription
    CheckstyleReport on coding style conventions.
    Dependency Updates ReportProvides details of the dependencies which have updated versions available.
    Plugin Updates ReportProvides details of the plugins used by this project which have newer versions available.
    Property Updates ReportProvides details of properties which control versions of dependencies and/or plugins, and indicates any newer versions which are available.
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/stringhold-codecoverage/property-updates-report.html b/stringhold-codecoverage/property-updates-report.html new file mode 100644 index 0000000..921ec58 --- /dev/null +++ b/stringhold-codecoverage/property-updates-report.html @@ -0,0 +1,452 @@ + + + + + + + + + + stringhold-codecoverage – Property Updates Report + + + + + + + Fork me on GitHub +
    +
    + + + +
    +
    +
    + + +
    +
    +
    +

    Overview

    +

    This report summarizes newer versions that may be available for your project's various properties associated with artifacts.

    + + + + + + + + + + + + + + + + + + + + + +
    # of properties using the latest version available6
    # of properties where the next version available is smaller than an incremental version update0
    # of properties where the next version available is an incremental version update0
    # of properties where the next version available is a minor version update2
    # of properties where the next version available is a major version update0
    +

    Summary of properties associated with artifact versions

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusPropertyCurrent VersionLatest SubincrementalLatest IncrementalLatest MinorLatest Major
    ${checkstyle.version}10.12.6
    ${eclipsejdt.annotations.version}2.2.800
    ${errorprone.annotations.version}2.23.02.24.0
    ${errorprone.version}2.23.02.24.0
    ${forbiddenapis.version}3.6
    ${kohlschutter.parent.version}1.6.6
    ${pmd.plugin.version}3.21.2
    ${spotbugs.plugin.version}4.8.2.0
    StatusPropertyCurrent VersionLatest SubincrementalLatest IncrementalLatest MinorLatest Major
    +

    Properties associated with artifact versions

    +

    +

    ${checkstyle.version}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Property${checkstyle.version}
    Associated artifactscom.puppycrawl.tools:checkstyle
    Current Version10.12.6
    Allowed version range10.12.6
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    +

    ${eclipsejdt.annotations.version}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Property${eclipsejdt.annotations.version}
    Associated artifactsorg.eclipse.jdt:org.eclipse.jdt.annotation
    Current Version2.2.800
    Allowed version range2.2.800
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    +

    ${errorprone.annotations.version}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Property${errorprone.annotations.version}
    Associated artifactscom.google.errorprone:error_prone_annotations
    Current Version2.23.0
    Newer versions2.24.0 Latest Minor
    Allowed version range2.23.0
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    +

    ${errorprone.version}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Status There is at least one newer minor version available. Minor updates are sometimes passive.
    Property${errorprone.version}
    Associated artifactscom.google.errorprone:error_prone_core
    Current Version2.23.0
    Newer versions2.24.0 Latest Minor
    Allowed version range2.23.0
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    +

    ${forbiddenapis.version}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Property${forbiddenapis.version}
    Associated artifactsde.thetaphi:forbiddenapis
    Current Version3.6
    Allowed version range3.6
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    +

    ${kohlschutter.parent.version}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Property${kohlschutter.parent.version}
    Associated artifactscom.kohlschutter:compiler-annotations
    com.kohlschutter:kohlschutter-test-util
    com.kohlschutter:kohlschutter-util
    com.kohlschutter:maven-plugin-config
    Current Version1.6.6
    Allowed version range1.6.6
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    +

    ${pmd.plugin.version}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Property${pmd.plugin.version}
    Associated artifactsorg.apache.maven.plugins:maven-pmd-plugin
    Current Version3.21.2
    Allowed version range3.21.2
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    +

    ${spotbugs.plugin.version}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Status No newer versions available.
    Property${spotbugs.plugin.version}
    Associated artifactscom.github.spotbugs:spotbugs-maven-plugin
    Current Version4.8.2.0
    Allowed version range4.8.2.0
    Infer associations from projectYes
    Only use release versionsNo
    Include projects from reactorYes
    Always use reactor projects (even if older or -SNAPSHOT)Yes
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/stringhold-codecoverage/scm.html b/stringhold-codecoverage/scm.html index 7a8a9fb..b839a8f 100644 --- a/stringhold-codecoverage/scm.html +++ b/stringhold-codecoverage/scm.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Source Code Management - + + stringhold-codecoverage – Source Code Management + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,26 +45,26 @@
    -Built by Maven +Built by Maven
    -
    +

    Overview

    This project uses Git to manage its source code. Instructions on Git use can be found at https://git-scm.com/documentation.

    Web Browser Access

    The following is a link to a browsable version of the source repository:

    -

    Anonymous Access

    The source can be checked out anonymously from Git with this command (See https://git-scm.com/docs/git-clone):

    -
    -
    $ git clone https://github.com/kohlschutter/stringhold.git
    +
    +
    $ git clone git@github.com:kohlschutter/stringhold.git

    Developer Access

    Only project developers can access the Git tree via this method (See https://git-scm.com/docs/git-clone).

    -
    -
    $ git clone https://github.com/kohlschutter/stringhold.git
    +
    +
    $ git clone git@github.com:kohlschutter/stringhold.git

    Access from Behind a Firewall

    Refer to the documentation of the SCM used for more information about access behind a firewall.

    @@ -116,9 +114,9 @@

    Access from Behind a Firewall

    \ No newline at end of file diff --git a/stringhold-codecoverage/summary.html b/stringhold-codecoverage/summary.html index 000b8f7..6472a53 100644 --- a/stringhold-codecoverage/summary.html +++ b/stringhold-codecoverage/summary.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Project Summary - + + stringhold-codecoverage – Project Summary + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,11 +45,11 @@
    -Built by Maven +Built by Maven
    -
    +

    Project Summary

    Project Information

    @@ -67,7 +65,7 @@

    Project Information

    Code coverage Homepage -https://github.com/kohlschutter/kohlschutter-parent/kohlschutter-parent-multirelease/stringhold-parent/stringhold-codecoverage
    +https://github.com/kohlschutter/kohlschutter-parent/kohlschutter-parent-multirelease/stringhold/stringhold-codecoverage

    Project Organization

    @@ -92,7 +90,7 @@

    Build Information

    - +
    stringhold-codecoverage
    Version1.0.0-SNAPSHOT
    1.0.2-SNAPSHOT
    Type pom
    @@ -143,9 +141,9 @@

    Build Information

    \ No newline at end of file diff --git a/stringhold-codecoverage/team.html b/stringhold-codecoverage/team.html index 1e06ba3..1c33cf5 100644 --- a/stringhold-codecoverage/team.html +++ b/stringhold-codecoverage/team.html @@ -2,37 +2,35 @@ - - stringhold-codecoverage – Project Team - + + stringhold-codecoverage – Project Team + - + - - Fork me on GitHub -
    + + Fork me on GitHub +
    @@ -47,11 +45,11 @@
    -Built by Maven +Built by Maven
    -
    +

    Project Team

    A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.

    @@ -64,7 +62,7 @@

    Members

    Name Email -
    +
    Christian Kohlschütter christian@kohlschutter.com

    Contributors

    @@ -116,9 +114,9 @@

    Contributors

    \ No newline at end of file diff --git a/stringhold-common/apidocs/allclasses-index.html b/stringhold-common/apidocs/allclasses-index.html index 84723a1..c94be01 100644 --- a/stringhold-common/apidocs/allclasses-index.html +++ b/stringhold-common/apidocs/allclasses-index.html @@ -1,18 +1,17 @@ - -All Classes and Interfaces (stringhold-common 1.0.0-SNAPSHOT API) + +All Classes and Interfaces (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -57,13 +56,11 @@

    All Classes and Interfaces<
    Class
    Description
    - +
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append, - with appends being run asynchronously, using temporary intermediate storage, if - possible/necessary.
    +
    Base implementation of a StringHolder.
    - +
    A thread-safe IOSupplier that has a cached version of the first supply.
    @@ -92,7 +89,7 @@

    All Classes and Interfaces<
    What to do when an exception is thrown.
    - +
    A Supplier that may throw an IOException upon IOSupplier.get().
    @@ -103,23 +100,23 @@

    All Classes and Interfaces<
    A StringHolderScope that keeps track of the aggregate minimum length of all associated - StringHolders and, optionally, invokes a given callback whenever the limit is exceeded.
    + StringHolders and, optionally, invokes a given callback whenever the limit is exceeded.

    - -
    -
    A StringHolder holds something that can eventually turn into a string.
    + +
    +
    A StringHolder holds something that can eventually turn into a string.
    -
    A scope that can be associated with StringHolder instances.
    +
    A scope that can be associated with StringHolder instances.
    -
    An Appendable sequence of strings or StringHolders.
    +
    An Appendable sequence of strings or StringHolders.
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    +
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    diff --git a/stringhold-common/apidocs/allpackages-index.html b/stringhold-common/apidocs/allpackages-index.html index 9426a2c..6e72d16 100644 --- a/stringhold-common/apidocs/allpackages-index.html +++ b/stringhold-common/apidocs/allpackages-index.html @@ -1,18 +1,17 @@ - -All Packages (stringhold-common 1.0.0-SNAPSHOT API) + +All Packages (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/AbstractStringHolder.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/AbstractStringHolder.html new file mode 100644 index 0000000..ac35491 --- /dev/null +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/AbstractStringHolder.html @@ -0,0 +1,1294 @@ + + + + +AbstractStringHolder (stringhold-common 1.0.2-SNAPSHOT API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class AbstractStringHolder

    +
    +
    java.lang.Object +
    com.kohlschutter.stringhold.AbstractStringHolder
    +
    +
    +
    +
    All Implemented Interfaces:
    +
    HasExpectedLength, HasLength, HasMinimumLength, StringHolder, CharSequence, Cloneable, Comparable<Object>
    +
    +
    +
    Direct Known Subclasses:
    +
    StringHolderSequence
    +
    +
    +
    public abstract class AbstractStringHolder +extends Object +implements StringHolder
    +
    Base implementation of a StringHolder.
    +
    +
    Author:
    +
    Christian Kohlschütter
    +
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        AbstractStringHolder

        +
        protected AbstractStringHolder()
        +
        Constructs a AbstractStringHolder with a zero minimum length.
        +
        +
      • +
      • +
        +

        AbstractStringHolder

        +
        protected AbstractStringHolder(int minLength)
        +
        Constructs a AbstractStringHolder with the given minimum length, use 0 if no + minimum length is known.
        +
        +
        Parameters:
        +
        minLength - The minimum length, which must not be larger than the eventual actual length.
        +
        +
        +
      • +
      • +
        +

        AbstractStringHolder

        +
        protected AbstractStringHolder(int minLength, + int expectedLength)
        +
        Constructs a AbstractStringHolder with the given minimum length (use 0 if no + minimum length is known), and expected length.
        +
        +
        Parameters:
        +
        minLength - The minimum length, which must not be larger than the eventual actual length.
        +
        expectedLength - The expected length, which may be larger than the eventual actual length
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        getMinimumLength

        +
        public final int getMinimumLength()
        +
        Description copied from interface: StringHolder
        +
        Returns the current minimum length of the expected string length in this StringHolder. + + This is equivalent to StringHolder.length() if StringHolder.isString() is true. + + NOTE: When using this parameter for optimizations (e.g., to speed-up equality checks), make + sure to also check StringHolder.checkError(). When that method returns true, the minimum + length can actually not be guaranteed.
        +
        +
        Specified by:
        +
        getMinimumLength in interface HasLength
        +
        Specified by:
        +
        getMinimumLength in interface HasMinimumLength
        +
        Specified by:
        +
        getMinimumLength in interface StringHolder
        +
        Returns:
        +
        The minimum length (but be sure to see StringHolder.checkError()).
        +
        +
        +
      • +
      • +
        +

        getExpectedLength

        +
        public final int getExpectedLength()
        +
        Description copied from interface: StringHolder
        +
        Returns the current estimate of the length of the string in this StringHolder, which is + at least the StringHolder.getMinimumLength() but could be substantially larger. + + This is equivalent to StringHolder.length() if StringHolder.isString() is true.
        +
        +
        Specified by:
        +
        getExpectedLength in interface HasExpectedLength
        +
        Specified by:
        +
        getExpectedLength in interface HasLength
        +
        Specified by:
        +
        getExpectedLength in interface HasMinimumLength
        +
        Specified by:
        +
        getExpectedLength in interface StringHolder
        +
        Returns:
        +
        The currently expected length.
        +
        +
        +
      • +
      • +
        +

        setExpectedLength

        +
        public void setExpectedLength(int len)
        +
        Description copied from interface: StringHolder
        +
        Updates the current estimate of the length of the string in this StringHolder. + + The value will be rounded to StringHolder.getMinimumLength() if necessary.
        +
        +
        Specified by:
        +
        setExpectedLength in interface StringHolder
        +
        Parameters:
        +
        len - The new expected length
        +
        +
        +
      • +
      • +
        +

        resizeTo

        +
        protected final int resizeTo(int min, + int expected)
        +
        Sets the expected lengths (minimum and estimated) to the given values.
        +
        +
        Parameters:
        +
        min - The new minimum length, must not be smaller than the current minimum (unless + checkError() is true)
        +
        expected - The new expected length (will be rounded up if less than min).
        +
        Returns:
        +
        The new expected length (which may be adjusted to the new minimum).
        +
        Throws:
        +
        IllegalStateException - if the value is negative, and checkError() is + false.
        +
        +
        +
      • +
      • +
        +

        resizeBy

        +
        protected final void resizeBy(int minBy, + int expectedBy)
        +
        Increases the expected lengths (minimum and estimated) by the given values. + + Any value that overflows Integer.MAX_VALUE will be capped at that limit.
        +
        +
        Parameters:
        +
        minBy - The minimum length increment, must not be negative (unless checkError() + is true)
        +
        expectedBy - The expected length increment, may be negative; final length will be + >= 0.
        +
        Throws:
        +
        IllegalArgumentException - if minBy is negative and checkError() is + false
        +
        +
        +
      • +
      • +
        +

        length

        +
        public final int length()
        +
        Description copied from interface: StringHolder
        +
        Returns the actual length of this instance's contents. This may trigger a conversion to + String.
        +
        +
        Specified by:
        +
        length in interface CharSequence
        +
        Specified by:
        +
        length in interface HasLength
        +
        Specified by:
        +
        length in interface StringHolder
        +
        Returns:
        +
        The actual length.
        +
        +
        +
      • +
      • +
        +

        computeLength

        +
        protected int computeLength()
        +
        Computes the actual length of this instance's contents. + + By default, this is implemented as toString().length(). + + When overriding this method, make sure to also override isLengthKnown().
        +
        +
        Returns:
        +
        The actual length.
        +
        +
        +
      • +
      • +
        +

        isString

        +
        public final boolean isString()
        +
        Description copied from interface: StringHolder
        +
        Checks if this holder is currently backed by a plain String.
        +
        +
        Specified by:
        +
        isString in interface StringHolder
        +
        Returns:
        +
        true if currently backed by a plain String.
        +
        +
        +
      • +
      • +
        +

        isKnownEmpty

        +
        public final boolean isKnownEmpty()
        +
        Description copied from interface: StringHolder
        +
        Checks if this StringHolder is known to yield an empty String.
        +
        +
        Specified by:
        +
        isKnownEmpty in interface HasLength
        +
        Specified by:
        +
        isKnownEmpty in interface StringHolder
        +
        Returns:
        +
        true if known non-empty.
        +
        +
        +
      • +
      • +
        +

        isEmpty

        +
        public final boolean isEmpty()
        +
        Description copied from interface: HasLength
        +
        Checks if this instance is considered empty, i.e., equivalent to length() == 0.
        +
        +
        Specified by:
        +
        isEmpty in interface CharSequence
        +
        Specified by:
        +
        isEmpty in interface HasLength
        +
        Specified by:
        +
        isEmpty in interface StringHolder
        +
        Returns:
        +
        true if empty.
        +
        +
        +
      • +
      • +
        +

        isLengthKnown

        +
        public boolean isLengthKnown()
        +
        Description copied from interface: StringHolder
        +
        Returns true if the actual length is known, i.e. StringHolder.getMinimumLength() == + StringHolder.getExpectedLength() == StringHolder.length(). + + By default, this is only true if StringHolder.isString() == true, but subclasses may + override this check. When they do, they must include a check for + || super.isLengthKnown(). + + Note that once a length is known, it cannot change (i.e., don't override this for + mutable objects like StringHolderSequence).
        +
        +
        Specified by:
        +
        isLengthKnown in interface HasExpectedLength
        +
        Specified by:
        +
        isLengthKnown in interface StringHolder
        +
        Returns:
        +
        true if the length in this holder is known.
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      • +
        +

        hashCode

        +
        public int hashCode()
        +
        +
        Overrides:
        +
        hashCode in class Object
        +
        +
        +
      • +
      • +
        +

        equals

        +
        public final boolean equals(Object obj)
        +
        +
        Overrides:
        +
        equals in class Object
        +
        +
        +
      • +
      • +
        +

        checkEquals

        +
        protected boolean checkEquals(String s)
        +
        Checks if this StringHolder instance is equal to the given String (assume that trivial + requirements, such as minimum length, were already checked). + + Subclasses may override this check for a faster operation.
        +
        +
        Parameters:
        +
        s - The other string.
        +
        Returns:
        +
        true if this StringHolder is equal to the given string.
        +
        +
        +
      • +
      • +
        +

        checkEquals

        +
        protected boolean checkEquals(StringHolder sh)
        +
        Checks if this StringHolder instance is equal to the given StringHolder (assume + that trivial requirements, such as minimum length, were already checked). + + Subclasses may override this check for a faster operation.
        +
        +
        Parameters:
        +
        sh - The other StringHolder.
        +
        Returns:
        +
        true if this StringHolder is equal to the given string.
        +
        +
        +
      • +
      • +
        +

        appendTo

        +
        public final void appendTo(Appendable out) + throws IOException
        +
        Description copied from interface: StringHolder
        +
        Append the contents of this StringHolder to the given Appendable; this may or + may not turn the contents of this instance into a String.
        +
        +
        Specified by:
        +
        appendTo in interface StringHolder
        +
        Parameters:
        +
        out - The target.
        +
        Throws:
        +
        IOException - on error.
        +
        +
        +
      • +
      • +
        +

        appendTo

        +
        public final void appendTo(StringBuilder out)
        +
        Description copied from interface: StringHolder
        +
        Append the contents of this StringHolder to the given StringBuilder; this may + or may not turn the contents of this instance into a String.
        +
        +
        Specified by:
        +
        appendTo in interface StringHolder
        +
        Parameters:
        +
        out - The target.
        +
        +
        +
      • +
      • +
        +

        appendTo

        +
        public final void appendTo(StringBuffer out)
        +
        Description copied from interface: StringHolder
        +
        Append the contents of this StringHolder to the given StringBuffer; this may or + may not turn the contents of this instance into a String.
        +
        +
        Specified by:
        +
        appendTo in interface StringHolder
        +
        Parameters:
        +
        out - The target.
        +
        +
        +
      • +
      • +
        +

        appendTo

        +
        public final void appendTo(Writer out) + throws IOException
        +
        Description copied from interface: StringHolder
        +
        Append the contents of this StringHolder to the given Writer; this may or may + not turn the contents of this instance into a String.
        +
        +
        Specified by:
        +
        appendTo in interface StringHolder
        +
        Parameters:
        +
        out - The target.
        +
        Throws:
        +
        IOException - on error.
        +
        +
        +
      • +
      • +
        +

        appendToAndReturnLength

        +
        public final int appendToAndReturnLength(Appendable out) + throws IOException
        +
        Description copied from interface: StringHolder
        +
        Append the contents of this StringHolder to the given Appendable, and returns + the number of characters appended. This call may or may not turn the contents of this instance + into a String.
        +
        +
        Specified by:
        +
        appendToAndReturnLength in interface StringHolder
        +
        Parameters:
        +
        out - The target.
        +
        Returns:
        +
        The number of characters appended.
        +
        Throws:
        +
        IOException - on error.
        +
        +
        +
      • +
      • +
        +

        appendToAndReturnLength

        +
        public final int appendToAndReturnLength(StringBuilder out)
        +
        Description copied from interface: StringHolder
        +
        Append the contents of this StringHolder to the given StringBuilder, and + returns the number of characters appended. This call may or may not turn the contents of this + instance into a String.
        +
        +
        Specified by:
        +
        appendToAndReturnLength in interface StringHolder
        +
        Parameters:
        +
        out - The target.
        +
        Returns:
        +
        The number of characters appended.
        +
        +
        +
      • +
      • +
        +

        appendToAndReturnLength

        +
        public final int appendToAndReturnLength(StringBuffer out)
        +
        Description copied from interface: StringHolder
        +
        Append the contents of this StringHolder to the given StringBuffer, and returns + the number of characters appended. This call may or may not turn the contents of this instance + into a String.
        +
        +
        Specified by:
        +
        appendToAndReturnLength in interface StringHolder
        +
        Parameters:
        +
        out - The target.
        +
        Returns:
        +
        The number of characters appended.
        +
        +
        +
      • +
      • +
        +

        appendToAndReturnLength

        +
        public final int appendToAndReturnLength(Writer out) + throws IOException
        +
        Description copied from interface: StringHolder
        +
        Append the contents of this StringHolder to the given Writer, and returns the + number of characters appended. This call may or may not turn the contents of this instance into + a String.
        +
        +
        Specified by:
        +
        appendToAndReturnLength in interface StringHolder
        +
        Parameters:
        +
        out - The target.
        +
        Returns:
        +
        The number of characters appended.
        +
        Throws:
        +
        IOException - on error.
        +
        +
        +
      • +
      • +
        +

        appendToAndReturnLengthDefaultImpl

        +
        protected int appendToAndReturnLengthDefaultImpl(Appendable out) + throws IOException
        +
        Append the contents of this StringHolder to the given Appendable (which is + neither a StringBuilder, StringBuffer, nor a Writer), and returns the + number of characters appended. This call may or may not turn the contents of this instance into + a String. It won't be called if it's already one.
        +
        +
        Parameters:
        +
        out - The target.
        +
        Returns:
        +
        The number of characters appended (which is assumed to be the new minimum length).
        +
        Throws:
        +
        IOException - on error.
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      • +
        +

        appendToAndReturnLengthImpl

        +
        protected int appendToAndReturnLengthImpl(StringBuilder out)
        +
        Append the contents of this StringHolder to the given StringBuilder, and + returns the number of characters appended. This call may or may not turn the contents of this + instance into a String. It won't be called if it's already one.
        +
        +
        Parameters:
        +
        out - The target.
        +
        Returns:
        +
        The number of characters appended (which is assumed to be the new minimum length).
        +
        +
        +
      • +
      • +
        +

        appendToAndReturnLengthImpl

        +
        protected int appendToAndReturnLengthImpl(StringBuffer out)
        +
        Append the contents of this StringHolder to the given StringBuffer, and returns + the number of characters appended. This call may or may not turn the contents of this instance + into a String. It won't be called if it's already one.
        +
        +
        Parameters:
        +
        out - The target.
        +
        Returns:
        +
        The number of characters appended (which is assumed to be the new minimum length).
        +
        +
        +
      • +
      • +
        +

        appendToAndReturnLengthImpl

        +
        protected int appendToAndReturnLengthImpl(Writer out) + throws IOException
        +
        Append the contents of this StringHolder to the given Writer, and returns the + number of characters appended. This call may or may not turn the contents of this instance into + a String. It won't be called if it's already one.
        +
        +
        Parameters:
        +
        out - The target.
        +
        Returns:
        +
        The number of characters appended (which is assumed to be the new minimum length).
        +
        Throws:
        +
        IOException - on error.
        +
        +
        +
      • +
      • +
        +

        toString

        +
        public final String toString()
        +
        +
        Specified by:
        +
        toString in interface CharSequence
        +
        Overrides:
        +
        toString in class Object
        +
        +
        +
      • +
      • +
        +

        stringSanityCheck

        +
        protected void stringSanityCheck(String s)
        +
        Called from within toString() after updating/assigning the cached string but before + returning it. This may be a good opportunity to see if we got what we wanted, call setError, + etc.
        +
        +
        Parameters:
        +
        s - The string.
        +
        +
        +
      • +
      • +
        +

        getString

        +
        protected abstract String getString()
        +
        Retrieves the string.
        +
        +
        Returns:
        +
        The string; must not be null.
        +
        +
        +
      • +
      • +
        +

        uncache

        +
        protected void uncache()
        +
        Un-caches the already-determined String. This can be used to implement mutable data structures. + + Important: Subclasses must carefully check isEffectivelyImmutable() status.
        +
        +
      • +
      • +
        +

        toReader

        +
        public final Reader toReader() + throws IOException
        +
        Description copied from interface: StringHolder
        +
        Provides the contents of this StringHolder as a Reader.
        +
        +
        Specified by:
        +
        toReader in interface StringHolder
        +
        Returns:
        +
        The reader.
        +
        Throws:
        +
        IOException - on error.
        +
        +
        +
      • +
      • +
        +

        checkError

        +
        public final boolean checkError()
        +
        Description copied from interface: StringHolder
        +
        Checks if this StringHolder had some kind of unexpected condition. + + If so, StringHolder.getMinimumLength() may be adjusted to a value smaller than its previous state.
        +
        +
        Specified by:
        +
        checkError in interface StringHolder
        +
        Returns:
        +
        true if trouble was detected.
        +
        +
        +
      • +
      • +
        +

        setError

        +
        protected final void setError()
        +
        Signals that this instance had some kind of unexpected condition.
        +
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      • +
        +

        clearError

        +
        protected final void clearError()
        +
        Clears the trouble state of this instance.
        +
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      • +
        +

        newReader

        +
        protected Reader newReader() + throws IOException
        +
        Constructs a new Reader providing the contents of this StringHolder.
        +
        +
        Returns:
        +
        The reader.
        +
        Throws:
        +
        IOException - on error.
        +
        +
        +
      • +
      • +
        +

        getScope

        +
        public final StringHolderScope getScope()
        +
        Description copied from interface: StringHolder
        +
        Returns the StringHolderScope associated with this StringHolder, or + null if no scope was associated.
        +
        +
        Specified by:
        +
        getScope in interface StringHolder
        +
        Returns:
        +
        The scope, or null.
        +
        +
        +
      • +
      • +
        +

        updateScope

        +
        public final StringHolderScope updateScope(StringHolderScope newScope)
        +
        Description copied from interface: StringHolder
        +
        Sets the StringHolderScope associated with this StringHolder. Any previously + associated scope is removed from this instance and returned.
        +
        +
        Specified by:
        +
        updateScope in interface StringHolder
        +
        Parameters:
        +
        newScope - The new scope, or null/StringHolderScope.NONE to set "no + scope".
        +
        Returns:
        +
        The old scope, or null if none was set before.
        +
        +
        +
      • +
      • +
        +

        charAt

        +
        public char charAt(int index)
        +
        +
        Specified by:
        +
        charAt in interface CharSequence
        +
        +
        +
      • +
      • +
        +

        subSequence

        +
        public CharSequence subSequence(int start, + int end)
        +
        +
        Specified by:
        +
        subSequence in interface CharSequence
        +
        +
        +
      • +
      • +
        +

        asContent

        +
        public Object asContent()
        +
        Description copied from interface: StringHolder
        +
        Returns something that can be used in StringHolder.withContent(Object) which then + yields the same output when calling CharSequence.toString() on either instance. + + The returned object usually is this instance itself. However, this method may return a + simplified version of the content stored in this instance. For example, if the content already + is a string, the string is returned.
        +
        +
        Specified by:
        +
        asContent in interface StringHolder
        +
        Returns:
        +
        The "content" of this instance, which could be the instance itself, or something else.
        +
        See Also:
        +
        + +
        +
        +
        +
      • +
      • +
        +

        compareTo

        +
        public int compareTo(CharSequence o)
        +
        Description copied from interface: StringHolder
        +
        Narrower implementation of StringHolder.compareTo(Object) for Strings.
        +
        +
        Specified by:
        +
        compareTo in interface StringHolder
        +
        Parameters:
        +
        o - The other object.
        +
        Returns:
        +
        The comparison result, as defined by StringHolder.compareTo(Object).
        +
        +
        +
      • +
      • +
        +

        compareTo

        +
        public int compareTo(StringHolder o)
        +
        Description copied from interface: StringHolder
        +
        Narrower implementation of StringHolder.compareTo(Object) for StringHolders.
        +
        +
        Specified by:
        +
        compareTo in interface StringHolder
        +
        Parameters:
        +
        o - The other object.
        +
        Returns:
        +
        The comparison result, as defined by StringHolder.compareTo(Object).
        +
        +
        +
      • +
      • +
        +

        compareToDefault

        +
        protected final int compareToDefault(CharSequence o)
        +
        Default implementation for comparing this instance with another CharSequence that is + not a StringHolder. Certain trivial checks were already performed, such as one or both + being known empty.
        +
        +
        Parameters:
        +
        o - The other object.
        +
        Returns:
        +
        The comparison result, as defined by StringHolder.compareTo(Object).
        +
        +
        +
      • +
      • +
        +

        compareToDefault

        +
        protected int compareToDefault(StringHolder o)
        +
        Default implementation for comparing this instance with another StringHolder. Certain + trivial checks were already performed, such as one or both being known empty or known being + string.
        +
        +
        Parameters:
        +
        o - The other object.
        +
        Returns:
        +
        The comparison result, as defined by StringHolder.compareTo(Object).
        +
        +
        +
      • +
      • +
        +

        updateHashCode

        +
        protected int updateHashCode(int h)
        +
        Computes a partial hash code, using the given value as the seed.
        +
        +
        Parameters:
        +
        h - The initial value (seed).
        +
        Returns:
        +
        The updated hash code.
        +
        +
        +
      • +
      • +
        +

        isEffectivelyImmutable

        +
        public boolean isEffectivelyImmutable()
        +
        Description copied from interface: StringHolder
        +
        Checks if this StringHolder is effectively immutable.
        +
        +
        Specified by:
        +
        isEffectivelyImmutable in interface StringHolder
        +
        Returns:
        +
        true if the contents aren't going to change.
        +
        +
        +
      • +
      • +
        +

        markEffectivelyImmutable

        +
        public void markEffectivelyImmutable()
        +
        Description copied from interface: StringHolder
        +
        Marks this instance as effectively immutable.
        +
        +
        Specified by:
        +
        markEffectivelyImmutable in interface StringHolder
        +
        +
        +
      • +
      • +
        +

        clone

        +
        public AbstractStringHolder clone()
        +
        Description copied from interface: StringHolder
        +
        Deep-clones this StringHolder.
        +
        +
        Specified by:
        +
        clone in interface StringHolder
        +
        Overrides:
        +
        clone in class Object
        +
        Returns:
        +
        The cloned instance.
        +
        +
        +
      • +
      +
      +
    • +
    +
    + +
    + +
    +
    + + \ No newline at end of file diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/AsyncStringHolderSequence.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/AsyncStringHolderSequence.html deleted file mode 100644 index 7e3f4f7..0000000 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/AsyncStringHolderSequence.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - -AsyncStringHolderSequence (stringhold-common 1.0.0-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class AsyncStringHolderSequence

    -
    - -
    -
    -
    All Implemented Interfaces:
    -
    HasExpectedLength, HasLength, HasMinimumLength, Appendable, CharSequence, Comparable<Object>
    -
    -
    -
    public final class AsyncStringHolderSequence -extends StringHolderSequence
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append, - with appends being run asynchronously, using temporary intermediate storage, if - possible/necessary.
    -
    -
    Author:
    -
    Christian Kohlschütter
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - \ No newline at end of file diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/CachedIOSupplier.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/CachedIOSupplier.html index 8798f85..39408cd 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/CachedIOSupplier.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/CachedIOSupplier.html @@ -1,18 +1,17 @@ - -CachedIOSupplier (stringhold-common 1.0.0-SNAPSHOT API) + +CachedIOSupplier (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/HasExpectedLength.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/HasExpectedLength.html index d653650..b110f20 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/HasExpectedLength.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/HasExpectedLength.html @@ -1,18 +1,17 @@ - -HasExpectedLength (stringhold-common 1.0.0-SNAPSHOT API) + +HasExpectedLength (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -89,11 +88,11 @@

    Interface HasExpectedLengt
    All Known Subinterfaces:
    -
    HasKnownLength, HasLength, HasMinimumLength
    +
    HasKnownLength, HasLength, HasMinimumLength, StringHolder
    All Known Implementing Classes:
    -
    AsyncStringHolderSequence, StringHolder, StringHolderSequence, StringOnlySequence
    +
    AbstractStringHolder, StringHolderSequence, StringOnlySequence
    Functional Interface:
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/HasKnownLength.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/HasKnownLength.html index f672e5e..7d2349b 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/HasKnownLength.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/HasKnownLength.html @@ -1,18 +1,17 @@ - -HasKnownLength (stringhold-common 1.0.0-SNAPSHOT API) + +HasKnownLength (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/HasLength.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/HasLength.html index bc40ed4..4f6f963 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/HasLength.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/HasLength.html @@ -1,18 +1,17 @@ - -HasLength (stringhold-common 1.0.0-SNAPSHOT API) + +HasLength (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -93,11 +92,11 @@

    Interface HasLength

    All Known Subinterfaces:
    -
    HasKnownLength
    +
    HasKnownLength, StringHolder
    All Known Implementing Classes:
    -
    AsyncStringHolderSequence, StringHolder, StringHolderSequence, StringOnlySequence
    +
    AbstractStringHolder, StringHolderSequence, StringOnlySequence
    Functional Interface:
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/HasMinimumLength.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/HasMinimumLength.html index ed49fff..9e683e8 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/HasMinimumLength.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/HasMinimumLength.html @@ -1,18 +1,17 @@ - -HasMinimumLength (stringhold-common 1.0.0-SNAPSHOT API) + +HasMinimumLength (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -93,11 +92,11 @@

    Interface HasMinimumLength<

    All Known Subinterfaces:
    -
    HasKnownLength, HasLength
    +
    HasKnownLength, HasLength, StringHolder
    All Known Implementing Classes:
    -
    AsyncStringHolderSequence, StringHolder, StringHolderSequence, StringOnlySequence
    +
    AbstractStringHolder, StringHolderSequence, StringOnlySequence
    Functional Interface:
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/IOExceptionHandler.ExceptionResponse.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/IOExceptionHandler.ExceptionResponse.html index 2ddbb7b..50d018e 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/IOExceptionHandler.ExceptionResponse.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/IOExceptionHandler.ExceptionResponse.html @@ -1,18 +1,17 @@ - -IOExceptionHandler.ExceptionResponse (stringhold-common 1.0.0-SNAPSHOT API) + +IOExceptionHandler.ExceptionResponse (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/IOExceptionHandler.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/IOExceptionHandler.html index 08b8033..719e36b 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/IOExceptionHandler.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/IOExceptionHandler.html @@ -1,18 +1,17 @@ - -IOExceptionHandler (stringhold-common 1.0.0-SNAPSHOT API) + +IOExceptionHandler (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/IOSupplier.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/IOSupplier.html index 03f701b..6f8af9b 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/IOSupplier.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/IOSupplier.html @@ -1,18 +1,17 @@ - -IOSupplier (stringhold-common 1.0.0-SNAPSHOT API) + +IOSupplier (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/LazyInitReader.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/LazyInitReader.html index a45362f..461f08b 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/LazyInitReader.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/LazyInitReader.html @@ -1,18 +1,17 @@ - -LazyInitReader (stringhold-common 1.0.0-SNAPSHOT API) + +LazyInitReader (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/LimitedStringHolderScope.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/LimitedStringHolderScope.html index 66616b1..796327f 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/LimitedStringHolderScope.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/LimitedStringHolderScope.html @@ -1,18 +1,17 @@ - -LimitedStringHolderScope (stringhold-common 1.0.0-SNAPSHOT API) + +LimitedStringHolderScope (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -99,9 +98,9 @@

    Class LimitedStringHold extends Object implements StringHolderScope
    A StringHolderScope that keeps track of the aggregate minimum length of all associated - StringHolders and, optionally, invokes a given callback whenever the limit is exceeded. + StringHolders and, optionally, invokes a given callback whenever the limit is exceeded. - NOTE: This implementation does not keep track of StringHolders being garbage-collected + NOTE: This implementation does not keep track of StringHolders being garbage-collected and thus removed implicitly from memory without triggering remove(StringHolder). If desired, you may want to implement a WeakReference-based wrapper.
    @@ -132,33 +131,32 @@

    Method Summary

    Method
    Description
    void
    - +
    -
    Called upon adding a StringHolder with this StringHolderScope.
    +
    Called upon adding a StringHolder with this StringHolderScope.
    int
    Returns the currently recorded aggregate expected length for all associated - StringHolders.
    + StringHolders.
    int
    Returns the currently recorded aggregate minimum length for all associated - StringHolders.
    + StringHolders.
    void
    - +
    -
    Called upon removing a StringHolder from this StringHolderScope.
    +
    Called upon removing a StringHolder from this StringHolderScope.
    void
    -
    resizeBy(StringHolder sh, - int minBy, +
    resizeBy(int minBy, int expBy)
    -
    Called upon a size change regarding the given StringHolder.
    +
    Called upon a size change regarding the given StringHolder.
    @@ -166,22 +164,22 @@

    Method Summary

    Constructs a new LimitedStringHolderScope with no length limits.
    -
    withUpperLimitForExpectedLength(int expectedLengthLimit, - Runnable onLimitExceeded)
    +
    withUpperLimitForExpectedLength(int expectedLengthLimit, + Consumer<StringHolder> onLimitExceeded)
    Constructs a new LimitedStringHolderScope with an upper limit for the expected length.
    -
    withUpperLimitForMinimumAndExpectedLength(int minLengthLimit, +
    withUpperLimitForMinimumAndExpectedLength(int minLengthLimit, int expectedLengthLimit, - Runnable onLimitExceeded)
    + Consumer<StringHolder> onLimitExceeded)
    Constructs a new LimitedStringHolderScope with separate upper limits for the minimum length and expected length.
    -
    withUpperLimitForMinimumLength(int minLengthLimit, - Runnable onLimitExceeded)
    +
    withUpperLimitForMinimumLength(int minLengthLimit, + Consumer<StringHolder> onLimitExceeded)
    Constructs a new LimitedStringHolderScope with an upper limit for the minimum length.
    @@ -220,17 +218,17 @@

    withNoLimits

  • -
    +

    withUpperLimitForMinimumLength

    public static LimitedStringHolderScope withUpperLimitForMinimumLength(int minLengthLimit, - Runnable onLimitExceeded)
    + Consumer<StringHolder> onLimitExceeded)
    Constructs a new LimitedStringHolderScope with an upper limit for the minimum length. The given callback is invoked when the limit is exceeded.
    Parameters:
    minLengthLimit - The limit for the minimum length.
    -
    onLimitExceeded - Called when adding/resizing a StringHolder that exceeds the +
    onLimitExceeded - Called when adding/resizing a StringHolder that exceeds the limit.
    Returns:
    The new scope.
    @@ -238,17 +236,17 @@

    withUpperLimitForMinimumLength

  • -
    +

    withUpperLimitForExpectedLength

    public static LimitedStringHolderScope withUpperLimitForExpectedLength(int expectedLengthLimit, - Runnable onLimitExceeded)
    + Consumer<StringHolder> onLimitExceeded)
    Constructs a new LimitedStringHolderScope with an upper limit for the expected length. The given callback is invoked when the limit is exceeded.
    Parameters:
    expectedLengthLimit - The limit for the expected length.
    -
    onLimitExceeded - Called when adding/resizing a StringHolder that exceeds the +
    onLimitExceeded - Called when adding/resizing a StringHolder that exceeds the limit.
    Returns:
    The new scope.
    @@ -256,11 +254,11 @@

    withUpperLimitForExpectedLength

  • -
    +

    withUpperLimitForMinimumAndExpectedLength

    public static LimitedStringHolderScope withUpperLimitForMinimumAndExpectedLength(int minLengthLimit, int expectedLengthLimit, - Runnable onLimitExceeded)
    + Consumer<StringHolder> onLimitExceeded)
    Constructs a new LimitedStringHolderScope with separate upper limits for the minimum length and expected length. @@ -269,7 +267,7 @@

    withUpperLimitForMinimumAndExpectedLength

    Parameters:
    minLengthLimit - The limit for the minimum length.
    expectedLengthLimit - The limit for the expected length.
    -
    onLimitExceeded - Called when adding/resizing a StringHolder that exceeds the +
    onLimitExceeded - Called when adding/resizing a StringHolder that exceeds the limit.
    Returns:
    The new scope.
    @@ -281,7 +279,7 @@

    withUpperLimitForMinimumAndExpectedLength

    getMinimumLength

    public int getMinimumLength()
    Returns the currently recorded aggregate minimum length for all associated - StringHolders.
    + StringHolders.
    Returns:
    The aggregate minimum length.
    @@ -293,7 +291,7 @@

    getMinimumLength

    getExpectedLength

    public int getExpectedLength()
    Returns the currently recorded aggregate expected length for all associated - StringHolders.
    + StringHolders.
    Returns:
    The aggregate expected length.
    @@ -303,44 +301,42 @@

    getExpectedLength

  • add

    -
    public void add(StringHolder sh)
    +
    public void add(StringHolder sh)
    Description copied from interface: StringHolderScope
    -
    Called upon adding a StringHolder with this StringHolderScope.
    +
    Called upon adding a StringHolder with this StringHolderScope.
    Specified by:
    add in interface StringHolderScope
    Parameters:
    -
    sh - The StringHolder.
    +
    sh - The StringHolder.
  • remove

    -
    public void remove(StringHolder sh)
    +
    public void remove(StringHolder sh)
    Description copied from interface: StringHolderScope
    -
    Called upon removing a StringHolder from this StringHolderScope.
    +
    Called upon removing a StringHolder from this StringHolderScope.
    Specified by:
    remove in interface StringHolderScope
    Parameters:
    -
    sh - The StringHolder.
    +
    sh - The StringHolder.
  • -
    +

    resizeBy

    -
    public void resizeBy(StringHolder sh, - int minBy, +
    public void resizeBy(int minBy, int expBy)
    -
    Description copied from interface: StringHolderScope
    -
    Called upon a size change regarding the given StringHolder.
    +
    Description copied from interface: StringHolderScope
    +
    Called upon a size change regarding the given StringHolder.
    Specified by:
    -
    resizeBy in interface StringHolderScope
    +
    resizeBy in interface StringHolderScope
    Parameters:
    -
    sh - The StringHolder.
    minBy - The relative size change for the minimum length, can also be negative.
    expBy - The relative size change for the expected length, can also be negative.
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolder.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolder.html index 843e016..eed1468 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolder.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolder.html @@ -1,18 +1,17 @@ - -StringHolder (stringhold-common 1.0.0-SNAPSHOT API) + +StringHolder (stringhold-common 1.0.2-SNAPSHOT API) - - + + - - + @@ -41,7 +40,7 @@
  • @@ -49,7 +48,7 @@

    Detail:

  • @@ -61,13 +60,13 @@
  • Summary: 
  • Nested | 
  • Field | 
  • -
  • Constr | 
  • +
  • Constr | 
  • Method
  • @@ -84,31 +83,27 @@
    -

    Class StringHolder

    -
    -
    java.lang.Object -
    com.kohlschutter.stringhold.StringHolder
    +

    Interface StringHolder

    -
    All Implemented Interfaces:
    -
    HasExpectedLength, HasLength, HasMinimumLength, CharSequence, Comparable<Object>
    +
    All Superinterfaces:
    +
    CharSequence, Cloneable, Comparable<Object>, HasExpectedLength, HasLength, HasMinimumLength
    -
    Direct Known Subclasses:
    -
    StringHolderSequence
    +
    All Known Implementing Classes:
    +
    AbstractStringHolder, StringHolderSequence, StringOnlySequence

    -
    public abstract class StringHolder -extends Object -implements CharSequence, HasLength, Comparable<Object>
    -
    A StringHolder holds something that can eventually turn into a string. +
    public interface StringHolder +extends CharSequence, HasLength, Comparable<Object>, Cloneable
    +
    A StringHolder holds something that can eventually turn into a string. - StringHolders may reduce string allocation in cases where the final string sequence is, + StringHolders may reduce string allocation in cases where the final string sequence is, for example sent to a Writer (or other Appendable), discarded after a certain length, ignored upon an exception thrown along the way, etc. - Apart from reducing string concatenation-related allocations, StringHolders may reduce + Apart from reducing string concatenation-related allocations, StringHolders may reduce the end-to-end string life-cycle by allowing concurrency between construction and transmission: The string can be transmitted while it's being constructed. @@ -122,473 +117,354 @@

    Class StringHolder

      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        StringHolder

        -
        protected StringHolder()
        -
        Constructs a StringHolder with a zero minimum length.
        -
        -
      • -
      • -
        -

        StringHolder

        -
        protected StringHolder(int minLength)
        -
        Constructs a StringHolder with the given minimum length, use 0 if no minimum - length is known.
        -
        -
        Parameters:
        -
        minLength - The minimum length, which must not be larger than the eventual actual length.
        -
        -
        -
      • -
      • -
        -

        StringHolder

        -
        protected StringHolder(int minLength, - int expectedLength)
        -
        Constructs a StringHolder with the given minimum length (use 0 if no minimum - length is known), and expected length.
        -
        -
        Parameters:
        -
        minLength - The minimum length, which must not be larger than the eventual actual length.
        -
        expectedLength - The expected length, which may be larger than the eventual actual length
        -
        -
        -
      • -
      -
      -
    • @@ -597,14 +473,14 @@

      Method Details

    • withSupplier

      -
      public static StringHolder withSupplier(Supplier<?> supplier)
      -
      Constructs a new StringHolder with content from the given supplier, assuming a minimum +
      static StringHolder withSupplier(Supplier<?> supplier)
      +
      Constructs a new StringHolder with content from the given supplier, assuming a minimum length of 0.
      Parameters:
      supplier - The supplier.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if minLength is negative.
      NullPointerException - if supplier was null.
      @@ -614,9 +490,9 @@

      withSupplier

    • withSupplier

      -
      public static StringHolder withSupplier(IOSupplier<?> supplier, +
      static StringHolder withSupplier(IOSupplier<?> supplier, IOExceptionHandler onError)
      -
      Constructs a new StringHolder with content from the given supplier, assuming a minimum +
      Constructs a new StringHolder with content from the given supplier, assuming a minimum length of 0.
      Parameters:
      @@ -624,7 +500,7 @@

      withSupplier

      which is handled by the given exception handler).
      onError - The exception handler.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if minLength is negative.
      NullPointerException - if supplier was null.
      @@ -634,16 +510,16 @@

      withSupplier

    • withSupplierMinimumLength

      -
      public static StringHolder withSupplierMinimumLength(int minLength, +
      static StringHolder withSupplierMinimumLength(int minLength, Supplier<?> supplier)
      -
      Constructs a new StringHolder with content from the given supplier, specifying a +
      Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
      Parameters:
      minLength - The minimum length, must not be larger than the actual length.
      supplier - The supplier.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if minLength is negative.
      NullPointerException - if supplier was null.
      @@ -653,10 +529,10 @@

      withSupplierMinimumLength

    • withSupplierMinimumLength

      -
      public static StringHolder withSupplierMinimumLength(int minLength, +
      static StringHolder withSupplierMinimumLength(int minLength, IOSupplier<?> supplier, IOExceptionHandler onError)
      -
      Constructs a new StringHolder with content from the given supplier, specifying a +
      Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
      Parameters:
      @@ -665,7 +541,7 @@

      withSupplierMinimumLength

      which is handled by the given exception handler).
      onError - The exception handler.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if minLength is negative.
      NullPointerException - if supplier was null.
      @@ -675,16 +551,16 @@

      withSupplierMinimumLength

    • withSupplierExpectedLength

      -
      public static StringHolder withSupplierExpectedLength(int expectedLength, +
      static StringHolder withSupplierExpectedLength(int expectedLength, Supplier<?> supplier)
      -
      Constructs a new StringHolder with content from the given supplier, specifying a +
      Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
      Parameters:
      expectedLength - The expected length, may be larger than the actual length.
      supplier - The supplier.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if minLength is negative.
      NullPointerException - if supplier was null.
      @@ -694,10 +570,10 @@

      withSupplierExpectedLength

    • withSupplierExpectedLength

      -
      public static StringHolder withSupplierExpectedLength(int expectedLength, +
      static StringHolder withSupplierExpectedLength(int expectedLength, IOSupplier<?> supplier, IOExceptionHandler onError)
      -
      Constructs a new StringHolder with content from the given supplier, specifying a +
      Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
      Parameters:
      @@ -706,7 +582,7 @@

      withSupplierExpectedLength

      which is handled by the given exception handler).
      onError - The exception handler.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if minLength is negative.
      NullPointerException - if supplier was null.
      @@ -716,10 +592,10 @@

      withSupplierExpectedLength

    • withSupplierMinimumAndExpectedLength

      -
      public static StringHolder withSupplierMinimumAndExpectedLength(int minLength, +
      static StringHolder withSupplierMinimumAndExpectedLength(int minLength, int expectedLength, Supplier<?> supplier)
      -
      Constructs a new StringHolder with content from the given supplier, specifying a +
      Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
      Parameters:
      @@ -727,7 +603,7 @@

      withSupplierMinimumAndExpectedLength

      expectedLength - The expected length, may be larger than the actual length.
      supplier - The supplier.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if minLength is negative.
      NullPointerException - if supplier was null.
      @@ -737,11 +613,11 @@

      withSupplierMinimumAndExpectedLength

    • withSupplierMinimumAndExpectedLength

      -
      public static StringHolder withSupplierMinimumAndExpectedLength(int minLength, +
      static StringHolder withSupplierMinimumAndExpectedLength(int minLength, int expectedLength, IOSupplier<?> supplier, IOExceptionHandler onError)
      -
      Constructs a new StringHolder with content from the given supplier, specifying a +
      Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
      Parameters:
      @@ -751,7 +627,7 @@

      withSupplierMinimumAndExpectedLength

      which is handled by the given exception handler).
      onError - The exception handler.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if minLength is negative.
      NullPointerException - if supplier was null.
      @@ -761,9 +637,9 @@

      withSupplierMinimumAndExpectedLength

    • withSupplierFixedLength

      -
      public static StringHolder withSupplierFixedLength(int fixedLength, +
      static StringHolder withSupplierFixedLength(int fixedLength, Supplier<?> supplier)
      -
      Constructs a new StringHolder with content from the given supplier, specifying the +
      Constructs a new StringHolder with content from the given supplier, specifying the length the supplied string is going to have. An IllegalStateException will be thrown once a string is supplied that does not match this length.
      @@ -771,7 +647,7 @@

      withSupplierFixedLength

      fixedLength - The exact length of the string.
      supplier - The supplier.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if fixedLength is negative.
      NullPointerException - if supplier was null.
      @@ -781,10 +657,10 @@

      withSupplierFixedLength

    • withSupplierFixedLength

      -
      public static StringHolder withSupplierFixedLength(int fixedLength, +
      static StringHolder withSupplierFixedLength(int fixedLength, IOSupplier<?> supplier, IOExceptionHandler onError)
      -
      Constructs a new StringHolder with content from the given supplier, specifying the +
      Constructs a new StringHolder with content from the given supplier, specifying the length the supplied string is going to have. An IllegalStateException will be thrown once a string is supplied that does not match this length.
      @@ -794,7 +670,7 @@

      withSupplierFixedLength

      which is handled by the given exception handler).
      onError - The exception handler.
      Returns:
      -
      The StringHolder instance.
      +
      The StringHolder instance.
      Throws:
      IllegalStateException - if fixedLength is negative.
      NullPointerException - if supplier was null.
      @@ -804,7 +680,7 @@

      withSupplierFixedLength

    • withReaderSupplier

      -
      public static StringHolder withReaderSupplier(IOSupplier<Reader> readerSupply, +
      static StringHolder withReaderSupplier(IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
      Constructs a ReaderStringHolder with the given Reader source.
      @@ -821,7 +697,7 @@

      withReaderSupplier

    • withReaderSupplierMinimumLength

      -
      public static StringHolder withReaderSupplierMinimumLength(int minLen, +
      static StringHolder withReaderSupplierMinimumLength(int minLen, IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
      Constructs a ReaderStringHolder with the given Reader source.
      @@ -840,7 +716,7 @@

      withReaderSupplierMinimumLength

    • withReaderSupplierExpectedLength

      -
      public static StringHolder withReaderSupplierExpectedLength(int expectedLen, +
      static StringHolder withReaderSupplierExpectedLength(int expectedLen, IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
      Constructs a ReaderStringHolder with the given Reader source.
      @@ -859,7 +735,7 @@

      withReaderSupplierExpectedLength

    • withReaderSupplierMinimumAndExpectedLength

      -
      public static StringHolder withReaderSupplierMinimumAndExpectedLength(int minLen, +
      static StringHolder withReaderSupplierMinimumAndExpectedLength(int minLen, int expectedLen, IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
      @@ -878,195 +754,172 @@

      withReaderSupplierMinimumAndExpectedLength

    • -
      -

      withContent

      -
      public static StringHolder withContent(Object obj)
      -
      Constructs a StringHolder with the given content. - - Unless the object already is a StringHolder, or is known to be empty, its contents are - converted to String. null objects are converted to "null", in accordance with - String.valueOf(Object).
      +
      +

      newSequence

      +
      static StringHolderSequence newSequence()
      +
      Constructs a new, empty StringHolderSequence.
      -
      Parameters:
      -
      obj - The object.
      Returns:
      -
      The StringHolder instance.
      +
      The new, empty sequence.
    • -
      -

      withContent

      -
      public static StringHolder withContent(Object... objects)
      -
      Constructs a StringHolder with the given content sequences, as if they had been - appended to a StringHolderSequence. Empty sequences are optimized.
      +
      +

      newSequence

      +
      static StringHolderSequence newSequence(int estimatedNumberOfAppends)
      +
      Constructs a new, empty StringHolderSequence.
      Parameters:
      -
      objects - The objects to represent as a sequence; if null, a StringHolder of the - string "null" is returned.
      +
      estimatedNumberOfAppends - Estimated number of calls to + StringHolderSequence.append(Object), etc.
      Returns:
      -
      The StringHolder instance.
      -
      See Also:
      -
      - -
      +
      The new, empty sequence.
    • -
      -

      getMinimumLength

      -
      public final int getMinimumLength()
      -
      Returns the current minimum length of the expected string length in this StringHolder. - - This is equivalent to length() if isString() is true. +
      +

      newAsyncSequence

      +
      static StringHolderSequence newAsyncSequence()
      +
      Constructs a new, empty async StringHolderSequence. - NOTE: When using this parameter for optimizations (e.g., to speed-up equality checks), make - sure to also check checkError(). When that method returns true, the minimum - length can actually not be guaranteed.
      + StringHolders are automatically converted upon append, with appends being run + asynchronously, using temporary intermediate storage, if possible/necessary.
      -
      Specified by:
      -
      getMinimumLength in interface HasLength
      -
      Specified by:
      -
      getMinimumLength in interface HasMinimumLength
      Returns:
      -
      The minimum length (but be sure to see checkError()).
      +
      The new, empty async sequence.
    • -
      -

      getExpectedLength

      -
      public final int getExpectedLength()
      -
      Returns the current estimate of the length of the string in this StringHolder, which is - at least the getMinimumLength() but could be substantially larger. +
      +

      newAsyncSequence

      +
      static StringHolderSequence newAsyncSequence(Executor executor)
      +
      Constructs a new, empty async StringHolderSequence. - This is equivalent to length() if isString() is true.
      + StringHolders are automatically converted upon append, with appends being run + asynchronously, using temporary intermediate storage, if possible/necessary.
      -
      Specified by:
      -
      getExpectedLength in interface HasExpectedLength
      -
      Specified by:
      -
      getExpectedLength in interface HasLength
      -
      Specified by:
      -
      getExpectedLength in interface HasMinimumLength
      +
      Parameters:
      +
      executor - The executor to use.
      Returns:
      -
      The currently expected length.
      +
      The new, empty async sequence.
    • -
      -

      setExpectedLength

      -
      public void setExpectedLength(int len)
      -
      Updates the current estimate of the length of the string in this StringHolder. +
      +

      newAsyncSequence

      +
      static StringHolderSequence newAsyncSequence(int estimatedNumberOfAppends)
      +
      Constructs a new, empty async StringHolderSequence. - The value will be rounded to getMinimumLength() if necessary.
      + StringHolders are automatically converted upon append, with appends being run + asynchronously, using temporary intermediate storage, if possible/necessary.
      Parameters:
      -
      len - The new expected length
      +
      estimatedNumberOfAppends - Estimated number of calls to + StringHolderSequence.append(Object), etc.
      +
      Returns:
      +
      The new, empty async sequence.
    • -
      -

      resizeTo

      -
      protected final int resizeTo(int min, - int expected)
      -
      Sets the expected lengths (minimum and estimated) to the given values.
      +
      +

      newAsyncSequence

      +
      static StringHolderSequence newAsyncSequence(int estimatedNumberOfAppends, + Executor executor)
      +
      Constructs a new, empty async StringHolderSequence. + + StringHolders are automatically converted upon append, with appends being run + asynchronously, using temporary intermediate storage, if possible/necessary.
      Parameters:
      -
      min - The new minimum length, must not be smaller than the current minimum (unless - checkError() is true)
      -
      expected - The new expected length (will be rounded up if less than min).
      +
      estimatedNumberOfAppends - Estimated number of calls to + StringHolderSequence.append(Object), etc.
      +
      executor - The executor to use.
      Returns:
      -
      The new expected length (which may be adjusted to the new minimum).
      -
      Throws:
      -
      IllegalStateException - if the value is negative, and checkError() is - false.
      +
      The new, empty sequence.
    • -
      -

      resizeBy

      -
      protected final void resizeBy(int minBy, - int expectedBy)
      -
      Increases the expected lengths (minimum and estimated) by the given values. +
      +

      withContent

      +
      static StringHolder withContent(Object obj)
      +
      Constructs a StringHolder with the given content. - Any value that overflows Integer.MAX_VALUE will be capped at that limit.
      + Unless the object already is a StringHolder, or is known to be empty, its contents are + converted to String. null objects are converted to "null", in accordance with + String.valueOf(Object).
      Parameters:
      -
      minBy - The minimum length increment, must not be negative (unless checkError() - is true)
      -
      expectedBy - The expected length increment, may be negative; final length will be - >= 0.
      -
      Throws:
      -
      IllegalArgumentException - if minBy is negative and checkError() is - false
      -
      -
      -
    • -
    • -
      -

      length

      -
      public final int length()
      -
      Returns the actual length of this instance's contents. This may trigger a conversion to - String.
      -
      -
      Specified by:
      -
      length in interface CharSequence
      -
      Specified by:
      -
      length in interface HasLength
      +
      obj - The object.
      Returns:
      -
      The actual length.
      +
      The StringHolder instance.
    • -
      -

      computeLength

      -
      protected int computeLength()
      -
      Computes the actual length of this instance's contents. - - By default, this is implemented as toString().length(). - - When overriding this method, make sure to also override isLengthKnown().
      +
      +

      withContent

      +
      static StringHolder withContent(Object... objects)
      +
      Constructs a StringHolder with the given content sequences, as if they had been + appended to a StringHolderSequence. Empty sequences are optimized.
      +
      Parameters:
      +
      objects - The objects to represent as a sequence; if null, a StringHolder of the + string "null" is returned.
      Returns:
      -
      The actual length.
      +
      The StringHolder instance.
      +
      See Also:
      +
      + +
    • -
      -

      isString

      -
      public final boolean isString()
      -
      Checks if this holder is currently backed by a plain String.
      +
      +

      withConditionalStringHolder

      +
      static StringHolder withConditionalStringHolder(StringHolder wrapped, + Predicate<StringHolder> includePredicate)
      +
      Constructs a conditional wrapper around the given StringHolder; the given + include supplier controls whether the StringHolder is included, or effectively + empty. + + The conditional supplier is called at most once; the check is delayed as much as possible.
      +
      Parameters:
      +
      wrapped - The wrapped StringHolder.
      +
      includePredicate - Controls the inclusion of that StringHolder; false + means "excluded".
      Returns:
      -
      true if currently backed by a plain String.
      +
      the conditional StringHolder.
    • -
      -

      isKnownEmpty

      -
      public final boolean isKnownEmpty()
      -
      Checks if this StringHolder is known to yield an empty String.
      +
      +

      withUncacheableStringHolder

      +
      static StringHolder withUncacheableStringHolder(StringHolder wrapped)
      +
      Constructs a wrapper around the given StringHolder, marking it as "uncacheable" (i.e., + isCacheable() returning false, unless isString() is true).
      -
      Specified by:
      -
      isKnownEmpty in interface HasLength
      +
      Parameters:
      +
      wrapped - The wrapped StringHolder.
      Returns:
      -
      true if known non-empty.
      +
      the uncacheable StringHolder.
    • isEmpty

      -
      public final boolean isEmpty()
      +
      default boolean isEmpty()
      Description copied from interface: HasLength
      Checks if this instance is considered empty, i.e., equivalent to length() == 0.
      @@ -1080,90 +933,36 @@

      isEmpty

    • -
      -

      isLengthKnown

      -
      public boolean isLengthKnown()
      -
      Returns true if the actual length is known, i.e. getMinimumLength() == - getExpectedLength() == length(). - - By default, this is only true if isString() == true, but subclasses may - override this check. When they do, they must include a check for - || super.isLengthKnown(). - - Note that once a length is known, it cannot change (i.e., don't override this for - mutable objects like StringHolderSequence).
      -
      -
      Specified by:
      -
      isLengthKnown in interface HasExpectedLength
      -
      Returns:
      -
      true if the length in this holder is known.
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      hashCode

      -
      public int hashCode()
      -
      -
      Overrides:
      -
      hashCode in class Object
      -
      -
      -
    • -
    • -
      -

      equals

      -
      public final boolean equals(Object obj)
      -
      -
      Overrides:
      -
      equals in class Object
      -
      -
      -
    • -
    • -
      -

      checkEquals

      -
      protected boolean checkEquals(String s)
      -
      Checks if this StringHolder instance is equal to the given String (assume that trivial - requirements, such as minimum length, were already checked). - - Subclasses may override this check for a faster operation.
      +
      +

      isString

      +
      boolean isString()
      +
      Checks if this holder is currently backed by a plain String.
      -
      Parameters:
      -
      s - The other string.
      Returns:
      -
      true if this StringHolder is equal to the given string.
      +
      true if currently backed by a plain String.
    • -
      -

      checkEquals

      -
      protected boolean checkEquals(StringHolder sh)
      -
      Checks if this StringHolder instance is equal to the given StringHolder (assume - that trivial requirements, such as minimum length, were already checked). - - Subclasses may override this check for a faster operation.
      +
      +

      toReader

      +
      Reader toReader() + throws IOException
      +
      Provides the contents of this StringHolder as a Reader.
      -
      Parameters:
      -
      sh - The other StringHolder.
      Returns:
      -
      true if this StringHolder is equal to the given string.
      +
      The reader.
      +
      Throws:
      +
      IOException - on error.
    • appendTo

      -
      public final void appendTo(Appendable out) - throws IOException
      -
      Append the contents of this StringHolder to the given Appendable; this may or +
      void appendTo(Appendable out) + throws IOException
      +
      Append the contents of this StringHolder to the given Appendable; this may or may not turn the contents of this instance into a String.
      Parameters:
      @@ -1176,8 +975,8 @@

      appendTo

    • appendTo

      -
      public final void appendTo(StringBuilder out)
      -
      Append the contents of this StringHolder to the given StringBuilder; this may +
      void appendTo(StringBuilder out)
      +
      Append the contents of this StringHolder to the given StringBuilder; this may or may not turn the contents of this instance into a String.
      Parameters:
      @@ -1188,8 +987,8 @@

      appendTo

    • appendTo

      -
      public final void appendTo(StringBuffer out)
      -
      Append the contents of this StringHolder to the given StringBuffer; this may or +
      void appendTo(StringBuffer out)
      +
      Append the contents of this StringHolder to the given StringBuffer; this may or may not turn the contents of this instance into a String.
      Parameters:
      @@ -1200,9 +999,9 @@

      appendTo

    • appendTo

      -
      public final void appendTo(Writer out) - throws IOException
      -
      Append the contents of this StringHolder to the given Writer; this may or may +
      void appendTo(Writer out) + throws IOException
      +
      Append the contents of this StringHolder to the given Writer; this may or may not turn the contents of this instance into a String.
      Parameters:
      @@ -1215,9 +1014,9 @@

      appendTo

    • appendToAndReturnLength

      -
      public final int appendToAndReturnLength(Appendable out) - throws IOException
      -
      Append the contents of this StringHolder to the given Appendable, and returns +
      int appendToAndReturnLength(Appendable out) + throws IOException
      +
      Append the contents of this StringHolder to the given Appendable, and returns the number of characters appended. This call may or may not turn the contents of this instance into a String.
      @@ -1233,8 +1032,8 @@

      appendToAndReturnLength

    • appendToAndReturnLength

      -
      public final int appendToAndReturnLength(StringBuilder out)
      -
      Append the contents of this StringHolder to the given StringBuilder, and +
      int appendToAndReturnLength(StringBuilder out)
      +
      Append the contents of this StringHolder to the given StringBuilder, and returns the number of characters appended. This call may or may not turn the contents of this instance into a String.
      @@ -1248,8 +1047,8 @@

      appendToAndReturnLength

    • appendToAndReturnLength

      -
      public final int appendToAndReturnLength(StringBuffer out)
      -
      Append the contents of this StringHolder to the given StringBuffer, and returns +
      int appendToAndReturnLength(StringBuffer out)
      +
      Append the contents of this StringHolder to the given StringBuffer, and returns the number of characters appended. This call may or may not turn the contents of this instance into a String.
      @@ -1263,9 +1062,9 @@

      appendToAndReturnLength

    • appendToAndReturnLength

      -
      public final int appendToAndReturnLength(Writer out) - throws IOException
      -
      Append the contents of this StringHolder to the given Writer, and returns the +
      int appendToAndReturnLength(Writer out) + throws IOException
      +
      Append the contents of this StringHolder to the given Writer, and returns the number of characters appended. This call may or may not turn the contents of this instance into a String.
      @@ -1279,203 +1078,133 @@

      appendToAndReturnLength

    • -
      -

      appendToAndReturnLengthDefaultImpl

      -
      protected int appendToAndReturnLengthDefaultImpl(Appendable out) - throws IOException
      -
      Append the contents of this StringHolder to the given Appendable (which is - neither a StringBuilder, StringBuffer, nor a Writer), and returns the - number of characters appended. This call may or may not turn the contents of this instance into - a String. It won't be called if it's already one.
      +
      +

      getMinimumLength

      +
      int getMinimumLength()
      +
      Returns the current minimum length of the expected string length in this StringHolder. + + This is equivalent to length() if isString() is true. + + NOTE: When using this parameter for optimizations (e.g., to speed-up equality checks), make + sure to also check checkError(). When that method returns true, the minimum + length can actually not be guaranteed.
      -
      Parameters:
      -
      out - The target.
      +
      Specified by:
      +
      getMinimumLength in interface HasLength
      +
      Specified by:
      +
      getMinimumLength in interface HasMinimumLength
      Returns:
      -
      The number of characters appended (which is assumed to be the new minimum length).
      -
      Throws:
      -
      IOException - on error.
      -
      See Also:
      -
      - -
      +
      The minimum length (but be sure to see checkError()).
    • -
      -

      appendToAndReturnLengthImpl

      -
      protected int appendToAndReturnLengthImpl(StringBuilder out)
      -
      Append the contents of this StringHolder to the given StringBuilder, and - returns the number of characters appended. This call may or may not turn the contents of this - instance into a String. It won't be called if it's already one.
      +
      +

      getExpectedLength

      +
      int getExpectedLength()
      +
      Returns the current estimate of the length of the string in this StringHolder, which is + at least the getMinimumLength() but could be substantially larger. + + This is equivalent to length() if isString() is true.
      -
      Parameters:
      -
      out - The target.
      +
      Specified by:
      +
      getExpectedLength in interface HasExpectedLength
      +
      Specified by:
      +
      getExpectedLength in interface HasLength
      +
      Specified by:
      +
      getExpectedLength in interface HasMinimumLength
      Returns:
      -
      The number of characters appended (which is assumed to be the new minimum length).
      +
      The currently expected length.
    • -
      -

      appendToAndReturnLengthImpl

      -
      protected int appendToAndReturnLengthImpl(StringBuffer out)
      -
      Append the contents of this StringHolder to the given StringBuffer, and returns - the number of characters appended. This call may or may not turn the contents of this instance - into a String. It won't be called if it's already one.
      +
      +

      setExpectedLength

      +
      void setExpectedLength(int len)
      +
      Updates the current estimate of the length of the string in this StringHolder. + + The value will be rounded to getMinimumLength() if necessary.
      Parameters:
      -
      out - The target.
      -
      Returns:
      -
      The number of characters appended (which is assumed to be the new minimum length).
      +
      len - The new expected length
    • -
      -

      appendToAndReturnLengthImpl

      -
      protected int appendToAndReturnLengthImpl(Writer out) - throws IOException
      -
      Append the contents of this StringHolder to the given Writer, and returns the - number of characters appended. This call may or may not turn the contents of this instance into - a String. It won't be called if it's already one.
      +
      +

      length

      +
      int length()
      +
      Returns the actual length of this instance's contents. This may trigger a conversion to + String.
      -
      Parameters:
      -
      out - The target.
      +
      Specified by:
      +
      length in interface CharSequence
      +
      Specified by:
      +
      length in interface HasLength
      Returns:
      -
      The number of characters appended (which is assumed to be the new minimum length).
      -
      Throws:
      -
      IOException - on error.
      +
      The actual length.
    • -
      -

      toString

      -
      public final String toString()
      +
      +

      isKnownEmpty

      +
      boolean isKnownEmpty()
      +
      Checks if this StringHolder is known to yield an empty String.
      Specified by:
      -
      toString in interface CharSequence
      -
      Overrides:
      -
      toString in class Object
      -
      -
      -
    • -
    • -
      -

      stringSanityCheck

      -
      protected void stringSanityCheck(String s)
      -
      Called from within toString() after updating/assigning the cached string but before - returning it. This may be a good opportunity to see if we got what we wanted, call setError, - etc.
      -
      -
      Parameters:
      -
      s - The string.
      -
      -
      -
    • -
    • -
      -

      getString

      -
      protected abstract String getString()
      -
      Retrieves the string.
      -
      +
      isKnownEmpty in interface HasLength
      Returns:
      -
      The string; must not be null.
      +
      true if known non-empty.
    • -
      -

      uncache

      -
      protected void uncache()
      -
      Un-caches the already-determined String. This can be used to implement mutable data structures. +
      +

      isLengthKnown

      +
      boolean isLengthKnown()
      +
      Returns true if the actual length is known, i.e. getMinimumLength() == + getExpectedLength() == length(). - Important: Subclasses must carefully check isEffectivelyImmutable() status.
      -
      -
    • -
    • -
      -

      toReader

      -
      public final Reader toReader() - throws IOException
      -
      Provides the contents of this StringHolder as a Reader.
      -
      -
      Returns:
      -
      The reader.
      -
      Throws:
      -
      IOException - on error.
      -
      -
      -
    • -
    • -
      -

      checkError

      -
      public final boolean checkError()
      -
      Checks if this StringHolder had some kind of unexpected condition. + By default, this is only true if isString() == true, but subclasses may + override this check. When they do, they must include a check for + || super.isLengthKnown(). - If so, getMinimumLength() may be adjusted to a value smaller than its previous state.
      + Note that once a length is known, it cannot change (i.e., don't override this for + mutable objects like StringHolderSequence).
    • +
      Specified by:
      +
      isLengthKnown in interface HasExpectedLength
      Returns:
      -
      true if trouble was detected.
      -
      -
      -
    • -
    • -
      -

      setError

      -
      protected final void setError()
      -
      Signals that this instance had some kind of unexpected condition.
      -
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      clearError

      -
      protected final void clearError()
      -
      Clears the trouble state of this instance.
      -
      +
      true if the length in this holder is known.
      See Also:
      -
    • -
      -

      newReader

      -
      protected Reader newReader() - throws IOException
      -
      Constructs a new Reader providing the contents of this StringHolder.
      +
      +

      checkError

      +
      boolean checkError()
      +
      Checks if this StringHolder had some kind of unexpected condition. + + If so, getMinimumLength() may be adjusted to a value smaller than its previous state.
      Returns:
      -
      The reader.
      -
      Throws:
      -
      IOException - on error.
      +
      true if trouble was detected.
    • getScope

      -
      public final StringHolderScope getScope()
      -
      Returns the StringHolderScope associated with this StringHolder, or +
      StringHolderScope getScope()
      +
      Returns the StringHolderScope associated with this StringHolder, or null if no scope was associated.
      Returns:
      @@ -1486,8 +1215,8 @@

      getScope

    • updateScope

      -
      public final StringHolderScope updateScope(StringHolderScope newScope)
      -
      Sets the StringHolderScope associated with this StringHolder. Any previously +
      StringHolderScope updateScope(StringHolderScope newScope)
      +
      Sets the StringHolderScope associated with this StringHolder. Any previously associated scope is removed from this instance and returned.
      Parameters:
      @@ -1499,32 +1228,11 @@

      updateScope

    • -
      -

      charAt

      -
      public char charAt(int index)
      -
      -
      Specified by:
      -
      charAt in interface CharSequence
      -
      -
      -
    • -
    • -
      -

      subSequence

      -
      public CharSequence subSequence(int start, - int end)
      -
      -
      Specified by:
      -
      subSequence in interface CharSequence
      -
      -
      -
    • -
    • asContent

      -
      public Object asContent()
      +
      Object asContent()
      Returns something that can be used in withContent(Object) which then - yields the same output when calling toString() on either instance. + yields the same output when calling CharSequence.toString() on either instance. The returned object usually is this instance itself. However, this method may return a simplified version of the content stored in this instance. For example, if the content already @@ -1534,7 +1242,7 @@

      asContent

      The "content" of this instance, which could be the instance itself, or something else.
      See Also:
      -
      @@ -1544,7 +1252,7 @@

      asContent

    • compareTo

      -
      public int compareTo(Object o)
      +
      default int compareTo(Object o)
      Specified by:
      compareTo in interface Comparable<Object>
      @@ -1554,7 +1262,7 @@

      compareTo

    • compareTo

      -
      public int compareTo(CharSequence o)
      +
      int compareTo(CharSequence o)
      Narrower implementation of compareTo(Object) for Strings.
      Parameters:
      @@ -1567,8 +1275,8 @@

      compareTo

    • compareTo

      -
      public int compareTo(StringHolder o)
      -
      Narrower implementation of compareTo(Object) for StringHolders.
      +
      int compareTo(StringHolder o)
      +
      Narrower implementation of compareTo(Object) for StringHolders.
      Parameters:
      o - The other object.
      @@ -1578,64 +1286,90 @@

      compareTo

    • -
      -

      compareToDefault

      -
      protected final int compareToDefault(CharSequence o)
      -
      Default implementation for comparing this instance with another CharSequence that is - not a StringHolder. Certain trivial checks were already performed, such as one or both - being known empty.
      +
      +

      isEffectivelyImmutable

      +
      boolean isEffectivelyImmutable()
      +
      Checks if this StringHolder is effectively immutable.
      -
      Parameters:
      -
      o - The other object.
      Returns:
      -
      The comparison result, as defined by compareTo(Object).
      +
      true if the contents aren't going to change.
    • -
      -

      compareToDefault

      -
      protected int compareToDefault(StringHolder o)
      -
      Default implementation for comparing this instance with another StringHolder. Certain - trivial checks were already performed, such as one or both being known empty or known being - string.
      +
      +

      markEffectivelyImmutable

      +
      void markEffectivelyImmutable()
      +
      Marks this instance as effectively immutable.
      +
      +
    • +
    • +
      +

      isCacheable

      +
      default boolean isCacheable()
      +
      Checks if this StringHolder is cacheable. A cacheable StringHolder may be + probed early for its contents (length, hashCode, etc.). This is usually the case, except when a + StringHolder is involved that was supplied via + withConditionalStringHolder(StringHolder, Predicate) or via + withUncacheableStringHolder(StringHolder), and that StringHolder is not already a + string or otherwise supplied, for example. By convention, it should be cacheable whenever + isString() is true.
      -
      Parameters:
      -
      o - The other object.
      Returns:
      -
      The comparison result, as defined by compareTo(Object).
      +
      true if cacheable.
      +
      +
      +
    • +
    • +
      +

      clone

      +
      StringHolder clone()
      +
      Deep-clones this StringHolder.
      +
      +
      Returns:
      +
      The cloned instance.
    • -
      -

      updateHashCode

      -
      protected int updateHashCode(int h)
      -
      Computes a partial hash code, using the given value as the seed.
      +
      +

      indexOf

      +
      default int indexOf(int c)
      +
      Returns the index within this string of the first occurrence of the specified character, or + -1 if not found.
      Parameters:
      -
      h - The initial value (seed).
      +
      c - The character/codepoint to look for.
      Returns:
      -
      The updated hash code.
      +
      The position, or -1 if not found.
    • -
      -

      isEffectivelyImmutable

      -
      public boolean isEffectivelyImmutable()
      -
      Checks if the given StringHolder is effectively immutable.
      +
      +

      contains

      +
      default boolean contains(CharSequence s)
      +
      Checks if this StringHolder contains the given CharSequence.
      +
      Parameters:
      +
      s - The char sequence to look for.
      Returns:
      -
      true if the contents aren't going to change.
      +
      true if found (also if the sequence is empty).
    • -
      -

      markEffectivelyImmutable

      -
      public void markEffectivelyImmutable()
      -
      Marks this instance as effectively immutable.
      +
      +

      indexOf

      +
      default int indexOf(CharSequence str)
      +
      Returns the index within this StringHolder of the first occurrence of the specified + CharSequence, or -1 if not found.
      +
      +
      Parameters:
      +
      str - The char sequence to look for.
      +
      Returns:
      +
      The position, or -1 if not found.
      +
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolderScope.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolderScope.html index 3e324b2..ef811c4 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolderScope.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolderScope.html @@ -1,18 +1,17 @@ - -StringHolderScope (stringhold-common 1.0.0-SNAPSHOT API) + +StringHolderScope (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -93,9 +92,9 @@

    Interface StringHolderScop
    public interface StringHolderScope
    -
    A scope that can be associated with StringHolder instances. +
    A scope that can be associated with StringHolder instances. - The methods are callbacks from StringHolder code. StringHolders can be + The methods are callbacks from StringHolder code. StringHolders can be associated/removed via StringHolder.updateScope(StringHolderScope).
    Author:
    @@ -133,31 +132,30 @@

    Method Summary

    Method
    Description
    void
    - +
    -
    Called upon adding a StringHolder with this StringHolderScope.
    +
    Called upon adding a StringHolder with this StringHolderScope.
    default void
    - +
    -
    Called upon a StringHolder leaving error state.
    +
    Called upon a StringHolder leaving error state.
    void
    - +
    -
    Called upon removing a StringHolder from this StringHolderScope.
    +
    Called upon removing a StringHolder from this StringHolderScope.
    default void
    -
    resizeBy(StringHolder sh, - int minLengthBy, +
    resizeBy(int minLengthBy, int expectedLengthBy)
    -
    Called upon a size change regarding the given StringHolder.
    +
    Called upon a size change regarding the given StringHolder.
    default void
    - +
    -
    Called upon a StringHolder entering error state, e.g., when a length constraint was +
    Called upon a StringHolder entering error state, e.g., when a length constraint was violated.
    @@ -192,35 +190,33 @@

    Method Details

  • add

    -
    void add(StringHolder sh)
    -
    Called upon adding a StringHolder with this StringHolderScope.
    +
    void add(StringHolder sh)
    +
    Called upon adding a StringHolder with this StringHolderScope.
    Parameters:
    -
    sh - The StringHolder.
    +
    sh - The StringHolder.
  • remove

    -
    void remove(StringHolder sh)
    -
    Called upon removing a StringHolder from this StringHolderScope.
    +
    void remove(StringHolder sh)
    +
    Called upon removing a StringHolder from this StringHolderScope.
    Parameters:
    -
    sh - The StringHolder.
    +
    sh - The StringHolder.
  • -
    +

    resizeBy

    -
    default void resizeBy(StringHolder sh, - int minLengthBy, +
    default void resizeBy(int minLengthBy, int expectedLengthBy)
    -
    Called upon a size change regarding the given StringHolder.
    +
    Called upon a size change regarding the given StringHolder.
    Parameters:
    -
    sh - The StringHolder.
    minLengthBy - The relative size change for the minimum length, can also be negative.
    expectedLengthBy - The relative size change for the expected length, can also be negative.
    @@ -229,23 +225,23 @@

    resizeBy

  • setError

    -
    default void setError(StringHolder sh)
    -
    Called upon a StringHolder entering error state, e.g., when a length constraint was +
    default void setError(StringHolder sh)
    +
    Called upon a StringHolder entering error state, e.g., when a length constraint was violated.
    Parameters:
    -
    sh - The StringHolder.
    +
    sh - The StringHolder.
  • clearError

    -
    default void clearError(StringHolder sh)
    -
    Called upon a StringHolder leaving error state.
    +
    default void clearError(StringHolder sh)
    +
    Called upon a StringHolder leaving error state.
    Parameters:
    -
    sh - The StringHolder.
    +
    sh - The StringHolder.
  • diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolderSequence.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolderSequence.html index 99aa2cd..cd2a59f 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolderSequence.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/StringHolderSequence.html @@ -1,18 +1,17 @@ - -StringHolderSequence (stringhold-common 1.0.0-SNAPSHOT API) + +StringHolderSequence (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -41,7 +40,7 @@
  • @@ -49,7 +48,7 @@

    Detail:

    @@ -61,13 +60,13 @@
  • Summary: 
  • Nested | 
  • Field | 
  • -
  • Constr | 
  • +
  • Constr | 
  • Method
  • @@ -87,24 +86,24 @@

    Class StringHolderSequence

    java.lang.Object -
    All Implemented Interfaces:
    -
    HasExpectedLength, HasLength, HasMinimumLength, Appendable, CharSequence, Comparable<Object>
    +
    HasExpectedLength, HasLength, HasMinimumLength, StringHolder, Appendable, CharSequence, Cloneable, Comparable<Object>
    Direct Known Subclasses:
    -
    AsyncStringHolderSequence, StringOnlySequence
    +
    StringOnlySequence

    public class StringHolderSequence -extends StringHolder +extends AbstractStringHolder implements Appendable
    -
    An Appendable sequence of strings or StringHolders.
    +
    An Appendable sequence of strings or StringHolders.
    Author:
    Christian Kohlschütter
    @@ -112,25 +111,6 @@

    Class StringHolderSequence<

    Methods inherited from interface java.lang.CharSequence

    chars, codePoints
    +
    +

    Methods inherited from interface com.kohlschutter.stringhold.StringHolder

    +compareTo, contains, indexOf, indexOf

    @@ -200,10 +207,10 @@

    Method Details

  • needsStringConversion

    -
    protected boolean needsStringConversion(StringHolder sh)
    +
    protected boolean needsStringConversion(StringHolder sh)
    Description copied from class: StringHolderSequence
    -
    Checks if the to-be-appended StringHolder should be added as a String (with - conversion via StringHolder.toString()) instead of adding it directly. +
    Checks if the to-be-appended StringHolder should be added as a String (with + conversion via CharSequence.toString()) instead of adding it directly. This is false by default for all objects. Subclasses may override this selectively. If all objects should be converted to strings, use StringOnlySequence.
    @@ -211,18 +218,34 @@

    needsStringConversion

    Overrides:
    needsStringConversion in class StringHolderSequence
    Parameters:
    -
    sh - The StringHolder.
    +
    sh - The StringHolder.
    Returns:
    true if it should be appended as a string.
    See Also:
    -
  • +
  • +
    +

    clone

    +
    public StringOnlySequence clone()
    +
    Description copied from interface: StringHolder
    +
    Deep-clones this StringHolder.
    +
    +
    Specified by:
    +
    clone in interface StringHolder
    +
    Overrides:
    +
    clone in class StringHolderSequence
    +
    Returns:
    +
    The cloned instance.
    +
    +
    +
  • diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/AbstractStringHolder.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/AbstractStringHolder.html new file mode 100644 index 0000000..4efed5a --- /dev/null +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/AbstractStringHolder.html @@ -0,0 +1,95 @@ + + + + +Uses of Class com.kohlschutter.stringhold.AbstractStringHolder (stringhold-common 1.0.2-SNAPSHOT API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Uses of Class
    com.kohlschutter.stringhold.AbstractStringHolder

    +
    +
    + +
    +
    + +
    +
    + + \ No newline at end of file diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/CachedIOSupplier.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/CachedIOSupplier.html index 7f45078..c92f6b3 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/CachedIOSupplier.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/CachedIOSupplier.html @@ -1,18 +1,17 @@ - -Uses of Class com.kohlschutter.stringhold.CachedIOSupplier (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Class com.kohlschutter.stringhold.CachedIOSupplier (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasExpectedLength.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasExpectedLength.html index f7d8031..837738a 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasExpectedLength.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasExpectedLength.html @@ -1,18 +1,17 @@ - -Uses of Interface com.kohlschutter.stringhold.HasExpectedLength (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Interface com.kohlschutter.stringhold.HasExpectedLength (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -77,33 +76,31 @@

    Uses of
    Describes something that can return its minimum length.
    +
    interface 
    +
    +
    +
    A StringHolder holds something that can eventually turn into a string.
    +
    Modifier and Type
    Class
    Description
    -
    final class 
    - +
    class 
    +
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append, - with appends being run asynchronously, using temporary intermediate storage, if - possible/necessary.
    +
    Base implementation of a StringHolder.
    class 
    - +
    -
    A StringHolder holds something that can eventually turn into a string.
    +
    An Appendable sequence of strings or StringHolders.
    class 
    - +
    -
    An Appendable sequence of strings or StringHolders.
    -
    -
    class 
    - -
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    +
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasKnownLength.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasKnownLength.html index b321954..b2f72a0 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasKnownLength.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasKnownLength.html @@ -1,18 +1,17 @@ - -Uses of Interface com.kohlschutter.stringhold.HasKnownLength (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Interface com.kohlschutter.stringhold.HasKnownLength (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasLength.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasLength.html index 3f24fd1..fce7a73 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasLength.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasLength.html @@ -1,18 +1,17 @@ - -Uses of Interface com.kohlschutter.stringhold.HasLength (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Interface com.kohlschutter.stringhold.HasLength (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -67,33 +66,31 @@

    Uses of Describes something that can return its exact length without additional computation (i.e., without resorting to something like toString().length()). +
    interface 
    +
    +
    +
    A StringHolder holds something that can eventually turn into a string.
    +
    Classes in com.kohlschutter.stringhold that implement HasLength
    Modifier and Type
    Class
    Description
    -
    final class 
    - +
    class 
    +
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append, - with appends being run asynchronously, using temporary intermediate storage, if - possible/necessary.
    +
    Base implementation of a StringHolder.
    class 
    - +
    -
    A StringHolder holds something that can eventually turn into a string.
    +
    An Appendable sequence of strings or StringHolders.
    class 
    - +
    -
    An Appendable sequence of strings or StringHolders.
    -
    -
    class 
    - -
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    +
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasMinimumLength.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasMinimumLength.html index 1a6ead7..64a2e8d 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasMinimumLength.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/HasMinimumLength.html @@ -1,18 +1,17 @@ - -Uses of Interface com.kohlschutter.stringhold.HasMinimumLength (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Interface com.kohlschutter.stringhold.HasMinimumLength (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -72,33 +71,31 @@

    Uses of
    Describes something that can return its exact length.
    +
    interface 
    +
    +
    +
    A StringHolder holds something that can eventually turn into a string.
    +
    Modifier and Type
    Class
    Description
    -
    final class 
    - +
    class 
    +
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append, - with appends being run asynchronously, using temporary intermediate storage, if - possible/necessary.
    +
    Base implementation of a StringHolder.
    class 
    - +
    -
    A StringHolder holds something that can eventually turn into a string.
    +
    An Appendable sequence of strings or StringHolders.
    class 
    - +
    -
    An Appendable sequence of strings or StringHolders.
    -
    -
    class 
    - -
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    +
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOExceptionHandler.ExceptionResponse.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOExceptionHandler.ExceptionResponse.html index 7b078e4..d7290d8 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOExceptionHandler.ExceptionResponse.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOExceptionHandler.ExceptionResponse.html @@ -1,18 +1,17 @@ - -Uses of Enum com.kohlschutter.stringhold.IOExceptionHandler.ExceptionResponse (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Enum com.kohlschutter.stringhold.IOExceptionHandler.ExceptionResponse (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOExceptionHandler.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOExceptionHandler.html index 4fc6686..4eeed0f 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOExceptionHandler.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOExceptionHandler.html @@ -1,18 +1,17 @@ - -Uses of Interface com.kohlschutter.stringhold.IOExceptionHandler (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Interface com.kohlschutter.stringhold.IOExceptionHandler (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -93,20 +92,20 @@

    Uses of Modifier and Type
    Method
    Description
    -
    +
    StringHolder.withReaderSupplier(IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
    Constructs a ReaderStringHolder with the given Reader source.
    - +
    StringHolder.withReaderSupplierExpectedLength(int expectedLen, IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
    Constructs a ReaderStringHolder with the given Reader source.
    - +
    StringHolder.withReaderSupplierMinimumAndExpectedLength(int minLen, int expectedLen, IOSupplier<Reader> readerSupply, @@ -114,51 +113,51 @@

    Uses of
    Constructs a ReaderStringHolder with the given Reader source.

    - +
    StringHolder.withReaderSupplierMinimumLength(int minLen, IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
    Constructs a ReaderStringHolder with the given Reader source.
    - +
    StringHolder.withSupplier(IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, assuming a minimum +
    Constructs a new StringHolder with content from the given supplier, assuming a minimum length of 0.
    - +
    StringHolder.withSupplierExpectedLength(int expectedLength, IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, specifying a +
    Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
    - +
    StringHolder.withSupplierFixedLength(int fixedLength, IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, specifying the +
    Constructs a new StringHolder with content from the given supplier, specifying the length the supplied string is going to have.
    - +
    StringHolder.withSupplierMinimumAndExpectedLength(int minLength, int expectedLength, IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, specifying a +
    Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
    - +
    StringHolder.withSupplierMinimumLength(int minLength, IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, specifying a +
    Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOSupplier.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOSupplier.html index 2424b25..0c9dd1b 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOSupplier.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/IOSupplier.html @@ -1,18 +1,17 @@ - -Uses of Interface com.kohlschutter.stringhold.IOSupplier (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Interface com.kohlschutter.stringhold.IOSupplier (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -78,20 +77,20 @@

    Uses of Creates a lazily-initialized reader from the Reader supplied through given IOSupplier.

    - +
    StringHolder.withReaderSupplier(IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
    Constructs a ReaderStringHolder with the given Reader source.
    - +
    StringHolder.withReaderSupplierExpectedLength(int expectedLen, IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
    Constructs a ReaderStringHolder with the given Reader source.
    - +
    StringHolder.withReaderSupplierMinimumAndExpectedLength(int minLen, int expectedLen, IOSupplier<Reader> readerSupply, @@ -99,51 +98,51 @@

    Uses of
    Constructs a ReaderStringHolder with the given Reader source.

    - +
    StringHolder.withReaderSupplierMinimumLength(int minLen, IOSupplier<Reader> readerSupply, IOExceptionHandler onError)
    Constructs a ReaderStringHolder with the given Reader source.
    - +
    StringHolder.withSupplier(IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, assuming a minimum +
    Constructs a new StringHolder with content from the given supplier, assuming a minimum length of 0.
    - +
    StringHolder.withSupplierExpectedLength(int expectedLength, IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, specifying a +
    Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
    - +
    StringHolder.withSupplierFixedLength(int fixedLength, IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, specifying the +
    Constructs a new StringHolder with content from the given supplier, specifying the length the supplied string is going to have.
    - +
    StringHolder.withSupplierMinimumAndExpectedLength(int minLength, int expectedLength, IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, specifying a +
    Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
    - +
    StringHolder.withSupplierMinimumLength(int minLength, IOSupplier<?> supplier, IOExceptionHandler onError)
    -
    Constructs a new StringHolder with content from the given supplier, specifying a +
    Constructs a new StringHolder with content from the given supplier, specifying a minimum of the estimated length.
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/LazyInitReader.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/LazyInitReader.html index 07fa72d..6ee5794 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/LazyInitReader.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/LazyInitReader.html @@ -1,18 +1,17 @@ - -Uses of Class com.kohlschutter.stringhold.LazyInitReader (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Class com.kohlschutter.stringhold.LazyInitReader (stringhold-common 1.0.2-SNAPSHOT API) - + - - + diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/LimitedStringHolderScope.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/LimitedStringHolderScope.html index e0928c6..9809ca7 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/LimitedStringHolderScope.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/LimitedStringHolderScope.html @@ -1,18 +1,17 @@ - -Uses of Class com.kohlschutter.stringhold.LimitedStringHolderScope (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Class com.kohlschutter.stringhold.LimitedStringHolderScope (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -67,22 +66,22 @@

    Uses of Constructs a new LimitedStringHolderScope with no length limits.

    -
    LimitedStringHolderScope.withUpperLimitForExpectedLength(int expectedLengthLimit, - Runnable onLimitExceeded)
    +
    LimitedStringHolderScope.withUpperLimitForExpectedLength(int expectedLengthLimit, + Consumer<StringHolder> onLimitExceeded)
    Constructs a new LimitedStringHolderScope with an upper limit for the expected length.
    -
    LimitedStringHolderScope.withUpperLimitForMinimumAndExpectedLength(int minLengthLimit, +
    LimitedStringHolderScope.withUpperLimitForMinimumAndExpectedLength(int minLengthLimit, int expectedLengthLimit, - Runnable onLimitExceeded)
    + Consumer<StringHolder> onLimitExceeded)
    Constructs a new LimitedStringHolderScope with separate upper limits for the minimum length and expected length.
    -
    LimitedStringHolderScope.withUpperLimitForMinimumLength(int minLengthLimit, - Runnable onLimitExceeded)
    +
    LimitedStringHolderScope.withUpperLimitForMinimumLength(int minLengthLimit, + Consumer<StringHolder> onLimitExceeded)
    Constructs a new LimitedStringHolderScope with an upper limit for the minimum length.
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringHolder.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringHolder.html index 26053d9..9a551d9 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringHolder.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringHolder.html @@ -1,18 +1,17 @@ - -Uses of Class com.kohlschutter.stringhold.StringHolder (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Interface com.kohlschutter.stringhold.StringHolder (stringhold-common 1.0.2-SNAPSHOT API) - - + + - - + @@ -29,7 +28,7 @@
    @@ -85,15 +84,21 @@

    Uses of Method

    Description
    -
    StringHolder.getScope()
    -
    -
    Returns the StringHolderScope associated with this StringHolder, or +
    AbstractStringHolder.getScope()
    +
     
    + +
    StringHolder.getScope()
    +
    +
    Returns the StringHolderScope associated with this StringHolder, or null if no scope was associated.
    - + +
    AbstractStringHolder.updateScope(StringHolderScope newScope)
    +
     
    +
    StringHolder.updateScope(StringHolderScope newScope)
    -
    Sets the StringHolderScope associated with this StringHolder.
    +
    Sets the StringHolderScope associated with this StringHolder.
    Methods in com.kohlschutter.stringhold with parameters of type StringHolderScope
    @@ -102,9 +107,12 @@

    Uses of Method

    Description
    -
    StringHolder.updateScope(StringHolderScope newScope)
    -
    -
    Sets the StringHolderScope associated with this StringHolder.
    +
    AbstractStringHolder.updateScope(StringHolderScope newScope)
    +
     
    + +
    StringHolder.updateScope(StringHolderScope newScope)
    +
    +
    Sets the StringHolderScope associated with this StringHolder.
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringHolderSequence.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringHolderSequence.html index cb9e867..7e5b165 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringHolderSequence.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringHolderSequence.html @@ -1,18 +1,17 @@ - -Uses of Class com.kohlschutter.stringhold.StringHolderSequence (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Class com.kohlschutter.stringhold.StringHolderSequence (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -61,17 +60,10 @@

    Uses of Modifier and Type

    Class
    Description
    -
    final class 
    -
    +
    class 
    +
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append, - with appends being run asynchronously, using temporary intermediate storage, if - possible/necessary.
    -
    -
    class 
    - -
    -
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    +
    An appendable sequence of strings; StringHolders are automatically converted upon append.
    @@ -83,9 +75,9 @@

    Uses of StringHolderSequence.append(char c)
     
    -
    StringHolderSequence.append(StringHolder s)
    +
    StringHolderSequence.append(StringHolder s)
    -
    Appends the given StringHolder, unless it is known to be empty.
    +
    Appends the given StringHolder, unless it is known to be empty.
    StringHolderSequence.append(CharSequence s)
    @@ -117,6 +109,40 @@

    Uses of
    Appends all given objects.
    +
    +
    StringHolderSequence.clone()
    +
     
    + +
    StringHolder.newAsyncSequence()
    +
    +
    Constructs a new, empty async StringHolderSequence.
    +
    + +
    StringHolder.newAsyncSequence(int estimatedNumberOfAppends)
    +
    +
    Constructs a new, empty async StringHolderSequence.
    +
    + +
    StringHolder.newAsyncSequence(int estimatedNumberOfAppends, + Executor executor)
    +
    +
    Constructs a new, empty async StringHolderSequence.
    +
    + +
    StringHolder.newAsyncSequence(Executor executor)
    +
    +
    Constructs a new, empty async StringHolderSequence.
    +
    + +
    StringHolder.newSequence()
    +
    +
    Constructs a new, empty StringHolderSequence.
    +
    + +
    StringHolder.newSequence(int estimatedNumberOfAppends)
    +
    +
    Constructs a new, empty StringHolderSequence.
    +
    diff --git a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringOnlySequence.html b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringOnlySequence.html index c507429..ed65958 100644 --- a/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringOnlySequence.html +++ b/stringhold-common/apidocs/com/kohlschutter/stringhold/class-use/StringOnlySequence.html @@ -1,18 +1,17 @@ - -Uses of Class com.kohlschutter.stringhold.StringOnlySequence (stringhold-common 1.0.0-SNAPSHOT API) + +Uses of Class com.kohlschutter.stringhold.StringOnlySequence (stringhold-common 1.0.2-SNAPSHOT API) - + - - + @@ -51,7 +50,25 @@

    Uses of Class
    com.kohlschutter.stringhold.StringOnlySequence

    -No usage of com.kohlschutter.stringhold.StringOnlySequence

    +
    + +
    +