当前位置: 首页>>代码示例>>Java>>正文


Java Constraint类代码示例

本文整理汇总了Java中javax.validation.Constraint的典型用法代码示例。如果您正苦于以下问题:Java Constraint类的具体用法?Java Constraint怎么用?Java Constraint使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Constraint类属于javax.validation包,在下文中一共展示了Constraint类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: buildClassAnnotations

import javax.validation.Constraint; //导入依赖的package包/类
/**
 * @return A list of the class level annotations that the annotator will
 *         use.
 */
private List<MetaAnnotation> buildClassAnnotations() {

    List<MetaAnnotation> anns = Lists.newArrayList();
    HashMap<String, Object> annotParams;

    // AlwaysValid
    JDefinedClass alwaysValid = buildTemplateConstraint("AlwaysValid");
    JDefinedClass alwaysValidValidator = buildTemplateConstraintValidator("AlwaysValidValidator", alwaysValid, Object.class);
    JMethod isValid = getIsValidMethod(alwaysValidValidator);
    isValid.body()._return(JExpr.TRUE);
    alwaysValid.annotate(Constraint.class).param("validatedBy", alwaysValidValidator);
    
    annotParams = Maps.newHashMap();
    anns.add(new MetaAnnotation(alwaysValid, AnnotationType.JSR_303, annotParams));
    
    return anns;
}
 
开发者ID:hibernate,项目名称:beanvalidation-benchmark,代码行数:22,代码来源:Jsr303Annotator.java

示例2: isMultiValueConstraintClass

import javax.validation.Constraint; //导入依赖的package包/类
/**
 * @return true if this is a multi-value constraint class as per JSR 303 requirements (contains a value() method
 * which returns an array of Constraints), false otherwise.
 */
private static boolean isMultiValueConstraintClass(Class<? extends Annotation> annotationClass) {
    // It must have a value() method.
    Method valueMethod;
    try {
        valueMethod = annotationClass.getDeclaredMethod("value");
    }
    catch (NoSuchMethodException e) {
        return false;
    }

    // That value field must return a type of "array of Constraint"
    //noinspection RedundantIfStatement
    if (valueMethod.getReturnType().isArray()
        && valueMethod.getReturnType().getComponentType().getAnnotation(Constraint.class) != null) {
        return true;
    }

    return false;
}
 
开发者ID:Nike-Inc,项目名称:backstopper,代码行数:24,代码来源:ReflectionBasedJsr303AnnotationTrollerBase.java

示例3: hasConstraintParameter

