Я создал приложение Mule, которое берет данные из некоторых каналов json и преобразует их с помощью специального преобразователя, который я сделал для создания класса.
У меня есть родительский класс Event
и два подкласса, которые унаследованы от него: Event1
и Event2
. Класс возврата моего пользовательского преобразователя (auto-transformer
) — Event
.
Я использую компонент управления потоком выбора, поэтому при достижении определенного значения данных для Event1
отправляется письмо, а при достижении определенного значения данных для Event2
отправляется другое письмо.
В Event1
я определил метод getThisData()
, а в Event2
я определил getThatData()
.
Когда я использую #[payload.getThisData()]
, все работает, значение проверяется, и почта отправляется, если условие истинно.
Однако для ветки Event2
это не работает. Это дает мне ошибку. Он пытается найти getThatData()
в классе Event1
и, очевидно, его не существует.
Как я могу это исправить? Как я могу получить значение из getThatData()
?
Я использую MuleStudio.
<processor-chain>
<auto-transformer returnClass="events.Event" name="JSONToEvent"></auto-transformer>
<logger level="INFO" doc:name="Logger"/>
<choice doc:name="Choice">
<when expression="#[payload.getThisData()>1200]">
<twitter:update-status config-ref="Twitter" status="Value reached"/>
</when>
<when expression="#[payload.getThatData()>11]">
<twitter:update-status config-ref="Twitter" status="The other value reached"/>
</when>
<otherwise>
<twitter:update-status config-ref="Twitter" status="#[payload]" doc:name="Normal"/>
</otherwise>
</choice>
</processor-chain>