static public function buildExpression($property, $operator, $parameter = null)
    {
        FilterOperator::isValid($operator, true);

        $expr = new Expr();
        switch (intval($operator)) {
            case FilterOperator::NOT_EQUAL:
                return $expr->neq($property, $parameter);
            case FilterOperator::LOWER_THAN:
                return $expr->lt($property, $parameter);
            case FilterOperator::LOWER_THAN_OR_EQUAL:
                return $expr->lte($property, $parameter);
            case FilterOperator::GREATER_THAN:
                return $expr->gt($property, $parameter);
            case FilterOperator::GREATER_THAN_OR_EQUAL:
                return $expr->gte($property, $parameter);
            case FilterOperator::IN:
                return $expr->in($property, $parameter);
            case FilterOperator::NOT_IN:
                return $expr->notIn($property, $parameter);
            case FilterOperator::MEMBER:
                return $expr->isMemberOf($parameter, $property);
            case FilterOperator::NOT_MEMBER:
                return $expr->not($expr->isMemberOf($parameter, $property));
            case FilterOperator::LIKE:
                return $expr->like($property, $parameter);
            case FilterOperator::NOT_LIKE:
                return $expr->notLike($property, $parameter);
            case FilterOperator::START_WITH:
                return $expr->like($property, $parameter);
            case FilterOperator::NOT_START_WITH:
                return $expr->notLike($property, $parameter);
            case FilterOperator::END_WITH:
                return $expr->like($property, $parameter);
            case FilterOperator::NOT_END_WITH:
                return $expr->notLike($property, $parameter);
            case FilterOperator::IS_NULL:
                return $expr->isNull($property);
            case FilterOperator::IS_NOT_NULL:
                return $expr->isNotNull($property);
            default:
                return $expr->eq($property, $parameter);
        }
    }