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);

Reply via email to