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
commit 8eb7f63bbd4c657ffb76a54e832d6e65bd11ec74 Author: Gary Gregory <[email protected]> AuthorDate: Sun May 5 15:18:53 2024 -0400 Refactor internals for duplicate code --- .../apache/commons/validator/GenericValidator.java | 6 ++-- .../routines/AbstractCalendarValidator.java | 7 +++-- .../routines/AbstractFormatValidator.java | 2 +- .../routines/AbstractNumberValidator.java | 7 +++-- .../validator/routines/AbstractValidator.java | 32 ---------------------- .../commons/validator/routines/CodeValidator.java | 5 ++-- .../validator/routines/CreditCardValidator.java | 7 +++-- .../validator/routines/InetAddressValidator.java | 8 ++++-- .../commons/validator/routines/UrlValidator.java | 8 ++++-- .../routines/checkdigit/AbstractCheckDigit.java | 12 +------- .../routines/checkdigit/ISBNCheckDigit.java | 4 ++- .../routines/checkdigit/ModulusCheckDigit.java | 6 ++-- .../routines/checkdigit/ModulusTenCheckDigit.java | 3 +- .../routines/checkdigit/VerhoeffCheckDigit.java | 6 ++-- 14 files changed, 45 insertions(+), 68 deletions(-) diff --git a/src/main/java/org/apache/commons/validator/GenericValidator.java b/src/main/java/org/apache/commons/validator/GenericValidator.java index 6589bfef..814537fe 100644 --- a/src/main/java/org/apache/commons/validator/GenericValidator.java +++ b/src/main/java/org/apache/commons/validator/GenericValidator.java @@ -40,8 +40,7 @@ public class GenericValidator implements Serializable { /** * CreditCardValidator used in wrapper method. */ - private static final CreditCardValidator CREDIT_CARD_VALIDATOR = - new CreditCardValidator(); + private static final CreditCardValidator CREDIT_CARD_VALIDATOR = new CreditCardValidator(); /** * Calculate an adjustment amount for line endings. @@ -74,7 +73,8 @@ public class GenericValidator implements Serializable { * @return true if blank or null. */ public static boolean isBlankOrNull(final String value) { - return value == null || value.trim().isEmpty(); + // Don't trim is already empty. + return value == null || value.isEmpty() || value.trim().isEmpty(); } /** diff --git a/src/main/java/org/apache/commons/validator/routines/AbstractCalendarValidator.java b/src/main/java/org/apache/commons/validator/routines/AbstractCalendarValidator.java index ee1404d8..cc0c9ea4 100644 --- a/src/main/java/org/apache/commons/validator/routines/AbstractCalendarValidator.java +++ b/src/main/java/org/apache/commons/validator/routines/AbstractCalendarValidator.java @@ -24,6 +24,8 @@ import java.util.Calendar; import java.util.Locale; import java.util.TimeZone; +import org.apache.commons.validator.GenericValidator; + /** * <p>Abstract class for Date/Time/Calendar validation.</p> * @@ -367,7 +369,7 @@ public abstract class AbstractCalendarValidator extends AbstractFormatValidator @Override protected Format getFormat(final String pattern, final Locale locale) { DateFormat formatter; - final boolean usePattern = !isEmpty(pattern); + final boolean usePattern = !GenericValidator.isBlankOrNull(pattern); if (!usePattern) { formatter = (DateFormat) getFormat(locale); } else if (locale == null) { @@ -406,7 +408,8 @@ public abstract class AbstractCalendarValidator extends AbstractFormatValidator */ protected Object parse(String value, final String pattern, final Locale locale, final TimeZone timeZone) { value = value == null ? null : value.trim(); - if (isEmpty(value)) { + final String value1 = value; + if (GenericValidator.isBlankOrNull(value1)) { return null; } final DateFormat formatter = (DateFormat) getFormat(pattern, locale); diff --git a/src/main/java/org/apache/commons/validator/routines/AbstractFormatValidator.java b/src/main/java/org/apache/commons/validator/routines/AbstractFormatValidator.java index 62a98584..661c90f2 100644 --- a/src/main/java/org/apache/commons/validator/routines/AbstractFormatValidator.java +++ b/src/main/java/org/apache/commons/validator/routines/AbstractFormatValidator.java @@ -29,7 +29,7 @@ import java.util.Locale; * * @since 1.3.0 */ -public abstract class AbstractFormatValidator extends AbstractValidator implements Serializable { +public abstract class AbstractFormatValidator implements Serializable { private static final long serialVersionUID = -4690687565200568258L; diff --git a/src/main/java/org/apache/commons/validator/routines/AbstractNumberValidator.java b/src/main/java/org/apache/commons/validator/routines/AbstractNumberValidator.java index 7d141d6f..f50cad07 100644 --- a/src/main/java/org/apache/commons/validator/routines/AbstractNumberValidator.java +++ b/src/main/java/org/apache/commons/validator/routines/AbstractNumberValidator.java @@ -22,6 +22,8 @@ import java.text.Format; import java.text.NumberFormat; import java.util.Locale; +import org.apache.commons.validator.GenericValidator; + /** * <p>Abstract class for Number Validation.</p> * @@ -154,7 +156,7 @@ public abstract class AbstractNumberValidator extends AbstractFormatValidator { protected Format getFormat(final String pattern, final Locale locale) { NumberFormat formatter; - final boolean usePattern = !isEmpty(pattern); + final boolean usePattern = !GenericValidator.isBlankOrNull(pattern); if (!usePattern) { formatter = (NumberFormat) getFormat(locale); } else if (locale == null) { @@ -260,7 +262,8 @@ public abstract class AbstractNumberValidator extends AbstractFormatValidator { */ protected Object parse(String value, final String pattern, final Locale locale) { value = value == null ? null : value.trim(); - if (isEmpty(value)) { + final String value1 = value; + if (GenericValidator.isBlankOrNull(value1)) { return null; } final Format formatter = getFormat(pattern, locale); diff --git a/src/main/java/org/apache/commons/validator/routines/AbstractValidator.java b/src/main/java/org/apache/commons/validator/routines/AbstractValidator.java deleted file mode 100644 index d2edf1c6..00000000 --- a/src/main/java/org/apache/commons/validator/routines/AbstractValidator.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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; - -abstract class AbstractValidator { - - /** - * 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/CodeValidator.java b/src/main/java/org/apache/commons/validator/routines/CodeValidator.java index 6b7e83d2..82bc35e1 100644 --- a/src/main/java/org/apache/commons/validator/routines/CodeValidator.java +++ b/src/main/java/org/apache/commons/validator/routines/CodeValidator.java @@ -18,6 +18,7 @@ package org.apache.commons.validator.routines; import java.io.Serializable; +import org.apache.commons.validator.GenericValidator; import org.apache.commons.validator.routines.checkdigit.CheckDigit; /** @@ -66,7 +67,7 @@ import org.apache.commons.validator.routines.checkdigit.CheckDigit; * * @since 1.4 */ -public final class CodeValidator extends AbstractValidator implements Serializable { +public final class CodeValidator implements Serializable { private static final long serialVersionUID = 446960910870938233L; @@ -161,7 +162,7 @@ public final class CodeValidator extends AbstractValidator implements Serializab */ public CodeValidator(final String regex, final int minLength, final int maxLength, final CheckDigit checkdigit) { - if (!isEmpty(regex)) { + if (!GenericValidator.isBlankOrNull(regex)) { this.regexValidator = new RegexValidator(regex); } else { this.regexValidator = null; diff --git a/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java b/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java index 8faa68a2..bbe1e31e 100644 --- a/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java +++ b/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.apache.commons.validator.GenericValidator; import org.apache.commons.validator.routines.checkdigit.CheckDigit; import org.apache.commons.validator.routines.checkdigit.LuhnCheckDigit; @@ -80,7 +81,7 @@ import org.apache.commons.validator.routines.checkdigit.LuhnCheckDigit; * * @since 1.4 */ -public class CreditCardValidator extends AbstractValidator implements Serializable { +public class CreditCardValidator implements Serializable { /** * Class that represents a credit card range. @@ -490,7 +491,7 @@ public class CreditCardValidator extends AbstractValidator implements Serializab * @return Whether the card number is valid. */ public boolean isValid(final String card) { - if (isEmpty(card)) { + if (GenericValidator.isBlankOrNull(card)) { return false; } for (final CodeValidator cardType : cardTypes) { @@ -508,7 +509,7 @@ public class CreditCardValidator extends AbstractValidator implements Serializab * if invalid. */ public Object validate(final String card) { - if (isEmpty(card)) { + if (GenericValidator.isBlankOrNull(card)) { return null; } Object result = null; diff --git a/src/main/java/org/apache/commons/validator/routines/InetAddressValidator.java b/src/main/java/org/apache/commons/validator/routines/InetAddressValidator.java index d81a992a..05f27788 100644 --- a/src/main/java/org/apache/commons/validator/routines/InetAddressValidator.java +++ b/src/main/java/org/apache/commons/validator/routines/InetAddressValidator.java @@ -23,6 +23,8 @@ import java.util.Arrays; import java.util.List; import java.util.regex.Pattern; +import org.apache.commons.validator.GenericValidator; + /** * <p><b>InetAddress</b> validation and conversion routines (<code>java.net.InetAddress</code>).</p> * @@ -34,7 +36,7 @@ import java.util.regex.Pattern; * * @since 1.4 */ -public class InetAddressValidator extends AbstractValidator implements Serializable { +public class InetAddressValidator implements Serializable { private static final int MAX_BYTE = 128; @@ -96,7 +98,7 @@ public class InetAddressValidator extends AbstractValidator implements Serializa } // verify that address subgroups are legal for (final String ipSegment : groups) { - if (isEmpty(ipSegment)) { + if (GenericValidator.isBlankOrNull(ipSegment)) { return false; } int iIpSegment = 0; @@ -175,7 +177,7 @@ public class InetAddressValidator extends AbstractValidator implements Serializa int emptyOctets = 0; // consecutive empty chunks for (int index = 0; index < octets.length; index++) { final String octet = octets[index]; - if (isEmpty(octet)) { + if (GenericValidator.isBlankOrNull(octet)) { emptyOctets++; if (emptyOctets > 1) { return false; diff --git a/src/main/java/org/apache/commons/validator/routines/UrlValidator.java b/src/main/java/org/apache/commons/validator/routines/UrlValidator.java index 0ea68543..03c12c6f 100644 --- a/src/main/java/org/apache/commons/validator/routines/UrlValidator.java +++ b/src/main/java/org/apache/commons/validator/routines/UrlValidator.java @@ -26,6 +26,8 @@ import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.commons.validator.GenericValidator; + /** * <p><b>URL Validation</b> routines.</p> * Behavior of validation is modified by passing in options: @@ -73,7 +75,7 @@ import java.util.regex.Pattern; * * @since 1.4 */ -public class UrlValidator extends AbstractValidator implements Serializable { +public class UrlValidator implements Serializable { private static final long serialVersionUID = 7557161713937335013L; @@ -372,7 +374,7 @@ public class UrlValidator extends AbstractValidator implements Serializable { } final String authority = uri.getRawAuthority(); - if ("file".equals(scheme) && isEmpty(authority)) { // Special case - file: allows an empty authority + if ("file".equals(scheme) && GenericValidator.isBlankOrNull(authority)) { // Special case - file: allows an empty authority return true; // this is a local file - nothing more to do here } if ("file".equals(scheme) && authority != null && authority.contains(":")) { @@ -445,7 +447,7 @@ public class UrlValidator extends AbstractValidator implements Serializable { } } final String port = authorityMatcher.group(PARSE_AUTHORITY_PORT); - if (!isEmpty(port)) { + if (!GenericValidator.isBlankOrNull(port)) { try { final int iPort = Integer.parseInt(port); if (iPort < 0 || iPort > MAX_UNSIGNED_16_BIT_INT) { 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 index 2e5b65ec..da69e983 100644 --- a/src/main/java/org/apache/commons/validator/routines/checkdigit/AbstractCheckDigit.java +++ b/src/main/java/org/apache/commons/validator/routines/checkdigit/AbstractCheckDigit.java @@ -21,15 +21,5 @@ 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(); - } - + // Empty } 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 d77ea94c..352dba4b 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 @@ -18,6 +18,8 @@ package org.apache.commons.validator.routines.checkdigit; import java.io.Serializable; +import org.apache.commons.validator.GenericValidator; + /** * Combined <b>ISBN-10</b> / <b>ISBN-13</b> Check Digit calculation/validation. * <p> @@ -64,7 +66,7 @@ public final class ISBNCheckDigit extends AbstractCheckDigit implements Serializ */ @Override public String calculate(final String code) throws CheckDigitException { - if (isEmpty(code)) { + if (GenericValidator.isBlankOrNull(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 22a95946..90df2544 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 @@ -18,6 +18,8 @@ package org.apache.commons.validator.routines.checkdigit; import java.io.Serializable; +import org.apache.commons.validator.GenericValidator; + /** * Abstract <b>Modulus</b> Check digit calculation/validation. * <p> @@ -83,7 +85,7 @@ public abstract class ModulusCheckDigit extends AbstractCheckDigit implements Se */ @Override public String calculate(final String code) throws CheckDigitException { - if (isEmpty(code)) { + if (GenericValidator.isBlankOrNull(code)) { throw new CheckDigitException("Code is missing"); } final int modulusResult = calculateModulus(code, false); @@ -133,7 +135,7 @@ public abstract class ModulusCheckDigit extends AbstractCheckDigit implements Se */ @Override public boolean isValid(final String code) { - if (isEmpty(code)) { + if (GenericValidator.isBlankOrNull(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 958ae3ff..3ca056cd 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 @@ -18,6 +18,7 @@ package org.apache.commons.validator.routines.checkdigit; import java.util.Arrays; +import org.apache.commons.validator.GenericValidator; import org.apache.commons.validator.routines.CodeValidator; /** @@ -182,7 +183,7 @@ public final class ModulusTenCheckDigit extends ModulusCheckDigit { */ @Override public boolean isValid(final String code) { - if (isEmpty(code)) { + if (GenericValidator.isBlankOrNull(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 580813da..4df215b9 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 @@ -18,6 +18,8 @@ package org.apache.commons.validator.routines.checkdigit; import java.io.Serializable; +import org.apache.commons.validator.GenericValidator; + /** * <b>Verhoeff</b> (Dihedral) Check Digit calculation/validation. * <p> @@ -74,7 +76,7 @@ public final class VerhoeffCheckDigit extends AbstractCheckDigit implements Seri */ @Override public String calculate(final String code) throws CheckDigitException { - if (isEmpty(code)) { + if (GenericValidator.isBlankOrNull(code)) { throw new CheckDigitException("Code is missing"); } final int checksum = calculateChecksum(code, false); @@ -113,7 +115,7 @@ public final class VerhoeffCheckDigit extends AbstractCheckDigit implements Seri */ @Override public boolean isValid(final String code) { - if (isEmpty(code)) { + if (GenericValidator.isBlankOrNull(code)) { return false; } try {
