![JAR search and dependency download from the Maven repository](/logo.png)
org.analogweb.oval.OvalInvocationProcessor Maven / Gradle / Ivy
The newest version!
package org.analogweb.oval;
import static org.analogweb.oval.OvalPluginModuleConfig.PLUGIN_MESSAGE_RESOURCE;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import net.sf.oval.ConstraintViolation;
import net.sf.oval.Validator;
import net.sf.oval.constraint.AssertValid;
import org.analogweb.ContainerAdaptor;
import org.analogweb.Invocation;
import org.analogweb.InvocationArguments;
import org.analogweb.InvocationMetadata;
import org.analogweb.ModulesContainerAdaptorAware;
import org.analogweb.core.AbstractInvocationInterceptor;
import org.analogweb.util.AnnotationUtils;
import org.analogweb.util.ClassUtils;
import org.analogweb.util.CollectionUtils;
import org.analogweb.util.ReflectionUtils;
import org.analogweb.util.logging.Log;
import org.analogweb.util.logging.Logs;
import org.analogweb.util.logging.Markers;
/**
* {@link AssertValid}が付与された対象のオブジェクトに対する 検証({{@link Validator#validate(Object)}
* )を行う{@link AbstractInvocationInterceptor} の実装です。検証に適合しない、且つエントリポイントメソッドの引数に
* {@link ConstraintViolations}が存在する場合は、引数に検証結果 ({@link ConstraintViolations}
* )を設定します。(設定される引数は 1つのみです。)存在しない場合は{@link ConstraintViolationException}
* が投げられます。
* @author snowgoose
*/
public class OvalInvocationProcessor extends AbstractInvocationInterceptor
implements ModulesContainerAdaptorAware {
private static final Log log = Logs.getLog(OvalInvocationProcessor.class);
private ContainerAdaptor container;
@Override
public Object onInvoke(Invocation invocation, InvocationMetadata metadata) {
Method method = ReflectionUtils.getMethodQuietly(
metadata.getInvocationClass(), metadata.getMethodName(),
metadata.getArgumentTypes());
InvocationArguments args = invocation.getInvocationArguments();
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy