> On Jan 11, 2022, at 8:41 AM, Gilles Sadowski <gillese...@gmail.com> wrote:
> 
> Le mar. 11 janv. 2022 à 14:21, <ggreg...@apache.org 
> <mailto:ggreg...@apache.org>> a écrit :
>> 
>> This is an automated email from the ASF dual-hosted git repository.
>> 
>> ggregory pushed a commit to branch master
>> in repository https://gitbox.apache.org/repos/asf/commons-io.git
>> 
>> 
>> The following commit(s) were added to refs/heads/master by this push:
>>     new 7ffb81b  Add CharsetEncoders.
>> 7ffb81b is described below
>> 
>> commit 7ffb81b956ff2c148cb27a1b05635a9ea7a98a6d
>> Author: Gary Gregory <garydgreg...@gmail.com>
>> AuthorDate: Tue Jan 11 08:21:54 2022 -0500
>> 
>>    Add CharsetEncoders.
>> ---
>> src/changes/changes.xml                            |  3 ++
>> .../apache/commons/io/charset/CharsetEncoders.java | 36 +++++++++++++++
>> .../apache/commons/io/charset/package-info.java    | 22 +++++++++
>> .../commons/io/charset/CharsetEncodersTest.java    | 54 
>> ++++++++++++++++++++++
>> 4 files changed, 115 insertions(+)
>> 
>> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
>> index 5fd6789..c6d4778 100644
>> --- a/src/changes/changes.xml
>> +++ b/src/changes/changes.xml
>> @@ -293,6 +293,9 @@ The <action> type attribute can be add,update,fix,remove.
>>       <action dev="ggregory" type="add" due-to="Gary Gregory">
>>         Add and reuse IOConsumer.forEach(T[], IOConsumer) and 
>> forEachIndexed(Stream, IOConsumer).
>>       </action>
>> +      <action dev="ggregory" type="add" due-to="Gary Gregory">
>> +        Add CharsetEncoders.
>> +      </action>
>>       <!-- UPDATE -->
>>       <action dev="ggregory" type="add" due-to="Gary Gregory">
>>         Update FileEntry to use FileTime instead of long for file time 
>> stamps.
>> diff --git 
>> a/src/main/java/org/apache/commons/io/charset/CharsetEncoders.java 
>> b/src/main/java/org/apache/commons/io/charset/CharsetEncoders.java
>> new file mode 100644
>> index 0000000..815aaef
>> --- /dev/null
>> +++ b/src/main/java/org/apache/commons/io/charset/CharsetEncoders.java
>> @@ -0,0 +1,36 @@
>> +/*
>> + * Licensed to the Apache Software Foundation (ASF) under one or more
>> + * contributor license agreements.  See the NOTICE file distributed with
>> + * this work for additional information regarding copyright ownership.
>> + * The ASF licenses this file to You 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 org.apache.commons.io.charset;
>> +
>> +import java.nio.charset.Charset;
>> +import java.nio.charset.CharsetEncoder;
>> +
>> +public class CharsetEncoders {
>> +
>> +    /**
>> +     * Returns the given non-null CharsetEncoder or a new default 
>> CharsetEncoder.
>> +     *
>> +     * @param charsetEncoder The CharsetEncoder to test.
>> +     * @return the given non-null CharsetEncoder or a new default 
>> CharsetEncoder.
>> +     * @since 2.12.0
>> +     */
>> +    public static CharsetEncoder toCharsetEncoder(CharsetEncoder 
>> charsetEncoder) {
>> +        return charsetEncoder != null ? charsetEncoder : 
>> Charset.defaultCharset().newEncoder();
>> +    }
> 
> What's the use-case for such a function?
> 
> void userFunction(CharsetEncoder charsetEncoder) { /* ... */ }
> 
> Not using Commons IO:
> ---CUT---
>  userFunction(csEnc == null ? Charset.defaultCharset().newEncoder() : csEnc);
> ---CUT---
> vs using Commons IO:
> ---CUT---
>  userFunction(CharsetEncoders.toCharsetEncoder(csEnc));
> ---CUT---
> 
> IMO, the former call is clearer (self-documenting) and safer (explicit request
> for a default).


If things are unclear in the code, why not check in comments as to why**** 
we’re doing what we’re doing. I’ve found that comments about what’s going on 
are over the top, but why comments are of great value.

-Rob

> 
>> [...]
> 
> Gilles
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org 
> <mailto:dev-unsubscr...@commons.apache.org>
> For additional commands, e-mail: dev-h...@commons.apache.org 
> <mailto:dev-h...@commons.apache.org>

Reply via email to