使用针对枚举的hibernate验证器验证YAML序列

时间:2017-10-05 10:52:35

标签: java yaml hibernate-validator

我正在尝试创建自己的验证器,用于验证YAML配置文件中的List<String>读取。我想要做的是针对我创建的Enum类验证它,如下所示:

public enum BundleName {
    DK("dk.bundle"),
    UK("uk.bundle"),
    US("us.bundle"),
    DK_DEBUG("dk.bundle.debug"),
    UK_DEBUG("uk.bundle.debug"),
    US_DEBUG("us.bundle.debug"),
    ;

    private String bundleName;

    BundleName(String bundleName) {
        this.bundleName = bundleName;
    }

    public String getBundleName() {
      return this.bundleName
    }
}

我的YAML文件定义如下:

bundleNames:
  - ${DK}
  - ${UK}
  - ${US}
  - ${DK_DEBUG}
  - ${UK_DEBUG}
  - ${US_DEBUG}

现在可以设置其中一些环境变量,或者可以设置所有这些变量,或者只设置一个。不同的环境不同的组合。无论如何我想要的是能够针对枚举bundleName中的BundleName.class验证这些环境变量。现在Hibernate有一个很好的example,以及我在网上找到的所有其他示例,其中验证是针对特定的简单枚举完成的。我不想检查枚举名称但枚举值,我根本无法弄清楚如何。我尝试过的所有内容都是我在其他帖子中找到的一些组合,例如thisthis等等。

在我的ApiConfiguration.java中,我希望在YAML上的列表中找到类似以下的内容:

@NotNull
@BundleNameValidation(acceptedValues = BundleName.class)
private List<String> bundleNames;

如果可能的话。

0 个答案:

没有答案