@SuppressWarnings("rawtypes")
    @Override
    public boolean check(SourceData sourceData, int rowIndex, Context context) {
        Object leftValue = this.leftParser.parse(sourceData, rowIndex, context);
        Object rightValue = this.rightParser.parse(sourceData, rowIndex, context);
        boolean res;

        if (leftValue == null && rightValue == null) {
            res = false;
        } else if (leftValue == null || rightValue == null) {
            res = true;
        } else {
            res = OperatorTools.compareValue((Comparable) leftValue, (Comparable) rightValue) != 0;
        }

        return isNot != res;
    }
DistinctOperator
description: value1 IS (NOT) DISTINCT FROM value2--Returns TRUE if two values are different.
             NULL values are treated as identical here.
for example: 1 IS DISTINCT FROM NULL returns TRUE;
             NULL IS DISTINCT FROM NULL returns FALSE.
             1 IS NOT DISTINCT FROM NULL returns FALSE;
             NULL IS NOT DISTINCT FROM NULL returns TRUE.
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/operator/DistinctOperator.java