All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.vladislavgoltjajev.personalcode.locale.estonia.EstonianPersonalCodeValidator Maven / Gradle / Ivy

Go to download

Lightweight library for working with government-issued personal identification codes.

There is a newer version: 1.6
Show newest version
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