Я пытаюсь улучшить и упростить часть своего кода, используя ограничение Java Validation (@NonNull, @Min и т. Д.), Но в моем коде есть один повторяющийся случай, когда я не могу понять, как его использовать аннотация ограничения.
Вот пример:
public class ResourceIdentifier {
public enum ResourceType { ARTICLE, USER, COMMENT }
private @Getter @Setter String id;
private @Getter @Setter ResourceType type;
}
Тогда я бы хотел проверить объект MyCommand, чтобы resourceId
не было нулевым, а resourceId.type
могло быть только ARTICLE
или COMMENT
.
public class MyCommand {
@NotNull
@Validate(path="#resourceId.type", values={ResourceIdentifier.ResourceType.ARTICLE, ResourceIdentifier.ResourceType.COMMENT})
private ResourceIdentifier resourceId;
(...)
}
Я полагаю, что могу добиться этого с помощью пользовательской аннотации и отражения проверки ограничений.
Есть ли другой простой способ?
РЕДАКТИРОВАТЬ: представьте, что у меня есть 10-20 других командных классов, требующих проверки того же типа resourceId.type = {}