如何在条件为真或错误时在一组枚举中显示不同的文本
为了验证从用户回答问题的规则,请考虑Java Spring Boot应用程序中的以下枚举集;每当用户回答前端的问题时,就会发射验证。验证涉及所有规则(在此处记录的要多):
public enum AngebotValidationRule implements ValidationRule<Angebot> {
BERATUNG_KRANKENTAGEGELD_PFLICHTFELD(
FEHLERTEXT_BERATUNGSFRAGE_PFLICHTFELD,
MessageType.ERROR,
((angebot, services) ->
ToggleContextHolder.getToggleManager().isOn(Toggle.CROSS_SELLING)
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== null),
false),
BERATUNG_KRANKENTAGEGELD_CROSSSELLING(
Constants.HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING,
MessageType.INFO,
((angebot, services) ->
(ToggleContextHolder.getToggleManager().isOn(Toggle.CROSS_SELLING)
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== BeratungAbsicherung.GEWUENSCHT),
false),
BERATUNG_KRANKENTAGEGELD_CROSSSELLING_MONOLITH(
Constants.HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING_MONOLITH,
MessageType.INFO,
((angebot, services) ->
(ToggleContextHolder.getToggleManager().isOff(Toggle.CROSS_SELLING))
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== BeratungAbsicherung.GEWUENSCHT),
false),
static class Constants {
public static final String FEHLERTEXT_BERATUNGSFRAGE_PFLICHTFELD =
"Some terrific text here!";
public static final String HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING =
"Some other terrific text here!";
public static final String HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING_MONOLITH =
"Another terrific text here";
}
}
我需要在Enum beratung_krankentagegeld_crosssellow中实现IF -ELSE或开关条件,因此,每当togglemanager打开或关闭时 - 显示了不同的文本 - 显示了不同的文本:
BERATUNG_KRANKENTAGEGELD_CROSSSELLING(
Constants.HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING,
MessageType.INFO,
((angebot, services) ->
(ToggleContextHolder.getToggleManager().isOn(Toggle.CROSS_SELLING)
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== BeratungAbsicherung.GEWUENSCHT),
false),
BERATUNG_KRANKENTAGEGELD_CROSSSELLING(
Constants.HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING_MONOLITH,
MessageType.INFO,
((angebot, services) ->
(ToggleContextHolder.getToggleManager().isOff(Toggle.CROSS_SELLING))
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== BeratungAbsicherung.GEWUENSCHT),
false),
I需要将逻辑与这两个验证规则与相同名称相结合,因为我不能在一组枚举中具有两个具有相同名称的枚举。
我该如何实现? 任何提示或帮助都将不胜感激,谢谢!
In order to validate rules to answers from users to questions, consider the following set of Enums in a Java Spring Boot application; the validation is fired whenever a user answers a question in the frontend. The validation goes through all the rules (many more than documented here):
public enum AngebotValidationRule implements ValidationRule<Angebot> {
BERATUNG_KRANKENTAGEGELD_PFLICHTFELD(
FEHLERTEXT_BERATUNGSFRAGE_PFLICHTFELD,
MessageType.ERROR,
((angebot, services) ->
ToggleContextHolder.getToggleManager().isOn(Toggle.CROSS_SELLING)
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== null),
false),
BERATUNG_KRANKENTAGEGELD_CROSSSELLING(
Constants.HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING,
MessageType.INFO,
((angebot, services) ->
(ToggleContextHolder.getToggleManager().isOn(Toggle.CROSS_SELLING)
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== BeratungAbsicherung.GEWUENSCHT),
false),
BERATUNG_KRANKENTAGEGELD_CROSSSELLING_MONOLITH(
Constants.HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING_MONOLITH,
MessageType.INFO,
((angebot, services) ->
(ToggleContextHolder.getToggleManager().isOff(Toggle.CROSS_SELLING))
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== BeratungAbsicherung.GEWUENSCHT),
false),
static class Constants {
public static final String FEHLERTEXT_BERATUNGSFRAGE_PFLICHTFELD =
"Some terrific text here!";
public static final String HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING =
"Some other terrific text here!";
public static final String HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING_MONOLITH =
"Another terrific text here";
}
}
I need to implement an if-else or switch-condition in the Enum BERATUNG_KRANKENTAGEGELD_CROSSSELLING, so that - whenever a ToggleManager is on or off - a different text is displayed:
BERATUNG_KRANKENTAGEGELD_CROSSSELLING(
Constants.HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING,
MessageType.INFO,
((angebot, services) ->
(ToggleContextHolder.getToggleManager().isOn(Toggle.CROSS_SELLING)
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== BeratungAbsicherung.GEWUENSCHT),
false),
BERATUNG_KRANKENTAGEGELD_CROSSSELLING(
Constants.HINWEISTEXT_KRANKENTAGEGELD_CROSSSELLING_MONOLITH,
MessageType.INFO,
((angebot, services) ->
(ToggleContextHolder.getToggleManager().isOff(Toggle.CROSS_SELLING))
&& angebot
.getOrCreateBeratungsfrageByType(BeratungsfrageType.KRANKENTAGEGELD)
.getAbsicherung()
== BeratungAbsicherung.GEWUENSCHT),
false),
I need to combine the Logic in these two Validation Rules with the same name, as I cannot have two Enums with the same name in a Set of Enums.
How can I achieve that?
Any hints or help would be very much appreciated, thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
试试这个
Try this