Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Deck of Cards
idserviceImplementation
Card
labelServiceInterface
Bloco de código
languagejava
themeEclipse
linenumberstrue
public class ServiceInterface {
  public void createUser(@Email String email, @NotNull String name);
}
Card
labelServiceImpl
Bloco de código
languagejava
themeEclipse
linenumberstrue
@ValidateParams
public class ServiceImpl {
  public void createUser(@Email String email, @NotNull String name){
    //...
  }
}

Agrupamento de Validações

É possível agrupar validações em uma mesma validação personalizada, conforme exemplo abaixo, que faz várias validações em um único parâmetro.:

...

Deck of Cards
idcustomValidator
Card
labelPlate
Bloco de código
languagejava
themeEclipse
title@Plate
linenumberstrue
@NotNull
@NotEmpty
@NotBlank
@Pattern(regex="[A-Z]{3}\d{4}")
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)

// Classe que irá fazer a validação no Detran 
@Constraint(validatedBy = DetranValidator.class)
@ReportAsSingleViolation
public @interface Plate{
    String message() default "{com.totvs.custom.validation.plate.message}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

 

 



Card
labelDetranValidator
Bloco de código
languagejava
themeEclipse
titleDetranValidator
linenumberstrue
public class DetranValidator implements ConstraintValidator<Plate, String> {

	private CaseMode caseMode;

	@Override
	public void initialize(CheckCase constraintAnnotation) {
		this.caseMode = constraintAnnotation.value();
	}

	@Override
	public boolean isValid(String object, ConstraintValidatorContext constraintContext) {
		var validDetran = pesquisaDetran(); // logica de pesquisa no detran
		if ( validDetran ) {
			return true;
		}
		return false;
	}
}