commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ggreg...@apache.org
Subject svn commit: r1307568 - in /commons/proper/io/trunk/src: main/java/org/apache/commons/io/Charsets.java test/java/org/apache/commons/io/CharsetsTestCase.java test/java/org/apache/commons/io/IOUtilsTestCase.java
Date Fri, 30 Mar 2012 18:20:24 GMT
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 {



Mime
View raw message