This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-validator.git


The following commit(s) were added to refs/heads/master by this push:
     new a31edaa6 Refactor internals for duplicate code
a31edaa6 is described below

commit a31edaa60e42239513cf6db8180d2934fe566e88
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sun May 5 10:13:31 2024 -0400

    Refactor internals for duplicate code
---
 .../routines/checkdigit/AbstractCheckDigit.java    | 35 ++++++++++++++++++++++
 .../routines/checkdigit/IBANCheckDigit.java        |  2 +-
 .../routines/checkdigit/ISBNCheckDigit.java        |  4 +--
 .../routines/checkdigit/ModulusCheckDigit.java     |  6 ++--
 .../routines/checkdigit/ModulusTenCheckDigit.java  |  2 +-
 .../routines/checkdigit/VerhoeffCheckDigit.java    |  6 ++--
 6 files changed, 45 insertions(+), 10 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/AbstractCheckDigit.java
 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/AbstractCheckDigit.java
new file mode 100644
index 00000000..2e5b65ec
--- /dev/null
+++ 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/AbstractCheckDigit.java
@@ -0,0 +1,35 @@
+/*
+ * 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.validator.routines.checkdigit;
+
+/**
+ * Abstracts CheckDigit.
+ */
+abstract class AbstractCheckDigit implements CheckDigit {
+
+    /**
+     * Tests whether the given String is null or empty.
+     *
+     * @param code the string to test.
+     * @return whether the given String is null or empty.
+     */
+    boolean isEmpty(final String code) {
+        return code == null || code.isEmpty();
+    }
+
+}
diff --git 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java
 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java
index 073c61d1..a09494d8 100644
--- 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java
+++ 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/IBANCheckDigit.java
@@ -39,7 +39,7 @@ import java.io.Serializable;
  *
  * @since 1.4
  */
-public final class IBANCheckDigit implements CheckDigit, Serializable {
+public final class IBANCheckDigit extends AbstractCheckDigit implements 
Serializable {
 
     private static final int MIN_CODE_LEN = 5;
 
diff --git 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/ISBNCheckDigit.java
 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/ISBNCheckDigit.java
index 4bf6dbe4..d77ea94c 100644
--- 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/ISBNCheckDigit.java
+++ 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/ISBNCheckDigit.java
@@ -33,7 +33,7 @@ import java.io.Serializable;
  *
  * @since 1.4
  */
-public final class ISBNCheckDigit implements CheckDigit, Serializable {
+public final class ISBNCheckDigit extends AbstractCheckDigit implements 
Serializable {
 
     private static final long serialVersionUID = 1391849166205184558L;
 
@@ -64,7 +64,7 @@ public final class ISBNCheckDigit implements CheckDigit, 
Serializable {
      */
     @Override
     public String calculate(final String code) throws CheckDigitException {
-        if (code == null || code.isEmpty()) {
+        if (isEmpty(code)) {
             throw new CheckDigitException("ISBN Code is missing");
         }
         if (code.length() == 9) { // CHECKSTYLE IGNORE MagicNumber
diff --git 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/ModulusCheckDigit.java
 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/ModulusCheckDigit.java
index ba994ca6..5480b3c0 100644
--- 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/ModulusCheckDigit.java
+++ 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/ModulusCheckDigit.java
@@ -30,7 +30,7 @@ import java.io.Serializable;
  *
  * @since 1.4
  */
-public abstract class ModulusCheckDigit implements CheckDigit, Serializable {
+public abstract class ModulusCheckDigit extends AbstractCheckDigit implements 
Serializable {
 
     static final int MODULUS_10 = 10;
     static final int MODULUS_11 = 11;
@@ -83,7 +83,7 @@ public abstract class ModulusCheckDigit implements 
CheckDigit, Serializable {
      */
     @Override
     public String calculate(final String code) throws CheckDigitException {
-        if (code == null || code.isEmpty()) {
+        if (isEmpty(code)) {
             throw new CheckDigitException("Code is missing");
         }
         final int modulusResult = calculateModulus(code, false);
@@ -133,7 +133,7 @@ public abstract class ModulusCheckDigit implements 
CheckDigit, Serializable {
      */
     @Override
     public boolean isValid(final String code) {
-        if (code == null || code.isEmpty()) {
+        if (isEmpty(code)) {
             return false;
         }
         try {
diff --git 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/ModulusTenCheckDigit.java
 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/ModulusTenCheckDigit.java
index fea5faa6..38b60f9c 100644
--- 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/ModulusTenCheckDigit.java
+++ 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/ModulusTenCheckDigit.java
@@ -182,7 +182,7 @@ public final class ModulusTenCheckDigit extends 
ModulusCheckDigit {
      */
     @Override
     public boolean isValid(final String code) {
-        if (code == null || code.isEmpty()) {
+        if (isEmpty(code)) {
             return false;
         }
         if (!Character.isDigit(code.charAt(code.length() - 1))) {
diff --git 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/VerhoeffCheckDigit.java
 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/VerhoeffCheckDigit.java
index 4e8e0bef..580813da 100644
--- 
a/src/main/java/org/apache/commons/validator/routines/checkdigit/VerhoeffCheckDigit.java
+++ 
b/src/main/java/org/apache/commons/validator/routines/checkdigit/VerhoeffCheckDigit.java
@@ -30,7 +30,7 @@ import java.io.Serializable;
  *
  * @since 1.4
  */
-public final class VerhoeffCheckDigit implements CheckDigit, Serializable {
+public final class VerhoeffCheckDigit extends AbstractCheckDigit implements 
Serializable {
 
     private static final long serialVersionUID = 4138993995483695178L;
 
@@ -74,7 +74,7 @@ public final class VerhoeffCheckDigit implements CheckDigit, 
Serializable {
      */
     @Override
     public String calculate(final String code) throws CheckDigitException {
-        if (code == null || code.isEmpty()) {
+        if (isEmpty(code)) {
             throw new CheckDigitException("Code is missing");
         }
         final int checksum = calculateChecksum(code, false);
@@ -113,7 +113,7 @@ public final class VerhoeffCheckDigit implements 
CheckDigit, Serializable {
      */
     @Override
     public boolean isValid(final String code) {
-        if (code == null || code.isEmpty()) {
+        if (isEmpty(code)) {
             return false;
         }
         try {

Reply via email to