/* * Hibernate Validator, declare and validate application constraints * * License: Apache License, Version 2.0 * See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>. */ package org.hibernate.validator.ap.checks; import java.util.Collections; import java.util.Set; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; import org.hibernate.validator.ap.util.CollectionHelper; /** * Validates that the given element is not of a primitive type. Applies to * fields and methods (the return type is evaluated). * * @author Gunnar Morling */ public class PrimitiveCheck extends AbstractConstraintCheck { @Override public Set<ConstraintCheckIssue> checkField(VariableElement element, AnnotationMirror annotation) { return checkInternal( element, annotation, element.asType(), "ATVALID_NOT_ALLOWED_AT_PRIMITIVE_FIELD" ); } @Override public Set<ConstraintCheckIssue> checkMethod(ExecutableElement element, AnnotationMirror annotation) { return checkInternal( element, annotation, element.getReturnType(), "ATVALID_NOT_ALLOWED_AT_METHOD_RETURNING_PRIMITIVE_TYPE" ); } private Set<ConstraintCheckIssue> checkInternal(Element element, AnnotationMirror annotation, TypeMirror type, String messageKey) { if ( type.getKind().isPrimitive() ) { return CollectionHelper.asSet( ConstraintCheckIssue.error( element, annotation, messageKey ) ); } return Collections.emptySet(); } }