in common/src/main/java/org/apache/rocketmq/eventbridge/tools/pattern/PatternConditionBuilder.java [86:120]
public PatternCondition build(final JsonElement jsonElement) {
AnythingButCondition butCondition = new AnythingButCondition();
if (jsonElement.isJsonPrimitive() || jsonElement.isJsonNull()) {
butCondition.addRuleCondition(new EqualCondition(jsonElement));
return butCondition;
}
if (jsonElement.isJsonObject()) {
final Set<Map.Entry<String, JsonElement>> entries = jsonElement.getAsJsonObject()
.entrySet();
for (final Map.Entry<String, JsonElement> elementEntry : entries) {
if (!(ComplexConditionBuilders.prefix.toString()
.equals(elementEntry.getKey()) || ComplexConditionBuilders.suffix.toString()
.equals(elementEntry.getKey()))) {
throw new InvalidEventPatternException(PatternErrorMessages.INVALID_NESTED_ANYTHING_BUT_CONDITION);
}
}
butCondition.addRuleCondition(PatternEvaluatorBuilder.parseCondition(jsonElement.getAsJsonObject()));
return butCondition;
}
if (jsonElement.isJsonArray()) {
for (final JsonElement element : jsonElement.getAsJsonArray()) {
if (element.isJsonNull() || element.isJsonPrimitive()) {
butCondition.addRuleCondition(new EqualCondition(element));
continue;
}
throw new InvalidEventPatternException(PatternErrorMessages.INVALID_ANYTHING_BUT_CONDITION);
}
return butCondition;
}
// Can't be here, throw a exception
throw new InvalidEventPatternException(PatternErrorMessages.INVALID_ANYTHING_BUT_CONDITION);
}