jdk icon indicating copy to clipboard operation
jdk copied to clipboard

8341566: Add Reader.of(CharSequence)

Open mkarg opened this issue 4 months ago • 44 comments

This Pull Requests proposes an implementation for JDK-8341566: Adding the new method public static Reader Reader.of(CharSequence) will return an anonymous, non-synchronized implementation of a Reader for each kind of CharSequence implementation. It is optimized for String, StringBuilder, StringBuffer and CharBuffer.

In addition, this Pull Request proposes to replace the implementation of StringReader to become a simple synchronized wrapper around Reader.of(CharSequence) for the case of String sources. To ensure correctness, this PR...

  • ...simply moved the original code of StringBuilder to become the de-facto implementation of Reader.of(), then stripped synchronized from it on the left hand, but kept just a synchronized wrapper on the right hand. Then added a switch for optimizations within the original code, at the exact location where previously just an optimization for String lived in.
  • ...added tests for all methods (Of.java), and applied that test upon the modified StringBuilder.

Wherever new JavaDocs were added, existing phrases from other code locations have been copied and adapted, to best match the same wording.


Progress

  • [x] Change must not contain extraneous whitespace
  • [x] Commit message must refer to an issue
  • [x] Change requires CSR request JDK-8341596 to be approved
  • [x] Change must be properly reviewed (2 reviews required, with at least 2 Reviewers)

Issues

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/21371/head:pull/21371
$ git checkout pull/21371

Update a local copy of the PR:
$ git checkout pull/21371
$ git pull https://git.openjdk.org/jdk.git pull/21371/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 21371

View PR using the GUI difftool:
$ git pr show -t 21371

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/21371.diff

Webrev

Link to Webrev Comment

mkarg avatar Oct 05 '24 16:10 mkarg