Skip to content

Commit

Permalink
Simplify CharSequenceValueConverter#convertToBoolean
Browse files Browse the repository at this point in the history
Motivation:
CharSequenceValueConverter#convertToBoolean has a few manual conditionals which can be removed if we use AsciiString.contentEqualsIgnoreCase. Also by comparing an AsciiString to a String we will incur conversions to char that can be avoided if we compare against AsciiString.

Modifications:
- Use AsciiString.contentEqualsIgnoreCase
- Compare against a AsciiString

Result:
Simplified CharSequenceValueConverter#convertToBoolean which favors AsciiString comparison.
  • Loading branch information
Scottmitch authored and normanmaurer committed Feb 17, 2018
1 parent 1556053 commit 1e5fafe
Showing 1 changed file with 2 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
*/
public class CharSequenceValueConverter implements ValueConverter<CharSequence> {
public static final CharSequenceValueConverter INSTANCE = new CharSequenceValueConverter();
private static final AsciiString TRUE_ASCII = new AsciiString("true");

@Override
public CharSequence convertObject(Object value) {
Expand Down Expand Up @@ -66,14 +67,7 @@ public CharSequence convertFloat(float value) {

@Override
public boolean convertToBoolean(CharSequence value) {
if (value instanceof AsciiString) {
AsciiString asciiString = (AsciiString) value;
return asciiString.contentEqualsIgnoreCase("true");
}
if (value.length() != 4) {
return false;
}
return Boolean.parseBoolean(value.toString());
return AsciiString.contentEqualsIgnoreCase(value, TRUE_ASCII);
}

@Override
Expand Down

0 comments on commit 1e5fafe

Please sign in to comment.