1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package org.modeshape.graph.connector;
25
26 import net.jcip.annotations.Immutable;
27
28
29
30
31
32
33
34 @Immutable
35 public class RepositorySourceCapabilities {
36
37
38
39
40 public static final boolean DEFAULT_SUPPORT_SAME_NAME_SIBLINGS = true;
41
42
43
44
45 public static final boolean DEFAULT_SUPPORT_UPDATES = false;
46
47
48
49
50 public static final boolean DEFAULT_SUPPORT_EVENTS = false;
51
52
53
54
55 public static final boolean DEFAULT_SUPPORT_CREATING_WORKSPACES = false;
56
57
58
59
60 public static final boolean DEFAULT_SUPPORT_REFERENCES = true;
61
62
63
64
65 public static final boolean DEFAULT_SUPPORT_QUERIES = false;
66
67
68
69
70 public static final boolean DEFAULT_SUPPORT_SEARCHES = false;
71
72
73
74
75 public static final boolean DEFAULT_SUPPORT_LOCKS = false;
76
77 private final boolean sameNameSiblings;
78 private final boolean updates;
79 private final boolean events;
80 private final boolean creatingWorkspaces;
81 private final boolean references;
82 private final boolean locks;
83 private final boolean queries;
84 private final boolean searches;
85
86
87
88
89 public RepositorySourceCapabilities() {
90 this(DEFAULT_SUPPORT_SAME_NAME_SIBLINGS, DEFAULT_SUPPORT_UPDATES, DEFAULT_SUPPORT_EVENTS,
91 DEFAULT_SUPPORT_CREATING_WORKSPACES, DEFAULT_SUPPORT_REFERENCES, DEFAULT_SUPPORT_LOCKS, DEFAULT_SUPPORT_QUERIES,
92 DEFAULT_SUPPORT_SEARCHES);
93 }
94
95 public RepositorySourceCapabilities( RepositorySourceCapabilities capabilities ) {
96 this(capabilities.supportsSameNameSiblings(), capabilities.supportsUpdates(), capabilities.supportsEvents(),
97 capabilities.supportsCreatingWorkspaces(), capabilities.supportsReferences(), capabilities.supportsLocks(),
98 capabilities.supportsQueries(), capabilities.supportsSearches());
99 }
100
101 public RepositorySourceCapabilities( boolean supportsSameNameSiblings,
102 boolean supportsUpdates ) {
103 this(supportsSameNameSiblings, supportsUpdates, DEFAULT_SUPPORT_EVENTS, DEFAULT_SUPPORT_CREATING_WORKSPACES,
104 DEFAULT_SUPPORT_REFERENCES, DEFAULT_SUPPORT_LOCKS, DEFAULT_SUPPORT_QUERIES, DEFAULT_SUPPORT_SEARCHES);
105 }
106
107 public RepositorySourceCapabilities( boolean supportsSameNameSiblings,
108 boolean supportsUpdates,
109 boolean supportsEvents,
110 boolean supportsCreatingWorkspaces,
111 boolean supportsReferences ) {
112 this(supportsSameNameSiblings, supportsUpdates, supportsEvents, supportsCreatingWorkspaces, supportsReferences,
113 DEFAULT_SUPPORT_LOCKS, DEFAULT_SUPPORT_QUERIES, DEFAULT_SUPPORT_SEARCHES);
114 }
115
116 public RepositorySourceCapabilities( boolean supportsSameNameSiblings,
117 boolean supportsUpdates,
118 boolean supportsEvents,
119 boolean supportsCreatingWorkspaces,
120 boolean supportsReferences,
121 boolean supportsLocks,
122 boolean supportsQueries,
123 boolean supportsSearches ) {
124
125 this.sameNameSiblings = supportsSameNameSiblings;
126 this.updates = supportsUpdates;
127 this.events = supportsEvents;
128 this.creatingWorkspaces = supportsCreatingWorkspaces;
129 this.references = supportsReferences;
130 this.locks = supportsLocks;
131 this.queries = supportsQueries;
132 this.searches = supportsSearches;
133 }
134
135
136
137
138
139
140 public boolean supportsSameNameSiblings() {
141 return sameNameSiblings;
142 }
143
144
145
146
147
148
149
150
151 public boolean supportsUpdates() {
152 return updates;
153 }
154
155
156
157
158
159
160 public boolean supportsReferences() {
161 return references;
162 }
163
164
165
166
167
168
169 public boolean supportsEvents() {
170 return events;
171 }
172
173
174
175
176
177
178 public boolean supportsCreatingWorkspaces() {
179 return creatingWorkspaces;
180 }
181
182
183
184
185
186
187 public boolean supportsLocks() {
188 return locks;
189 }
190
191
192
193
194
195
196 public boolean supportsQueries() {
197 return queries;
198 }
199
200
201
202
203
204
205 public boolean supportsSearches() {
206 return searches;
207 }
208 }