org.hibernate.validator.internal.metadata.aggregated.rule.VoidMethodsMustNotBeReturnValueConstrained Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bean-validator Show documentation
Show all versions of bean-validator Show documentation
JSR 380's RI, Hibernate Validator version ${hibernate-validator.version} and its dependencies repackaged as OSGi bundle
/*
* Hibernate Validator, declare and validate application constraints
*
* License: Apache License, Version 2.0
* See the license.txt file in the root directory or .
*/
package org.hibernate.validator.internal.metadata.aggregated.rule;
import java.lang.reflect.Method;
import org.hibernate.validator.internal.metadata.raw.ConstrainedExecutable;
/**
* Rule that ensures that void methods don't have any constraints or are marked
* as cascaded.
*
* @author Gunnar Morling
*/
public class VoidMethodsMustNotBeReturnValueConstrained extends MethodConfigurationRule {
@Override
public void apply(ConstrainedExecutable executable, ConstrainedExecutable otherExecutable) {
if ( ( executable.getExecutable() instanceof Method ) &&
( (Method) executable.getExecutable() ).getReturnType() == void.class &&
( !executable.getConstraints().isEmpty()
|| executable.getCascadingMetaDataBuilder().isMarkedForCascadingOnAnnotatedObjectOrContainerElements() ) ) {
throw LOG.getVoidMethodsMustNotBeConstrainedException( executable.getExecutable() );
}
}
}