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