Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用OVal验证框架创建自定义的基于XML的约束_Java_Validation_Oval - Fatal编程技术网

Java 如何使用OVal验证框架创建自定义的基于XML的约束

Java 如何使用OVal验证框架创建自定义的基于XML的约束,java,validation,oval,Java,Validation,Oval,使用椭圆形验证框架(http://oval.sourceforge.net/)可以创建基于约束的自定义注释(http://oval.sourceforge.net/userguide.html#d4e493) 我的目的是从一些约束定义中生成一个椭圆形XML配置文件,这就是为什么我希望使用XML配置来完成完整的椭圆形约束定义(http://oval.sourceforge.net/userguide.html#d4e551) 我可以在XML配置文件中定义除自定义约束之外的所有约束 基于注释的我有以

使用椭圆形验证框架(http://oval.sourceforge.net/)可以创建基于约束的自定义注释(http://oval.sourceforge.net/userguide.html#d4e493)

我的目的是从一些约束定义中生成一个椭圆形XML配置文件,这就是为什么我希望使用XML配置来完成完整的椭圆形约束定义(http://oval.sourceforge.net/userguide.html#d4e551)

我可以在XML配置文件中定义除自定义约束之外的所有约束

基于注释的我有以下代码:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import net.sf.oval.exception.ConstraintsViolatedException;

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD })
@net.sf.oval.configuration.annotation.Constraint(checkWith = UpperCaseCheck.class)
public @interface UpperCase {

    /**
     * Message to be used for the ConstraintsViolatedException
     * 
     * @see ConstraintsViolatedException
     */
    String message() default "must be upper case";
}


import net.sf.oval.Validator;
import net.sf.oval.configuration.annotation.AbstractAnnotationCheck;
import net.sf.oval.context.OValContext;

public class UpperCaseCheck extends AbstractAnnotationCheck<UpperCase> {

    private static final long serialVersionUID = 2715187850228144730L;

    public boolean isSatisfied(Object validatedObject, Object valueToValidate, OValContext context, Validator validator) {
        if (valueToValidate == null)
            return true;

        String val = valueToValidate.toString();

        return val.equals(val.toUpperCase());
    }

}

如何在XML配置中定义自定义约束检查(大写)?

只需通过XML文件中检查实现的完全限定类名引用您的约束,例如。

@NotNull
@UpperCase
private String p_name;