RFR: 8251989: Hex formatting and parsing utility [v20]
Roger Riggs
rriggs at openjdk.java.net
Tue Dec 15 18:16:57 UTC 2020
> java.util.HexFormat utility:
>
> - Format and parse hexadecimal strings, with parameters for delimiter, prefix, suffix and upper/lowercase
> - Static factories and builder methods to create HexFormat copies with modified parameters.
> - Consistent naming of methods for conversion of byte arrays to formatted strings and back: formatHex and parseHex
> - Consistent naming of methods for conversion of primitive types: toHexDigits... and fromHexDigits...
> - Prefix and suffixes now apply to each formatted value, not the string as a whole
> - Using java.util.Appendable as a target for buffered conversions so output to Writers and PrintStreams
> like System.out are supported in addition to StringBuilder. (IOExceptions are converted to unchecked exceptions)
> - Immutable and thread safe, a "value-based" class
>
> See the [HexFormat javadoc](http://cr.openjdk.java.net/~rriggs/8251989-hex-formatter/java.base/java/util/HexFormat.html) for details.
>
> Review comments and suggestions welcome.
Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 33 additional commits since the last revision:
- Correct typos in fromHexDigits methods javadoc
- Merge branch 'master' into 8251989-hex-formatter
- Merge branch 'master' into 8251989-hex-formatter
- Clarified parsing of hex as unsigned in fromHexDigits methods.
- Added @apiNote to fromHexDigits methods to link and compare to similar methods in Integer and Long.
- Merge branch 'master' into 8251989-hex-formatter
- Add class level clarification of use of uppercase for primitive conversions
Switched order of declaration of a couple of method to make the javadoc sequence easier to read
- Clarify that the fromHexDigit method does not use the prefix, suffix, delimiter, or uppercase parameter.
- Clarify that the fromHexDigits does not use the uppercase parameter.
- Increased memory to 4G for the test and add diagnostic info for OOME
- ... and 23 more: https://git.openjdk.java.net/jdk/compare/912990ca...4866a0a2
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/482/files
- new: https://git.openjdk.java.net/jdk/pull/482/files/044d4633..4866a0a2
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=482&range=19
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=482&range=18-19
Stats: 32400 lines in 831 files changed: 23862 ins; 5860 del; 2678 mod
Patch: https://git.openjdk.java.net/jdk/pull/482.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/482/head:pull/482
PR: https://git.openjdk.java.net/jdk/pull/482
More information about the core-libs-dev
mailing list