-
Notifications
You must be signed in to change notification settings - Fork 5
/
ObservableValueSelector.java
145 lines (123 loc) · 5.19 KB
/
ObservableValueSelector.java
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package org.genericsystem.reactor.model;
import java.util.function.Function;
import org.genericsystem.common.Generic;
public interface ObservableValueSelector extends Function<Generic[], Generic> {
public static class STRICT_ATTRIBUTE_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[0].getComponents().size() < 2 ? gs[0] : null;
}
}
public static class RELATION_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[0].getComponents().size() >= 2 ? gs[0] : null;
}
}
public static class STRICT_ATTRIBUTE_SELECTOR_OR_CHECK_BOX_DISPLAYER implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[1].getComponents().size() < 2 || Boolean.class.equals(gs[1].getInstanceValueClassConstraint()) ? gs[0] : null;
}
}
public static class STRICT_ATTRIBUTE_SELECTOR_OR_CHECK_BOX_DISPLAYER_ATTRIBUTE implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[0].getComponents().size() < 2 || Boolean.class.equals(gs[0].getInstanceValueClassConstraint()) ? gs[0] : null;
}
}
public static class CHECK_BOX_DISPLAYER implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return Boolean.class.equals(gs[1].getInstanceValueClassConstraint()) ? gs[0] : null;
}
}
public static class CHECK_BOX_DISPLAYER_ATTRIBUTE implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return Boolean.class.equals(gs[0].getInstanceValueClassConstraint()) ? gs[0] : null;
}
}
public static class LABEL_DISPLAYER implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[1].getComponents().size() == 1 && !gs[1].isHidden() && !Boolean.class.equals(gs[1].getInstanceValueClassConstraint()) ? gs[0] : null;
}
}
public static class LABEL_DISPLAYER_ATTRIBUTE implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[0].getComponents().size() == 1 && !gs[0].isHidden() && !Boolean.class.equals(gs[0].getInstanceValueClassConstraint()) ? gs[0] : null;
}
}
public static class PASSWORD_INSTANCE_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[1].isHidden() ? gs[0] : null;
}
}
public static class NON_PASSWORD_INSTANCE_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return !gs[1].isHidden() ? gs[0] : null;
}
}
public static class PASSWORD_ATTRIBUTE_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[0].isHidden() ? gs[0] : null;
}
}
public static class NON_PASSWORD_ATTRIBUTE_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return !gs[0].isHidden() ? gs[0] : null;
}
}
public static class DIRECT_RELATION_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[1].isReferentialIntegrityEnabled(gs[1].getComponents().indexOf(gs[0])) ? gs[0] : null;
}
}
public static class REVERSED_RELATION_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return !gs[1].isReferentialIntegrityEnabled(gs[1].getComponents().indexOf(gs[0])) && !gs[0].getLinks(gs[2]).isEmpty() ? gs[0] : null;
}
}
public static class MULTICHECKBOX_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
Generic component = gs[0].getComponents().stream().filter(c -> gs[2].inheritsFrom(c)).findFirst().get();
return !gs[0].isHidden() && gs[0].getComponents().size() == 2 && !gs[0].isSingularConstraintEnabled(gs[0].getComponents().indexOf(component)) ? gs[0] : null;
}
}
public static class NON_MULTICHECKBOX_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
Generic component = gs[0].getComponents().stream().filter(c -> gs[2].inheritsFrom(c)).findFirst().get();
return !gs[0].isHidden() && (gs[0].getComponents().size() != 2 || gs[0].isSingularConstraintEnabled(gs[0].getComponents().indexOf(component))) ? gs[0] : null;
}
}
public static class MULTICHECKBOX_SELECTOR_RELATION implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
Generic component = gs[0].getComponents().stream().filter(c -> gs[1].inheritsFrom(c)).findFirst().get();
return !gs[1].isHidden() && gs[0].getComponents().size() == 2 && !gs[0].isSingularConstraintEnabled(gs[0].getComponents().indexOf(component)) ? gs[0] : null;
}
}
public static class NON_MULTICHECKBOX_SELECTOR_RELATION implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
Generic component = gs[0].getComponents().stream().filter(c -> gs[1].inheritsFrom(c)).findFirst().get();
return !gs[1].isHidden() && (gs[0].getComponents().size() != 2 || gs[0].isSingularConstraintEnabled(gs[0].getComponents().indexOf(component))) ? gs[0] : null;
}
}
public static class TYPE_SELECTOR implements ObservableValueSelector {
@Override
public Generic apply(Generic[] gs) {
return gs[1];
}
}
}