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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
#include "field.h"
#include "filter.h"
namespace verbly {
filter field::operator==(int value) const
{
return filter(*this, filter::comparison::int_equals, value);
}
filter field::operator!=(int value) const
{
return filter(*this, filter::comparison::int_does_not_equal, value);
}
filter field::operator<(int value) const
{
return filter(*this, filter::comparison::int_is_less_than, value);
}
filter field::operator<=(int value) const
{
return filter(*this, filter::comparison::int_is_at_most, value);
}
filter field::operator>(int value) const
{
return filter(*this, filter::comparison::int_is_greater_than, value);
}
filter field::operator>=(int value) const
{
return filter(*this, filter::comparison::int_is_at_least, value);
}
filter field::operator==(part_of_speech value) const
{
return filter(*this, filter::comparison::int_equals, static_cast<int>(value));
}
filter field::operator==(positioning value) const
{
return filter(*this, filter::comparison::int_equals, static_cast<int>(value));
}
filter field::operator==(inflection value) const
{
return filter(*this, filter::comparison::int_equals, static_cast<int>(value));
}
filter field::operator==(bool value) const
{
return filter(*this, filter::comparison::boolean_equals, value);
}
filter field::operator==(std::string value) const
{
return filter(*this, filter::comparison::string_equals, std::move(value));
}
filter field::operator!=(std::string value) const
{
return filter(*this, filter::comparison::string_does_not_equal, std::move(value));
}
filter field::operator%=(std::string value) const
{
return filter(*this, filter::comparison::string_is_like, std::move(value));
}
field::operator filter() const
{
if (isJoin())
{
return filter(*this, filter::comparison::matches, filter());
} else {
return filter(*this, filter::comparison::is_not_null);
}
}
filter field::operator!() const
{
if (isJoin())
{
return filter(*this, filter::comparison::does_not_match, filter());
} else {
return filter(*this, filter::comparison::is_null);
}
}
filter field::operator%=(filter joinCondition) const
{
if (type_ == type::hierarchal_join)
{
return filter(*this, filter::comparison::hierarchally_matches, std::move(joinCondition));
} else {
return filter(*this, filter::comparison::matches, std::move(joinCondition));
}
}
};
|