Filter

[ Schnittstelle ]

export interface Filter extends Array<Comparison | LogicOperator | Filter> { }

Definiert einen Satz von Bedingungen, die ein Objekt erfüllen muss.

Ein Filter ist ein Array, dass Comparisons, LogicOperators und weitere Filter enthalten kann. Zwischen zwei Comparisons, zwei Filtern oder einer Comparison und einem Filter muss immer ein LogicOperator stehen. Auf diese Weise wird ein logischer Ausdruck gebildet, wobei verschachtelte Filter die Funktion von Klammern erfüllen.

Beispiel – JavaScript

var filter = [
    {
        path: 'domain',
        comparator: '==',
        value: 'TcHmiEventLogger'
    },
    {
        logic: 'AND'
    },
    {
        path: 'severity',
        comparator: '>=',
        value: TcHmi.Server.Events.Severity.Warning
    },
    {
        logic: 'OR',
    },
    {
        path: 'type',
        comparator: '==',
        value: TcHmi.Server.Events.Type.Alarm
    },
    {
        logic: 'AND'
    },
    [
        {
            path: 'timeConfirmed',
            comparator: '==',
            value: new Date(0)
        },
        {
            logic: 'OR'
        },
        {
            path: 'timeConfirmed',
            comparator: '==',
            value: new Date(0)
        }
    ]
]

In diesem Beispiel werden Events gefiltert. Alle Events des EventLoggers mit einer Severity von Warnung oder höher sowie alle Alarme, die nicht quittiert oder nicht gelöscht wurden, passen durch diesen Filter. Der Filter entspricht diesem logischen Ausdruck:

event.domain == 'TcHmiEventLogger'
&& event.severity >= 2
|| event.type == 1
&& (
    event.timeConfirmed.getTime() == 0
    || event.timeCleared.getTime() == 0
)
Filter 1:

Verfügbar ab Version 1.10