aboutsummaryrefslogtreecommitdiff
path: root/ql/types/undefined.py
blob: 2deafe0202918355b7cf7d5d5f4d553c3831b2ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from gui.widgets.label import Label
from ql.ast.nodes.expressions.literals.undefined_literal import UndefinedNode
from ql.types.boolean import QLBoolean
from ql.types.type import QLType


class QLUndefined(QLType):
    def __init__(self, *unused):
        super(QLUndefined, self).__init__()
        self.__value = None

    @property
    def value(self):
        return self.__value

    def __bool__(self):
        return False

    def __repr__(self):
        return 'Undefined'

    def __eq__(self, other):
        if isinstance(other, QLUndefined):
            return QLBoolean(self.value == other.value)

        return QLBoolean(False)

    def __ne__(self, other):
        return QLBoolean(not self == other)

    def get_json_value(self):
        return self.value

    @staticmethod
    def get_literal_node(unused):
        return UndefinedNode(None, QLUndefined, QLUndefined(None))

    @staticmethod
    def pyqt5_default_widget():
        return Label('Undefined')