Skip to content

clytras/afm-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Greek TIN/AFM Validator and Generator

Linux Build Status Maven Central

Logo

Validate and generate Greek TIN (Tax Identification Number) / AFM (Αριθμός Φορολογικού Μητρώου). Generation function can create valid or invalid numbers including parameters for old format, individuals, legal entities and repet tolerance digits control.

Online demo and presentation

https://lytrax.io/blog/projects/greek-tin-validator-generator

Installation

Get Maven artifacts using Gradle (build.gradle):

repositories {
    mavenCentral()
}

dependencies {
    implementation 'io.lytrax:lytrax-afm:1.0.1'
}

Or go to project releases, download and use the latest jar package.

Usage

Import functions:

import io.lytrax.afm.ValidateAFM;
import io.lytrax.afm.GenerateAFM;

Validate a number:

ValidateAFM.Validate("090000045");
< true

ValidateAFM.Validate("123456789");
< false

Generate a valid number:

GenerateAFM generator = new GenerateAFM();

generator.reset().generateValid();
< "731385437"

Validate using ValidateAFMExtendedResult:

import io.lytrax.afm.ValidateAFM.ValidateAFMExtendedResult;

ValidateAFMExtendedResult result = ValidateAFM.ValidateExtended("ab1234");

result.toString();
< "ValidateAFMExtendedResult { Error()=\"length\", Valid()=false }"

Generate an invalid number:

GenerateAFM generator = new GenerateAFM();

generator.reset().generateValid();
< "853003357"

Generate a valid number using function parameters:

GenerateAFM generator = new GenerateAFM();

generator
    .reset()
    .forceFirstDigit(3)
    .repeatTolerance(1)
    .valid(true)
    .generate();
< "335151580"

generator
    .reset()
    .pre99(true)
    .generateValid();
< "070825250"

generator
    .reset()
    .legalEntity(true)
    .generateInvalid();
< "877577341"

CAUTION: Always use reset() before each number generation when changing parameters and reusing an object of the same instance, because every parameter is saved to private variables for repeated usage.

API

JavaDoc API Github page

Test

Clone this repository and then use an IDE like Netbeans to run tests or use Apache Ant™:

git clone https://github.com/clytras/afm-java.git && cd afm-java
ant -f Src/LytraxAFM test

Run Demo:

Open LytraxAFMDemo along with LytraxAFM Netbeans projects, add project package dependency jar of LytraxAFM to LytraxAFMDemo and run.

Changelog

See CHANGELOG

License

MIT License - see the LICENSE file for details

About

Greek AFM (TIN) Validator and Generator

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages