Repository: commons-io Updated Branches: refs/heads/master fa24ac8a6 -> 7379cbb2f
[IO-507] Add a ByteOrderParser class. Project: http://git-wip-us.apache.org/repos/asf/commons-io/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-io/commit/7379cbb2 Tree: http://git-wip-us.apache.org/repos/asf/commons-io/tree/7379cbb2 Diff: http://git-wip-us.apache.org/repos/asf/commons-io/diff/7379cbb2 Branch: refs/heads/master Commit: 7379cbb2fe7b69aa871127e64a51763c445a570e Parents: fa24ac8 Author: Benedikt Ritter <brit...@apache.org> Authored: Fri Oct 13 18:02:05 2017 -0600 Committer: ggregory <ggreg...@apache.org> Committed: Fri Oct 13 18:02:05 2017 -0600 ---------------------------------------------------------------------- src/changes/changes.xml | 2 +- .../org/apache/commons/io/ByteOrderParser.java | 67 ++++++++++++++++ .../org/apache/commons/io/ByteOrderUtils.java | 82 -------------------- .../apache/commons/io/ByteOrderParserTest.java | 44 +++++++++++ .../apache/commons/io/ByteOrderUtilsTest.java | 43 ---------- 5 files changed, 112 insertions(+), 126 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-io/blob/7379cbb2/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 6372483..bfc9c25 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -114,7 +114,7 @@ The <action> type attribute can be add,update,fix,remove. Add infinite circular input stream </action> <action issue="IO-507" dev="ggregory" type="add"> - Add a ByteOrderUtils class. + Add a ByteOrderParser class. </action> <action issue="IO-518" dev="jochen" type="add"> Add ObservableInputStream http://git-wip-us.apache.org/repos/asf/commons-io/blob/7379cbb2/src/main/java/org/apache/commons/io/ByteOrderParser.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/io/ByteOrderParser.java b/src/main/java/org/apache/commons/io/ByteOrderParser.java new file mode 100644 index 0000000..9e7d298 --- /dev/null +++ b/src/main/java/org/apache/commons/io/ByteOrderParser.java @@ -0,0 +1,67 @@ +/* + * 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.ByteOrder; +import java.util.Locale; + +/** + * Converts Strings to {@link ByteOrder} instances. + * + * @since 2.6 + */ +public final class ByteOrderParser { + + /** + * ByteOrderUtils is a static utility class, so prevent construction with a private constructor. + */ + private ByteOrderParser() { + } + + /** + * Parses the String argument as a {@link ByteOrder}, ignoring case. + * <p> + * Returns {@code ByteOrder.LITTLE_ENDIAN} if the given value is {@code "LITTLE_ENDIAN"}. + * </p> + * <p> + * Returns {@code ByteOrder.BIG_ENDIAN} if the given value is {@code "BIG_ENDIAN"}. + * </p> + * Examples: + * <ul> + * <li>{@code ByteOrderParser.parseByteOrder("LITTLE_ENDIAN")} returns {@code ByteOrder.LITTLE_ENDIAN}</li> + * <li>{@code ByteOrderParser.parseByteOrder("BIG_ENDIAN")} returns {@code ByteOrder.BIG_ENDIAN}</li> + * </ul> + * + * @param value + * the {@code String} containing the ByteOrder representation to be parsed + * @return the ByteOrder represented by the string argument + * @throws IllegalArgumentException + * if the {@code String} containing the ByteOrder representation to be parsed is unknown. + */ + public static ByteOrder parseByteOrder(final String value) { + if (ByteOrder.BIG_ENDIAN.toString().equals(value)) { + return ByteOrder.BIG_ENDIAN; + } + if (ByteOrder.LITTLE_ENDIAN.toString().equals(value)) { + return ByteOrder.LITTLE_ENDIAN; + } + throw new IllegalArgumentException("Unsupported byte order setting: " + value + ", expeced one of " + ByteOrder.LITTLE_ENDIAN + + ", " + ByteOrder.BIG_ENDIAN); + } + +} http://git-wip-us.apache.org/repos/asf/commons-io/blob/7379cbb2/src/main/java/org/apache/commons/io/ByteOrderUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/io/ByteOrderUtils.java b/src/main/java/org/apache/commons/io/ByteOrderUtils.java deleted file mode 100644 index 96ca446..0000000 --- a/src/main/java/org/apache/commons/io/ByteOrderUtils.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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.ByteOrder; -import java.util.Locale; - -/** - * Converts Strings to {@link ByteOrder} instances. - * - * @since 2.6 - */ -public final class ByteOrderUtils { - - private static final Locale ComparisonLocale = Locale.ROOT; - - /** - * Big endian. - */ - public static final String BIG_ENDIAN = "Big"; - - /** - * Little endian. - */ - public static final String LITTLE_ENDIAN = "Little"; - - /** - * ByteOrderUtils is a static utility class, so prevent construction with a private constructor. - */ - private ByteOrderUtils() { - } - - /** - * Parses the String argument as a {@link ByteOrder}, ignoring case. - * <p> - * Returns {@code ByteOrder.LITTLE_ENDIAN} if the given value is {@code "little"} or {@code "LITTLE_ENDIAN"}. - * </p> - * <p> - * Returns {@code ByteOrder.BIG_ENDIAN} if the given value is {@code "big"} or {@code "BIG_ENDIAN"}. - * </p> - * Examples: - * <ul> - * <li>{@code ByteOrderUtils.parseByteOrder("little")} returns {@code ByteOrder.LITTLE_ENDIAN}</li> - * <li>{@code ByteOrderUtils.parseByteOrder("big")} returns {@code ByteOrder.BIG_ENDIAN}</li> - * </ul> - * - * @param value - * the {@code String} containing the ByteOrder representation to be parsed - * @return the ByteOrder represented by the string argument - * @throws IllegalArgumentException - * if the {@code String} containing the ByteOrder representation to be parsed is unknown. - */ - public static ByteOrder parseByteOrder(final String value) { - final String valueUp = value.toUpperCase(ComparisonLocale); - final String bigEndianUp = BIG_ENDIAN.toUpperCase(ComparisonLocale); - final String littleEndianUp = LITTLE_ENDIAN.toUpperCase(ComparisonLocale); - if (bigEndianUp.equals(valueUp) || ByteOrder.BIG_ENDIAN.toString().equals(valueUp)) { - return ByteOrder.BIG_ENDIAN; - } - if (littleEndianUp.equals(valueUp) || ByteOrder.LITTLE_ENDIAN.toString().equals(valueUp)) { - return ByteOrder.LITTLE_ENDIAN; - } - throw new IllegalArgumentException("Unsupported byte order setting: " + value + ", expeced one of " + ByteOrder.LITTLE_ENDIAN + ", " + - LITTLE_ENDIAN + ", " + ByteOrder.BIG_ENDIAN + ", " + bigEndianUp); - } - -} http://git-wip-us.apache.org/repos/asf/commons-io/blob/7379cbb2/src/test/java/org/apache/commons/io/ByteOrderParserTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/io/ByteOrderParserTest.java b/src/test/java/org/apache/commons/io/ByteOrderParserTest.java new file mode 100644 index 0000000..a3310d4 --- /dev/null +++ b/src/test/java/org/apache/commons/io/ByteOrderParserTest.java @@ -0,0 +1,44 @@ +/* + * 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.ByteOrder; + +import org.junit.Assert; +import org.junit.Test; + +public class ByteOrderParserTest { + + private ByteOrder parseByteOrder(final String value) { + return ByteOrderParser.parseByteOrder(value); + } + + @Test + public void testParseBig() { + Assert.assertEquals(ByteOrder.BIG_ENDIAN, parseByteOrder("BIG_ENDIAN")); + } + + @Test + public void testParseLittle() { + Assert.assertEquals(ByteOrder.LITTLE_ENDIAN, parseByteOrder("LITTLE_ENDIAN")); + } + + @Test(expected = IllegalArgumentException.class) + public void testThrowsException() throws Exception { + parseByteOrder("some value"); + } +} http://git-wip-us.apache.org/repos/asf/commons-io/blob/7379cbb2/src/test/java/org/apache/commons/io/ByteOrderUtilsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/io/ByteOrderUtilsTest.java b/src/test/java/org/apache/commons/io/ByteOrderUtilsTest.java deleted file mode 100644 index 2affec4..0000000 --- a/src/test/java/org/apache/commons/io/ByteOrderUtilsTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.ByteOrder; - -import org.junit.Assert; -import org.junit.Test; - -public class ByteOrderUtilsTest { - - private ByteOrder parseByteOrder(final String value) { - return ByteOrderUtils.parseByteOrder(value); - } - - @Test - public void testParseBig() { - Assert.assertEquals(ByteOrder.BIG_ENDIAN, parseByteOrder("big")); - Assert.assertEquals(ByteOrder.BIG_ENDIAN, parseByteOrder("Big")); - Assert.assertEquals(ByteOrder.BIG_ENDIAN, parseByteOrder("BIG")); - } - - @Test - public void testParseLittle() { - Assert.assertEquals(ByteOrder.LITTLE_ENDIAN, parseByteOrder("little")); - Assert.assertEquals(ByteOrder.LITTLE_ENDIAN, parseByteOrder("Little")); - Assert.assertEquals(ByteOrder.LITTLE_ENDIAN, parseByteOrder("LITTLE")); - } -}