Le mar. 11 janv. 2022 à 14:21, <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).

> [...]

Gilles

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to