Применяется только первая соответствующая <table>
спецификация.
Как работают эти стратегии сопоставления, только первая <table>
спецификация, <expression>
которой совпадают, применяется к сгенерированному артефакту. Последующие совпадения игнорируются. Это означает, что вы не можете объединить различные спецификации <recordImplements/>
. Вместо этого вам придется добавить еще одну спецификацию, которая соответствует обоим вашим регулярным выражениям в начале, например:
<generator>
<strategy>
<matchers>
<tables>
<table>
<expression>REGEX_A.*REGEX_B|REGEX_B.*REGEX_A</expression>
<recordImplements>com.test.IFoo, com.test.IBar</recordImplements>
</table>
<table>
<expression>REGEX_A</expression>
<recordImplements>com.test.IFoo</recordImplements>
</table>
<table>
<expression>REGEX_B</expression>
<recordImplements>com.test.IBar</recordImplements>
</table>
</tables>
</matchers>
</strategy>
</generator>
Почему бы не объединить различные спецификации <table>
?
Для <recordImplements/>
, кажется полезным иметь возможность объединить две соответствующие <table>
спецификации сопоставителя и позволить результирующим записям соответствовать всем спецификациям реализации интерфейса.
Однако это неверно для всех других возможных элементов внутри <table>
, например <tableClass>
, <tableIdentifier>
, et c., Поэтому к любой таблице применяется только выражение соответствия первое . Чтобы не усложнять эту функцию без необходимости, применяется только первое выражение соответствия.