Avalia se um valor é válido com base em um padrão ou em uma lista de padrões.
Tipo: value_evaluation_handler
Atributos
As explicações dos Atributos são as seguintes:
para_avaliar: A entrada precisa corresponder ao padrão /s definido. Se corresponder, a entrada é válida.
avaliação_de_palavra_código: A entrada da fala só será verificada se este atributo for definido. Pode ser uma string vazia. Se um comando de entrada de fala começar com a palavra-chave dada, o resto do comando será usado para avaliação.
- Requerido: falso
- Valor padrão: nenhum
Eventos
O manipulador emite os seguintes eventos:
VÁLIDO
: Se a entrada fornecida corresponder ao padrão.ALREADY_VALID
: Se a entrada fornecida corresponder a um padrão que já foi validado com sucesso.ALL_VALID
: Quando todos os elementos da coleção "to_evaluate" tiverem sido validados com sucesso.INVÁLIDO
: Se a entrada fornecida não corresponder a nenhum padrão.
A estrutura de carga útil é como no evento de exemplo abaixo:
{
"command": "VALID",
"device":
{
"modality": "value-evaluation",
"name": "value-evaluation",
"source": "value-evaluation",
"descriptor": "value-evaluation"
},
"payload":
{
"code": "i am legend"
}
}
{
"command": "INVALID",
"device":
{
"modality": "value-evaluation",
"name": "value-evaluation",
"source": "value-evaluation",
"descriptor": "value-evaluation"
},
"payload":
{
}
}
Exemplo
<context>
<param name="validations" type="string"></param>
</context>
<handlers>
<value_evaluation_handler>
<code_word_extraction>validate</code_word_extraction>
<list name="to_evaluate" listType="UNNAMED">
<elem>machine .+</elem>
<elem>station .+</elem>
</list>
</value_evaluation_handler>
</handlers>
<states>
<onevent>
<rule id="is_valid">
<expression>
<![CDATA[ #{event(value-evaluation):command} == 'VALID' ]]>
</expression>
<actions>
<setvar id="add_validation">
<context_of>step</context_of>
<context_update>
<param name="validations" type="string">#{validations} #{event:payload.code}</param>
</context_update>
</setvar>
</actions>
</rule>
<rule id="all_valid">
<expression>
<![CDATA[ #{event(value-evaluation):command} == 'ALL_VALID' ]]>
</expression>
<actions>
<finish_workflow id="exit"/>
</actions>
</rule>
<rule id="invalid_input">
<expression>
<![CDATA[ #{event(value-evaluation):command} == 'INVALID' ]]>
</expression>
<actions>
<ui_notification id="invalid_value" type="ERROR" duration="SHORT" show_immediately="true">
<message>"Not a valid value!</message>
</ui_notification>
</actions>
</rule>
</onevent>
</states>