Tuesday, 6 April 2021

Bean Validation: PositiveOrZero: Number must be >= 0

PositiveOrZero annotation can be applied on a number and it makes sure that given number is >= 0.

 

Example

@PositiveOrZero

private int increment;

 

Supported Types

a.   BigDecimal

b.   BigInteger

c.    byte

d.   short

e.   int

f.     long

g.   float

h.   double

i.     All the wrapper classes of primitive types

 

Where can I apply this annotation?

a.   METHOD

b.   FIELD

c.    ANNOTATION_TYPE

d.   CONSTRUCTOR

e.   PARAMETER

f.     TYPE_USE

 

Employee.java

package com.sample.app.model;

import java.util.Date;

import javax.validation.constraints.PositiveOrZero;

public class Employee {

	private int id;

	private String name;

	public Date joinedDate;
	
	@PositiveOrZero
	private int increment;

	public Employee(int id, String name, Date joinedDate, int increment) {
		this.id = id;
		this.name = name;
		this.joinedDate = joinedDate;
		this.increment = increment;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Date getJoinedDate() {
		return joinedDate;
	}

	public void setJoinedDate(Date joinedDate) {
		this.joinedDate = joinedDate;
	}

}

 

Test.java

package com.sample.app;

import java.util.Calendar;
import java.util.Set;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;

import com.sample.app.model.Employee;

public class Test {
	private static ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
	private static Validator validator = validatorFactory.getValidator();

	private static void validateBean(Employee emp) {
		System.out.println("************************************");
		Set<ConstraintViolation<Employee>> validationErrors = validator.validate(emp);

		if (validationErrors.size() == 0) {
			System.out.println("No validation errors....");
		}

		for (ConstraintViolation<Employee> violation : validationErrors) {
			System.out.println(violation.getPropertyPath() + "," + violation.getMessage());
		}
		System.out.println("");
	}

	public static void main(String args[]) {

		Employee emp1 = new Employee(1, "Rama Krishna", Calendar.getInstance().getTime(), 5);
		System.out.println("Validation errors on bean emp1");
		validateBean(emp1);

		Employee emp2 = new Employee(-2, "Siva", Calendar.getInstance().getTime(), 0);
		System.out.println("Validation errors on bean emp2");
		validateBean(emp2);
		
		Employee emp3 = new Employee(0, "Siva553", Calendar.getInstance().getTime(), -1);
		System.out.println("Validation errors on bean emp3");
		validateBean(emp3);
	}
}

 

Output

Validation errors on bean emp1
************************************
No validation errors....

Validation errors on bean emp2
************************************
No validation errors....

Validation errors on bean emp3
************************************
increment,must be greater than or equal to 0

 

 

 

 

  

Previous                                                    Next                                                    Home

No comments:

Post a Comment