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

mx.emite.sdk.cfdi32.validadores.RangoStringValidador Maven / Gradle / Ivy

Go to download

Este kit de consumo provee a los integradores de Apis de Java para construir software que consuma los diferentes servicios web publicados por Emite Facturacion

The newest version!
package mx.emite.sdk.cfdi32.validadores;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Locale;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

import org.apache.commons.lang3.StringUtils;

import mx.emite.sdk.cfdi32.anotaciones.RangoString;
import mx.emite.sdk.cfdi32.validadores.interfaces.TieneRangoString;

public class RangoStringValidador implements ConstraintValidator {

	final static DateTimeFormatter df =  DateTimeFormatter.ofPattern("dd/MM/yyyy",new Locale("es","MX"));
	
	@Override
	public void initialize(RangoString constraintAnnotation) {
		
		
	}

	@Override
	public boolean isValid(TieneRangoString value, ConstraintValidatorContext context) {
		if(StringUtils.isEmpty(value.getRango1())||StringUtils.isEmpty(value.getRango2())){
			context.disableDefaultConstraintViolation();
	        context
	            .buildConstraintViolationWithTemplate("rango1 y rango2 deben estar llenos")
	            .addConstraintViolation();
	        return false;
		}
		try{
			final LocalDate rango1 = LocalDate.parse(value.getRango1(),df);
			final LocalDate rango2 = LocalDate.parse(value.getRango2(),df);
			if(rango1.isAfter(rango2)){
				context.disableDefaultConstraintViolation();
		        context
		            .buildConstraintViolationWithTemplate("el rango2 debe de ser posterior al rango1")
		            .addConstraintViolation();
		        return false;
			}
				
		}
		catch(DateTimeParseException ex){
			context.disableDefaultConstraintViolation();
	        context
	            .buildConstraintViolationWithTemplate("las fechas deben de estar en formato DD/MM/YYYY")
	            .addConstraintViolation();
	        return false;
		}
		return true;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy