io.github.guvense:validator

Object Validator

License

License

GroupId

GroupId

io.github.guvense
ArtifactId

ArtifactId

validator
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

io.github.guvense:validator
Object Validator
Project URL

Project URL

https://github.com/guvense/Validator
Source Code Management

Source Code Management

https://github.com/guvense/Validator

Download validator

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.guvense/validator/ -->
<dependency>
    <groupId>io.github.guvense</groupId>
    <artifactId>validator</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/io.github.guvense/validator/
implementation 'io.github.guvense:validator:1.0.0'
// https://jarcasting.com/artifacts/io.github.guvense/validator/
implementation ("io.github.guvense:validator:1.0.0")
'io.github.guvense:validator:jar:1.0.0'
<dependency org="io.github.guvense" name="validator" rev="1.0.0">
  <artifact name="validator" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.github.guvense', module='validator', version='1.0.0')
)
libraryDependencies += "io.github.guvense" % "validator" % "1.0.0"
[io.github.guvense/validator "1.0.0"]

Dependencies

compile (2)

Group / Artifact Type Version
org.apache.commons : commons-lang3 jar 3.11
org.freemarker : freemarker jar 2.3.30

provided (1)

Group / Artifact Type Version
com.google.auto.service : auto-service jar 1.0-rc2

test (1)

Group / Artifact Type Version
junit : junit jar 4.13.1

Project Modules

There are no modules declared in this project.

Validator

Validator is an annotation that validates your objects. That use annotation processing which is not affecting your performance. It generates codes during compile time. 

  • Condition Checker
  • Pattern Matcher

You can write your validation in an interface and let validator generates your implementation.


public interface PersonValidator {


    @Valid(source = "name",
            errorMessage = "Name is not blank",
            targetException =
                    NullPointerException.class,
            condition = ConditionRule.IsNotBlank)
    @Valid(source = "age",
            errorMessage = "Age should be positive",
            targetException = NullPointerException.class,
            condition = ConditionRule.IsPositive)
    @Valid(source = "count",
            errorMessage = "Count should be zero",
            targetException = NullPointerException.class,
            condition = ConditionRule.IsZero)
    @Valid(
            source = "email",
            errorMessage = "Not valid email",
            targetException = NullPointerException.class,
            pattern = Pattern.EMAIL
    )
    void validate(Person person);

}


            

Validator will generate

package validator;

    import model.Person;


import static org.validator.generator.constant.ConditionRule.*;
import org.validator.util.condition.ConditionRuleChecker;

import static org.validator.generator.constant.Pattern.*;
import org.validator.util.pattern.PatternMatcher;


@Component
public class PersonValidatorImpl implements PersonValidator
{


    public void validate(Person person) {

        if(ConditionRuleChecker.check(IsNotBlank,  person.getName())) {
            throw new java.lang.NullPointerException("Name is not blank");
        }
        if(ConditionRuleChecker.check(IsPositive,  person.getAge())) {
            throw new java.lang.NullPointerException("Age should be positive");
        }
        if(ConditionRuleChecker.check(IsZero,  person.getCount())) {
            throw new java.lang.NullPointerException("Count should be zero");
        }

        if(PatternMatcher.validate(EMAIL,  person.getEmail())) {
            throw new java.lang.NullPointerException("Not valid email");
        }
    }
}

Versions

Version
1.0.0