This is an automated email from the ASF dual-hosted git repository. aherbert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
The following commit(s) were added to refs/heads/master by this push: new f5023f32 Change MessageFormat to String.format f5023f32 is described below commit f5023f3201125a88e52902cd61a117ad2a76ac3b Author: aherbert <aherb...@apache.org> AuthorDate: Fri Aug 25 14:08:12 2023 +0100 Change MessageFormat to String.format This change consolidates all formatting in custom exception classes to use one JDK API. --- .../numbers/combinatorics/Combinations.java | 4 +-- .../combinatorics/CombinatoricsException.java | 16 ++++++------ .../commons/numbers/core/ArithmeticUtils.java | 29 +++++++++++----------- .../org/apache/commons/numbers/primes/Primes.java | 7 +++--- .../apache/commons/numbers/primes/PrimesTest.java | 9 +++---- 5 files changed, 30 insertions(+), 35 deletions(-) diff --git a/commons-numbers-combinatorics/src/main/java/org/apache/commons/numbers/combinatorics/Combinations.java b/commons-numbers-combinatorics/src/main/java/org/apache/commons/numbers/combinatorics/Combinations.java index 6d191608..959d2df4 100644 --- a/commons-numbers-combinatorics/src/main/java/org/apache/commons/numbers/combinatorics/Combinations.java +++ b/commons-numbers-combinatorics/src/main/java/org/apache/commons/numbers/combinatorics/Combinations.java @@ -329,10 +329,10 @@ public final class Combinations implements Iterable<int[]> { public int compare(int[] c1, int[] c2) { if (c1.length != k) { - throw new CombinatoricsException(CombinatoricsException.MISMATCH, c1.length, k); + throw new CombinatoricsException(CombinatoricsException.MISMATCH, k, c1.length); } if (c2.length != k) { - throw new CombinatoricsException(CombinatoricsException.MISMATCH, c2.length, k); + throw new CombinatoricsException(CombinatoricsException.MISMATCH, k, c2.length); } // Method "lexNorm" works with ordered arrays. diff --git a/commons-numbers-combinatorics/src/main/java/org/apache/commons/numbers/combinatorics/CombinatoricsException.java b/commons-numbers-combinatorics/src/main/java/org/apache/commons/numbers/combinatorics/CombinatoricsException.java index 2543254c..8adbcdde 100644 --- a/commons-numbers-combinatorics/src/main/java/org/apache/commons/numbers/combinatorics/CombinatoricsException.java +++ b/commons-numbers-combinatorics/src/main/java/org/apache/commons/numbers/combinatorics/CombinatoricsException.java @@ -16,31 +16,29 @@ */ package org.apache.commons.numbers.combinatorics; -import java.text.MessageFormat; - /** * Package private exception class with constants for frequently used messages. */ class CombinatoricsException extends IllegalArgumentException { /** Error message for "out of range" condition. */ - static final String OUT_OF_RANGE = "Number {0} is out of range [{1}, {2}]"; + static final String OUT_OF_RANGE = "Number %s is out of range [%s, %s]"; /** Error message for "out of range" condition. */ - static final String NEGATIVE = "Number {0} is negative"; + static final String NEGATIVE = "Number %s is negative"; /** Error message for "mismatch" condition. */ - static final String MISMATCH = "Expected {1} but was {0}"; + static final String MISMATCH = "Expected %s but was %s"; /** Serializable version identifier. */ private static final long serialVersionUID = 20170515L; /** * Create an exception where the message is constructed by applying - * the {@code format()} method from {@code java.text.MessageFormat}. + * {@link String#format(String, Object...)}. * - * @param message Exception message with replaceable parameters. - * @param formatArguments 1rguments for formatting the message. + * @param message Exception message format string + * @param formatArguments Arguments for formatting the message */ CombinatoricsException(String message, Object... formatArguments) { - super(MessageFormat.format(message, formatArguments)); + super(String.format(message, formatArguments)); } } diff --git a/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/ArithmeticUtils.java b/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/ArithmeticUtils.java index d3d51fff..d34d7e2b 100644 --- a/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/ArithmeticUtils.java +++ b/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/ArithmeticUtils.java @@ -17,7 +17,6 @@ package org.apache.commons.numbers.core; import java.math.BigInteger; -import java.text.MessageFormat; /** * Some useful, arithmetics related, additions to the built-in functions in @@ -27,7 +26,7 @@ import java.text.MessageFormat; public final class ArithmeticUtils { /** Overflow gcd exception message for 2^63. */ - private static final String OVERFLOW_GCD_MESSAGE_2_POWER_63 = "overflow: gcd({0}, {1}) is 2^63"; + private static final String OVERFLOW_GCD_MESSAGE_2_POWER_63 = "overflow: gcd(%d, %d) is 2^63"; /** Negative exponent exception message part 1. */ private static final String NEGATIVE_EXPONENT_1 = "negative exponent ({"; @@ -106,8 +105,8 @@ public final class ArithmeticUtils { negatedGcd = a << shift; } if (negatedGcd == Integer.MIN_VALUE) { - throw new NumbersArithmeticException("overflow: gcd({0}, {1}) is 2^31", - p, q); + throw new NumbersArithmeticException("overflow: gcd(%d, %d) is 2^31", + p, q); } return -negatedGcd; } @@ -148,7 +147,7 @@ public final class ArithmeticUtils { if (u == 0 || v == 0) { if (u == Long.MIN_VALUE || v == Long.MIN_VALUE) { throw new NumbersArithmeticException(OVERFLOW_GCD_MESSAGE_2_POWER_63, - p, q); + p, q); } return Math.abs(u) + Math.abs(v); } @@ -173,7 +172,7 @@ public final class ArithmeticUtils { } if (k == 63) { throw new NumbersArithmeticException(OVERFLOW_GCD_MESSAGE_2_POWER_63, - p, q); + p, q); } // B2. Initialize: u and v have been divided by 2^k and at least // one is odd. @@ -227,8 +226,8 @@ public final class ArithmeticUtils { } final int lcm = Math.abs(Math.multiplyExact(a / gcd(a, b), b)); if (lcm == Integer.MIN_VALUE) { - throw new NumbersArithmeticException("overflow: lcm({0}, {1}) is 2^31", - a, b); + throw new NumbersArithmeticException("overflow: lcm(%d, %d) is 2^31", + a, b); } return lcm; } @@ -260,8 +259,8 @@ public final class ArithmeticUtils { } final long lcm = Math.abs(Math.multiplyExact(a / gcd(a, b), b)); if (lcm == Long.MIN_VALUE) { - throw new NumbersArithmeticException("overflow: lcm({0}, {1}) is 2^63", - a, b); + throw new NumbersArithmeticException("overflow: lcm(%d, %d) is 2^63", + a, b); } return lcm; } @@ -597,14 +596,14 @@ public final class ArithmeticUtils { private static final long serialVersionUID = 20180130L; /** - * Constructor with a specific message. + * Create an exception where the message is constructed by applying + * {@link String#format(String, Object...)}. * - * @param message Message pattern providing the specific context of - * the error. - * @param args Arguments. + * @param message Exception message format string + * @param args Arguments for formatting the message */ NumbersArithmeticException(String message, Object... args) { - super(MessageFormat.format(message, args)); + super(String.format(message, args)); } } } diff --git a/commons-numbers-primes/src/main/java/org/apache/commons/numbers/primes/Primes.java b/commons-numbers-primes/src/main/java/org/apache/commons/numbers/primes/Primes.java index 860678d1..9197aecf 100644 --- a/commons-numbers-primes/src/main/java/org/apache/commons/numbers/primes/Primes.java +++ b/commons-numbers-primes/src/main/java/org/apache/commons/numbers/primes/Primes.java @@ -16,7 +16,6 @@ */ package org.apache.commons.numbers.primes; -import java.text.MessageFormat; import java.util.List; /** @@ -29,7 +28,7 @@ import java.util.List; */ public final class Primes { /** Exception message format when an argument is too small. */ - static final String NUMBER_TOO_SMALL = "{0} is smaller than the minimum ({1})"; + static final String NUMBER_TOO_SMALL = "%d is smaller than the minimum (%d)"; /** * Utility class. @@ -68,7 +67,7 @@ public final class Primes { */ public static int nextPrime(int n) { if (n < 0) { - throw new IllegalArgumentException(MessageFormat.format(NUMBER_TOO_SMALL, n, 0)); + throw new IllegalArgumentException(String.format(NUMBER_TOO_SMALL, n, 0)); } if (n <= 2) { return 2; @@ -108,7 +107,7 @@ public final class Primes { */ public static List<Integer> primeFactors(int n) { if (n < 2) { - throw new IllegalArgumentException(MessageFormat.format(NUMBER_TOO_SMALL, n, 2)); + throw new IllegalArgumentException(String.format(NUMBER_TOO_SMALL, n, 2)); } return SmallPrimes.trialDivision(n); } diff --git a/commons-numbers-primes/src/test/java/org/apache/commons/numbers/primes/PrimesTest.java b/commons-numbers-primes/src/test/java/org/apache/commons/numbers/primes/PrimesTest.java index d1140faf..5e9fbb32 100644 --- a/commons-numbers-primes/src/test/java/org/apache/commons/numbers/primes/PrimesTest.java +++ b/commons-numbers-primes/src/test/java/org/apache/commons/numbers/primes/PrimesTest.java @@ -16,7 +16,6 @@ */ package org.apache.commons.numbers.primes; -import java.text.MessageFormat; import java.util.HashSet; import java.util.List; @@ -108,9 +107,9 @@ class PrimesTest { Assertions.assertEquals(Integer.MAX_VALUE, Primes.nextPrime(Integer.MAX_VALUE - 1)); Assertions.assertEquals(Integer.MAX_VALUE, Primes.nextPrime(Integer.MAX_VALUE)); - assertNextPrimeException(Integer.MIN_VALUE, MessageFormat.format(Primes.NUMBER_TOO_SMALL, Integer.MIN_VALUE, 0)); - assertNextPrimeException(-1, MessageFormat.format(Primes.NUMBER_TOO_SMALL, -1, 0)); - assertNextPrimeException(-13, MessageFormat.format(Primes.NUMBER_TOO_SMALL, -13, 0)); + assertNextPrimeException(Integer.MIN_VALUE, String.format(Primes.NUMBER_TOO_SMALL, Integer.MIN_VALUE, 0)); + assertNextPrimeException(-1, String.format(Primes.NUMBER_TOO_SMALL, -1, 0)); + assertNextPrimeException(-13, String.format(Primes.NUMBER_TOO_SMALL, -13, 0)); } @Test @@ -153,7 +152,7 @@ class PrimesTest { @Test void testPrimeFactors() { for (int i : BELOW_2) { - assertPrimeFactorsException(i, MessageFormat.format(Primes.NUMBER_TOO_SMALL, i, 2)); + assertPrimeFactorsException(i, String.format(Primes.NUMBER_TOO_SMALL, i, 2)); } for (int i : NOT_PRIMES) { List<Integer> factors = Primes.primeFactors(i);