
com.github.vladislavgoltjajev.personalcode.locale.estonia.EstonianPersonalCodeValidator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-personal-code Show documentation
Show all versions of java-personal-code Show documentation
Lightweight library for working with government-issued personal identification codes.
package com.github.vladislavgoltjajev.personalcode.locale.estonia;
import com.github.vladislavgoltjajev.personalcode.exception.PersonalCodeException;
public final class EstonianPersonalCodeValidator {
/**
* Checks if the Estonian personal code is valid.
*
* @param personalCode Estonian personal code.
* @return Whether or not the Estonian personal code is valid.
*/
public boolean isValid(String personalCode) {
if (!isFormatValid(personalCode)) {
return false;
}
try {
new EstonianPersonalCodeParser().getDateOfBirth(personalCode, false);
} catch (PersonalCodeException e) {
return false;
}
int checksum = Character.getNumericValue(personalCode.charAt(personalCode.length() - 1));
return checksum == EstonianPersonalCodeUtils.getChecksum(personalCode);
}
/**
* Checks if the Estonian personal code conforms to the correct format.
* Does not check the personal code's integrity and the validity of the embedded data.
*
* @param personalCode Estonian personal code.
* @return Whether or not the Estonian personal code conforms to the correct format.
*/
public boolean isFormatValid(String personalCode) {
return personalCode != null
&& !personalCode.isBlank()
&& personalCode.matches(EstonianPersonalCodeConstants.ESTONIAN_PERSONAL_CODE_REGEX);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy