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 {