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 <[email protected]>
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 {