Author: ggregory
Date: Fri Mar 30 18:20:23 2012
New Revision: 1307568
URL: http://svn.apache.org/viewvc?rev=1307568&view=rev
Log:
[IO-318] Add Charset sister APIs to method that take a String charset name.
Added:
commons/proper/io/trunk/src/test/java/org/apache/commons/io/CharsetsTestCase.java
Modified:
commons/proper/io/trunk/src/main/java/org/apache/commons/io/Charsets.java
commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
Modified:
commons/proper/io/trunk/src/main/java/org/apache/commons/io/Charsets.java
URL:
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/Charsets.java?rev=1307568&r1=1307567&r2=1307568&view=diff
==============================================================================
--- commons/proper/io/trunk/src/main/java/org/apache/commons/io/Charsets.java
(original)
+++ commons/proper/io/trunk/src/main/java/org/apache/commons/io/Charsets.java
Fri Mar 30 18:20:23 2012
@@ -26,6 +26,10 @@ import java.nio.charset.UnsupportedChars
* @since 2.3
*/
public class Charsets {
+ //
+ // This class should only contain Charset instances for required
encodings. This guarantees that it will load correctly and
+ // without delay on all Java platforms.
+ //
/**
* Returns the given Charset or the default Charset if the given Charset
is null.
@@ -33,7 +37,6 @@ public class Charsets {
* @param charset
* A charset or null.
* @return the given Charset or the default Charset if the given Charset
is null
- * @since 2.3
*/
public static Charset toCharset(Charset charset) {
return charset == null ? Charset.defaultCharset() : charset;
@@ -47,10 +50,79 @@ public class Charsets {
* @return a Charset for the named charset
* @throws UnsupportedCharsetException
* If the named charset is unavailable
- * @since 2.3
*/
public static Charset toCharset(String charset) {
return charset == null ? Charset.defaultCharset() :
Charset.forName(charset);
}
+ /**
+ * CharEncodingISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1. </p>
+ * <p>
+ * Every implementation of the Java platform is required to support this
character encoding.
+ * </p>
+ *
+ * @see <a
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard
charsets</a>
+ */
+ public static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");
+
+ /**
+ * <p>
+ * Seven-bit ASCII, also known as ISO646-US, also known as the Basic Latin
block of the Unicode character set.
+ * </p>
+ * <p>
+ * Every implementation of the Java platform is required to support this
character encoding.
+ * </p>
+ *
+ * @see <a
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard
charsets</a>
+ */
+ public static final Charset US_ASCII = Charset.forName("US-ASCII");
+
+ /**
+ * <p>
+ * Sixteen-bit Unicode Transformation Format, The byte order specified by
a mandatory initial byte-order mark
+ * (either order accepted on input, big-endian used on output)
+ * </p>
+ * <p>
+ * Every implementation of the Java platform is required to support this
character encoding.
+ * </p>
+ *
+ * @see <a
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard
charsets</a>
+ */
+ public static final Charset UTF_16 = Charset.forName("UTF-16");
+
+ /**
+ * <p>
+ * Sixteen-bit Unicode Transformation Format, big-endian byte order.
+ * </p>
+ * <p>
+ * Every implementation of the Java platform is required to support this
character encoding.
+ * </p>
+ *
+ * @see <a
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard
charsets</a>
+ */
+ public static final Charset UTF_16BE = Charset.forName("UTF-16BE");
+
+ /**
+ * <p>
+ * Sixteen-bit Unicode Transformation Format, little-endian byte order.
+ * </p>
+ * <p>
+ * Every implementation of the Java platform is required to support this
character encoding.
+ * </p>
+ *
+ * @see <a
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard
charsets</a>
+ */
+ public static final Charset UTF_16LE = Charset.forName("UTF-16LE");
+
+ /**
+ * <p>
+ * Eight-bit Unicode Transformation Format.
+ * </p>
+ * <p>
+ * Every implementation of the Java platform is required to support this
character encoding.
+ * </p>
+ *
+ * @see <a
href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard
charsets</a>
+ */
+ public static final Charset UTF_8 = Charset.forName("UTF-8");
}
Added:
commons/proper/io/trunk/src/test/java/org/apache/commons/io/CharsetsTestCase.java
URL:
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/CharsetsTestCase.java?rev=1307568&view=auto
==============================================================================
---
commons/proper/io/trunk/src/test/java/org/apache/commons/io/CharsetsTestCase.java
(added)
+++
commons/proper/io/trunk/src/test/java/org/apache/commons/io/CharsetsTestCase.java
Fri Mar 30 18:20:23 2012
@@ -0,0 +1,71 @@
+/*
+ * 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;
+
+import java.nio.charset.Charset;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link Charsets}.
+ *
+ * @version $Id: CharEncodingTest.java 1298985 2012-03-09 19:12:49Z ggregory $
+ */
+public class CharsetsTestCase {
+
+ @Test
+ public void testToCharset() {
+ Assert.assertEquals(Charset.defaultCharset(),
Charsets.toCharset((String) null));
+ Assert.assertEquals(Charset.defaultCharset(),
Charsets.toCharset((Charset) null));
+ Assert.assertEquals(Charset.defaultCharset(),
Charsets.toCharset(Charset.defaultCharset()));
+ Assert.assertEquals(Charset.forName("UTF-8"),
Charsets.toCharset(Charset.forName("UTF-8")));
+ }
+
+ @Test
+ public void testIso8859_1() {
+ Assert.assertEquals("ISO-8859-1", Charsets.ISO_8859_1.name());
+ }
+
+ @Test
+ public void testUsAscii() {
+ Assert.assertEquals("US-ASCII", Charsets.US_ASCII.name());
+ }
+
+ @Test
+ public void testUtf16() {
+ Assert.assertEquals("UTF-16", Charsets.UTF_16.name());
+ }
+
+ @Test
+ public void testUtf16Be() {
+ Assert.assertEquals("UTF-16BE", Charsets.UTF_16BE.name());
+ }
+
+ @Test
+ public void testUtf16Le() {
+ Assert.assertEquals("UTF-16LE", Charsets.UTF_16LE.name());
+ }
+
+ @Test
+ public void testUtf8() {
+ Assert.assertEquals("UTF-8", Charsets.UTF_8.name());
+ }
+
+}
Modified:
commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
URL:
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java?rev=1307568&r1=1307567&r2=1307568&view=diff
==============================================================================
---
commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
(original)
+++
commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
Fri Mar 30 18:20:23 2012
@@ -46,8 +46,6 @@ import java.util.List;
import org.apache.commons.io.testtools.FileBasedTestCase;
import org.junit.Assert;
-// Note: jdk1.2 dependency
-
/**
* This is used to test IOUtils for correctness. The following checks are
performed:
* <ul>
@@ -291,12 +289,6 @@ public class IOUtilsTestCase extends Fil
Assert.assertArrayEquals(expecteds, actuals);
}
- public void testToCharset() {
- Assert.assertEquals(Charset.defaultCharset(),
Charsets.toCharset((String) null));
- Assert.assertEquals(Charset.defaultCharset(),
Charsets.toCharset((Charset) null));
- Assert.assertEquals(Charset.defaultCharset(),
Charsets.toCharset(Charset.defaultCharset()));
- Assert.assertEquals(Charset.forName("UTF-8"),
Charsets.toCharset(Charset.forName("UTF-8")));
- }
public void testInputStreamToByteArray() throws Exception {
FileInputStream fin = new FileInputStream(m_testFile);
try {