import javax.validation.Constraint; //导入依赖的package包/类
private static boolean hasConstraintParameter(Method method) {
    Annotation[][] parameterAnnotations = method.getParameterAnnotations();
    if (parameterAnnotations != null && parameterAnnotations.length > 0) {
        for (Annotation[] annotations : parameterAnnotations) {
            for (Annotation annotation : annotations) {
                if (annotation.annotationType().isAnnotationPresent(Constraint.class)) {
                    return true;
                }
            }
        }
    }
    return false;
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:14,代码来源:JValidator.java

示例4: hasConstraintParameter

import javax.validation.Constraint; //导入依赖的package包/类
private static boolean hasConstraintParameter(Method method) {
	Annotation[][] parameterAnnotations = method.getParameterAnnotations();
	if (parameterAnnotations != null && parameterAnnotations.length > 0) {
		for (Annotation[] annotations : parameterAnnotations) {
			for (Annotation annotation : annotations) {
				if (annotation.annotationType().isAnnotationPresent(Constraint.class)) {
					return true;
				}
			}
		}
	}
	return false;
}
 
开发者ID:nince-wyj,项目名称:jahhan,代码行数:14,代码来源:JValidator.java

示例5: isRequired

import javax.validation.Constraint; //导入依赖的package包/类
private boolean isRequired(Field field) {
    if (field.isAnnotationPresent(NotNull.class)) {
        return true;
    }
    Annotation[] annotations = field.getAnnotations();
    for (Annotation annotation : annotations) {
        Class<? extends Annotation> annotationType = annotation.annotationType();
        if (annotationType.isAnnotationPresent(Constraint.class) && annotationType
                .isAnnotationPresent(NotNull.class)) {
            return true;
        }
    }
    return false;
}
 
开发者ID:Mercateo,项目名称:rest-schemagen,代码行数:15,代码来源:ObjectContext.java

示例6: determineConstraints

import javax.validation.Constraint; //导入依赖的package包/类
private <U, C extends Annotation> Optional<U> determineConstraints(Class<C> clazz, Field field, Function<C, U> callback) {
    C constraint = field.getAnnotation(clazz);
    if (constraint != null) {
        return Optional.of(callback.apply(constraint));
    }
    for (Annotation annotation : field.getAnnotations()) {
        Class<? extends Annotation> annotationType = annotation.annotationType();
        if (annotationType.isAnnotationPresent(Constraint.class) && annotationType.isAnnotationPresent(clazz)) {
            return Optional.of(callback.apply(annotationType.getAnnotation(clazz)));
        }
    }
    return Optional.empty();
}
 
开发者ID:Mercateo,项目名称:rest-schemagen,代码行数:14,代码来源:ObjectContext.java

示例7: hasMatchingAnnotation

import javax.validation.Constraint; //导入依赖的package包/类
private boolean hasMatchingAnnotation(final Annotation expectedAnnotation,
    final Annotation[] annotations) throws UnableToCompleteException {
  // See spec section 2.2. Applying multiple constraints of the same type
  for (final Annotation annotation : annotations) {
    // annotations not annotated by @Constraint
    if (annotation.annotationType().getAnnotation(Constraint.class) == null) {
      try {
        // value element has a return type of an array of constraint
        // annotations
        final Method valueMethod = annotation.annotationType().getMethod("value");
        final Class<?> valueType = valueMethod.getReturnType();
        if (valueType.isArray()
            && Annotation.class.isAssignableFrom(valueType.getComponentType())) {
          if (Modifier.isAbstract(valueMethod.getModifiers())) {
            // handle edge case where interface is marked "abstract"
            valueMethod.setAccessible(true);
          }
          final Annotation[] valueAnnotions = (Annotation[]) valueMethod.invoke(annotation);
          for (final Annotation annotation2 : valueAnnotions) {
            if (expectedAnnotation.equals(annotation2)) {
              return true;
            }
          }
        }
      } catch (final NoSuchMethodException ignore) { // NOPMD
        // Expected Case.
      } catch (final Exception e) {
        throw error(this.logger, e);
      }
    }
  }
  return false;
}
 
开发者ID:ManfredTremmel,项目名称:gwt-bean-validators,代码行数:34,代码来源:GwtSpecificValidatorCreator.java

示例8: isBeanConstraint

import javax.validation.Constraint; //导入依赖的package包/类
public static boolean isBeanConstraint(String annotationName) {
    boolean result = false;
    try {
        Class<?> annotationClass = Class.forName(annotationName);
        result = annotationClass.getAnnotation(Constraint.class) != null;

    } catch (ClassNotFoundException e) {
        ; // TODO At least log this, probably some class loading issue that we have to solve
    }
    return result;

}
 
开发者ID:atbashEE,项目名称:jsf-renderer-extensions,代码行数:13,代码来源:AnnotationUtils.java

示例9: getBeanConstraintValidator

import javax.validation.Constraint; //导入依赖的package包/类
private static List<Class<? extends ConstraintValidator<?, ?>>> getBeanConstraintValidator(Class annotationClass) {
    Constraint annotation = (Constraint) annotationClass.getAnnotation(Constraint.class);

    List<Class<? extends ConstraintValidator<?, ?>>> result = new ArrayList<>();
    if (annotation != null) {
        result = Arrays.asList(annotation.validatedBy());
    }

    return result;

}
 
开发者ID:atbashEE,项目名称:jsf-renderer-extensions,代码行数:12,代码来源:AnnotationUtils.java

示例10: isValid

import javax.validation.Constraint; //导入依赖的package包/类
@Override
public boolean isValid(List<?> entries,
		ConstraintValidatorContext context) {
	boolean valid = true;

	if(entries == null){
		return valid;
	}
	
	if(ArrayUtils.getLength(constraints) != ArrayUtils.getLength(messages)){
		throw new ConstraintDeclarationException("Number of messages must be the same as number of constraints");
	}

	ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
	ConstraintValidatorFactory constraintValidatorFactory = validatorFactory.getConstraintValidatorFactory();

	for(Object element : entries) {
		for(Class<?> constraint : constraints) {
			Constraint constraintAnnotation = constraint.getAnnotation(Constraint.class);
			Class<? extends ConstraintValidator<?, ?>>[] constraintValidators = constraintAnnotation.validatedBy();
			for (int i = 0; i < constraintValidators.length; i++) {
				ConstraintValidator constraintValidator = constraintValidatorFactory.getInstance(constraintValidators[i]);
				if(!constraintValidator.isValid(element, context)){
					context.buildConstraintViolationWithTemplate(messages[i]).addConstraintViolation().disableDefaultConstraintViolation();
					valid = false;
				}
			}
		}

	}

	return valid;
}
 
开发者ID:CDS-INSPIRE,项目名称:InSpider,代码行数:34,代码来源:ValidCollectionValidator.java

示例11: isValidationAnnotations

import javax.validation.Constraint; //导入依赖的package包/类
private boolean isValidationAnnotations(final Annotation... annotations) {
    boolean matches = false;
    for (Annotation ann : annotations) {
        final Class<? extends Annotation> annotationType = ann.annotationType();
        if (Valid.class.equals(annotationType) || annotationType.isAnnotationPresent(Constraint.class)) {
            matches = true;
            break;
        }
    }
    return matches;
}
 
开发者ID:xvik,项目名称:guice-validator,代码行数:12,代码来源:ValidatedMethodMatcher.java

示例12: testAnnotation

import javax.validation.Constraint; //导入依赖的package包/类
@Test
public void testAnnotation() throws Exception {
	DayOfWeek validationAnnotation = Dummy.class.getField("date").getAnnotation(DayOfWeek.class);
	// instantiate validator from annotation info
	Constraint validatorAnnotation = DayOfWeek.class.getAnnotation(Constraint.class);
	Class<?>[] validatorClass = validatorAnnotation.validatedBy();
	DayOfWeekValidator validator = (DayOfWeekValidator) BeanUtil.newInstance(validatorClass[0]);
	validator.initialize(validationAnnotation);
	// test
	check(validator, true, false, true, false, false, false, false);
}
 
开发者ID:raphaelfeng,项目名称:benerator,代码行数:12,代码来源:DayOfWeekValidatorTest.java

示例13: ReflectionBasedJsr303AnnotationTrollerBase

import javax.validation.Constraint; //导入依赖的package包/类
/**
 * Initializes the instance based on what is returned by {@link #ignoreAllAnnotationsAssociatedWithTheseProjectClasses()}
 * and {@link #specificAnnotationDeclarationExclusionsForProject()}. This is time consuming and should only be done
 * once per project if possible - see the usage info in the {@link ReflectionBasedJsr303AnnotationTrollerBase}
 * class-level javadocs.
 *
 * <p>The given set of extra packages for constraint annotation searching will be passed into {@link
 * #getFinalPackagesToSearchForConstraintAnnotations(Set)} to generate the final set of packages that are searched.
 * If you don't want the {@link #DEFAULT_CONSTRAINT_SEARCH_PACKAGES} default packages to be searched you can
 * override {@link #getDefaultPackagesToSearchForConstraintAnnotations()}.
 */
public ReflectionBasedJsr303AnnotationTrollerBase(Set<String> extraPackagesForConstraintAnnotationSearch) {

    /*
     * Set up the {@link #ignoreAllAnnotationsAssociatedWithTheseClasses} and
     * {@link #specificAnnotationDeclarationsExcludedFromStrictMessageRequirement} fields so we know which
     * annotations are project-relevant vs. unit-test-only.
     */
    ignoreAllAnnotationsAssociatedWithTheseClasses =
        new ArrayList<>(setupIgnoreAllAnnotationsAssociatedWithTheseClasses());
    specificAnnotationDeclarationsExcludedFromStrictMessageRequirement =
        new ArrayList<>(setupSpecificAnnotationDeclarationExclusions());

    /*
     * Set up the {@link #reflections}, {@link #constraintAnnotationClasses}, and
     * {@link #allConstraintAnnotationsMasterList} fields. This is where the crazy reflection magic happens to troll
     * the project for the JSR 303 annotation declarations.
     */
    // Create the ConfigurationBuilder to search the relevant set of packages.
    ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
    for (String packageToAdd : getFinalPackagesToSearchForConstraintAnnotations(
        extraPackagesForConstraintAnnotationSearch)) {
        configurationBuilder.addUrls(ClasspathHelper.forPackage(packageToAdd));
    }

    // Create the Reflections object so it scans for all validation annotations we care about and all project
    //      classes that might have annotations on them.
    reflections = new Reflections(configurationBuilder.setScanners(
        new SubTypesScanner(), new MethodParameterScanner(), new TypeAnnotationsScanner(),
        new MethodAnnotationsScanner(), new FieldAnnotationsScanner()
    ));

    // Gather the list of all JSR 303 validation annotations in the project. Per the JSR 303 spec this is any
    //      annotation class type that is marked with @Constraint.
    constraintAnnotationClasses = new ArrayList<>();
    for (Class<?> constraintAnnotatedType : reflections.getTypesAnnotatedWith(Constraint.class, true)) {
        if (constraintAnnotatedType.isAnnotation()) {
            //noinspection unchecked
            constraintAnnotationClasses.add((Class<? extends Annotation>) constraintAnnotatedType);
        }
    }

    // We're not done gathering validation annotations though, unfortunately. JSR 303 also says that *any*
    //      annotation (whether it is a Constraint or not) that has a value field that returns an array of actual
    //      Constraints is treated as a "multi-value constraint", and the validation processor will run each
    //      of the Constraints in the array as if they were declared separately on the annotated element. Therefore,
    //      we have to dig through all the annotations in the project, find any that fall into this "multi-value
    //      constraint" category, and include them in our calculations.
    for (Class<? extends Annotation> annotationClass : reflections.getSubTypesOf(Annotation.class)) {
        if (isMultiValueConstraintClass(annotationClass))
            constraintAnnotationClasses.add(annotationClass);
    }

    // Setup the master constraint list
    allConstraintAnnotationsMasterList =
        new ArrayList<>(setupAllConstraintAnnotationsMasterList(reflections, constraintAnnotationClasses));

    /*
     * Finally use the info we've gathered/constructed previously to populate the
     * {@link #projectRelevantConstraintAnnotationsExcludingUnitTestsList} field, which is the main chunk of data
     * that extensions of this class will care about.
     */
    projectRelevantConstraintAnnotationsExcludingUnitTestsList = Collections.unmodifiableList(
        getSubAnnotationListUsingExclusionFilters(allConstraintAnnotationsMasterList,
                                                  ignoreAllAnnotationsAssociatedWithTheseClasses,
                                                  specificAnnotationDeclarationsExcludedFromStrictMessageRequirement));
}
 
开发者ID:Nike-Inc,项目名称:backstopper,代码行数:78,代码来源:ReflectionBasedJsr303AnnotationTrollerBase.java

示例14: build

import javax.validation.Constraint; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public static <T extends Annotation> MinijaxConstraintDescriptor<T> build(final AnnotatedType annotatedType, final T annotation) {
    final Constraint constraint = annotation.annotationType().getAnnotation(Constraint.class);
    if (constraint == null) {
        return null;
    }

    final Class<?> valueClass = ReflectionUtils.getRawType(annotatedType);
    final Class<?> annotationClass = annotation.annotationType();

    if (constraint.validatedBy().length > 0) {
        return buildDeclaredValidator(annotation, constraint.validatedBy()[0]);

    } else if (annotationClass == AssertFalse.class) {
        return (MinijaxConstraintDescriptor<T>) buildAssertFalseValidator((AssertFalse) annotation, valueClass);

    } else if (annotationClass == AssertTrue.class) {
        return (MinijaxConstraintDescriptor<T>) buildAssertTrueValidator((AssertTrue) annotation, valueClass);

    } else if (annotationClass == Max.class) {
        return (MinijaxConstraintDescriptor<T>) buildMaxValidator((Max) annotation, valueClass);

    } else if (annotationClass == Min.class) {
        return (MinijaxConstraintDescriptor<T>) buildMinValidator((Min) annotation, valueClass);

    } else if (annotationClass == NotBlank.class) {
        return (MinijaxConstraintDescriptor<T>) buildNotBlankValidator((NotBlank) annotation, valueClass);

    } else if (annotationClass == NotEmpty.class) {
        return (MinijaxConstraintDescriptor<T>) buildNotEmptyValidator((NotEmpty) annotation, valueClass);

    } else if (annotationClass == NotNull.class) {
        return (MinijaxConstraintDescriptor<T>) buildNotNullValidator((NotNull) annotation);

    } else if (annotationClass == Pattern.class) {
        return (MinijaxConstraintDescriptor<T>) buildPatternValidator((Pattern) annotation, valueClass);

    } else if (annotationClass == Size.class) {
        return (MinijaxConstraintDescriptor<T>) buildSizeValidator((Size) annotation, valueClass);

    } else {
        throw new ValidationException("Unrecognized constraint annotation: " + annotation);
    }
}
 
开发者ID:minijax,项目名称:minijax,代码行数:45,代码来源:MinijaxConstraintDescriptor.java

示例15: isConstraint

import javax.validation.Constraint; //导入依赖的package包/类
/**
 * Determines whether the given annotation is a 'constraint' or not.
 * It just checks if the annotation has the {@link Constraint} annotation on it or if the annotation is the {@link
 * Valid} annotation.
 *
 * @param annotation the annotation to check
 * @return {@code true} if the given annotation is a constraint
 */
private static boolean isConstraint(Annotation annotation) {
    return annotation.annotationType().isAnnotationPresent(Constraint.class)
            || annotation.annotationType().equals(Valid.class);
}
 
开发者ID:wisdom-framework,项目名称:wisdom,代码行数:13,代码来源:RouteDelegate.java


注:本文中的javax.validation.Constraint类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。