Example usage for java.lang.annotation ElementType PARAMETER

List of usage examples for java.lang.annotation ElementType PARAMETER

Introduction

In this page you can find the example usage for java.lang.annotation ElementType PARAMETER.

Prototype

ElementType PARAMETER

To view the source code for java.lang.annotation ElementType PARAMETER.

Click Source Link

Document

Formal parameter declaration

Usage

From source file:org.apache.bval.jsr.JsrMetaBeanFactory.java

/**
 * Add cascade validation and constraints from xml mappings
 * /*from w w w.j a  v a 2 s  .  com*/
 * @param beanClass
 * @param metabean
 * @throws IllegalAccessException
 * @throws InvocationTargetException
 */
private void addXmlConstraints(Class<?> beanClass, MetaBean metabean)
        throws IllegalAccessException, InvocationTargetException {
    for (final MetaConstraint<?, ? extends Annotation> metaConstraint : factory.getMetaConstraints(beanClass)) {
        Meta meta;
        AccessStrategy access = metaConstraint.getAccessStrategy();
        boolean create = false;
        if (access == null) { // class level
            meta = null;
        } else if (access.getElementType() == ElementType.METHOD
                && !metaConstraint.getMember().getName().startsWith("get")) { // TODO: better getter test
            final Method method = Method.class.cast(metaConstraint.getMember());
            meta = metabean.getMethod(method);
            final MetaMethod metaMethod;
            if (meta == null) {
                meta = new MetaMethod(metabean, method);
                metaMethod = MetaMethod.class.cast(meta);
                metabean.addMethod(method, metaMethod);
            } else {
                metaMethod = MetaMethod.class.cast(meta);
            }
            final Integer index = metaConstraint.getIndex();
            if (index != null && index >= 0) {
                MetaParameter param = metaMethod.getParameter(index);
                if (param == null) {
                    param = new MetaParameter(metaMethod, index);
                    metaMethod.addParameter(index, param);
                }
                param.addAnnotation(metaConstraint.getAnnotation());
            } else {
                metaMethod.addAnnotation(metaConstraint.getAnnotation());
            }
            continue;
        } else if (access.getElementType() == ElementType.CONSTRUCTOR) {
            final Constructor<?> constructor = Constructor.class.cast(metaConstraint.getMember());
            meta = metabean.getConstructor(constructor);
            final MetaConstructor metaConstructor;
            if (meta == null) {
                meta = new MetaConstructor(metabean, constructor);
                metaConstructor = MetaConstructor.class.cast(meta);
                metabean.addConstructor(constructor, metaConstructor);
            } else {
                metaConstructor = MetaConstructor.class.cast(meta);
            }
            final Integer index = metaConstraint.getIndex();
            if (index != null && index >= 0) {
                MetaParameter param = metaConstructor.getParameter(index);
                if (param == null) {
                    param = new MetaParameter(metaConstructor, index);
                    metaConstructor.addParameter(index, param);
                }
                param.addAnnotation(metaConstraint.getAnnotation());
            } else {
                metaConstructor.addAnnotation(metaConstraint.getAnnotation());
            }
            continue;
        } else { // property level
            meta = metabean.getProperty(access.getPropertyName());
            create = meta == null;
            if (create) {
                meta = addMetaProperty(metabean, access);
            }
        }
        if (!annotationProcessor.processAnnotation(metaConstraint.getAnnotation(), meta, beanClass,
                metaConstraint.getAccessStrategy(), new AppendValidationToMeta(meta == null ? metabean : meta),
                false) && create) {
            metabean.putProperty(access.getPropertyName(), null);
        }
    }
    for (final AccessStrategy access : factory.getValidAccesses(beanClass)) {
        if (access.getElementType() == ElementType.PARAMETER) {
            continue;
        }

        MetaProperty metaProperty = metabean.getProperty(access.getPropertyName());
        boolean create = metaProperty == null;
        if (create) {
            metaProperty = addMetaProperty(metabean, access);
        }
        if (!annotationProcessor.addAccessStrategy(metaProperty, access) && create) {
            metabean.putProperty(access.getPropertyName(), null);
        }
    }
}

From source file:org.jspare.server.controller.Controller.java

public void validate(Object... objects) throws BeanValidationException {

    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator validator = factory.getValidator();
    Set<ConstraintViolation<Object>> resolutions = new HashSet<>();
    for (Object bean : objects) {
        if (bean == null) {
            resolutions.add(ConstraintViolationImpl.forBeanValidation("invalid required parameters", null,
                    "invalid required parameters", null, null, bean, bean,
                    PathImpl.createPathFromString("parameter"), null, ElementType.PARAMETER));
            continue;
        }/*  w w  w.  j  a  v a2s.c om*/
        resolutions.addAll(validator.validate(bean));
    }
    if (!resolutions.isEmpty()) {

        throw new BeanValidationException(resolutions);
    }
}