1
2
3
4
5
6
7
8
9 package org.jomc.modlet;
10
11 import java.util.ArrayList;
12 import java.util.Iterator;
13 import java.util.List;
14 import javax.annotation.Generated;
15 import javax.xml.bind.annotation.XmlAccessType;
16 import javax.xml.bind.annotation.XmlAccessorType;
17 import javax.xml.bind.annotation.XmlElement;
18 import javax.xml.bind.annotation.XmlType;
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 @XmlAccessorType(XmlAccessType.FIELD)
43 @XmlType(name = "Modlets", namespace = "http://jomc.org/modlet", propOrder = {
44 "modlet"
45 })
46 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-01T02:20:36+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
47 public class Modlets
48 extends ModletObject
49 implements Cloneable
50 {
51
52 @XmlElement(namespace = "http://jomc.org/modlet")
53 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-01T02:20:36+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
54 protected List<Modlet> modlet;
55
56
57
58
59
60 public Modlets() {
61
62 super();
63 }
64
65
66
67
68
69
70
71
72
73
74 public Modlets(final Modlets o) {
75
76 super(o);
77 if (o == null) {
78 throw new NullPointerException("Cannot create a copy of 'Modlets' from 'null'.");
79 }
80
81 if (o.modlet!= null) {
82 copyModlet(o.getModlet(), this.getModlet());
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 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-01T02:20:36+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
109 public List<Modlet> getModlet() {
110 if (modlet == null) {
111 modlet = new ArrayList<Modlet>();
112 }
113 return this.modlet;
114 }
115
116
117
118
119
120
121
122
123
124
125
126 @SuppressWarnings("unchecked")
127 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-01T02:20:36+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
128 private static void copyModlet(final List<Modlet> source, final List<Modlet> target) {
129
130 if ((source!= null)&&(!source.isEmpty())) {
131 for (final Iterator<?> it = source.iterator(); it.hasNext(); ) {
132 final Object next = it.next();
133 if (next instanceof Modlet) {
134
135 target.add(((Modlet) next).clone());
136 continue;
137 }
138
139 throw new AssertionError((("Unexpected instance '"+ next)+"' for property 'Modlet' of class 'org.jomc.modlet.Modlets'."));
140 }
141 }
142 }
143
144
145
146
147
148
149
150
151 @Override
152 @Generated(value = "com.sun.tools.xjc.Driver", date = "2012-04-01T02:20:36+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
153 public Modlets clone() {
154 {
155
156 final Modlets clone = ((Modlets) super.clone());
157
158 if (this.modlet!= null) {
159 clone.modlet = null;
160 copyModlet(this.getModlet(), clone.getModlet());
161 }
162 return clone;
163 }
164 }
165
166
167
168
169
170
171
172
173
174
175
176
177
178 public Modlet getModlet( final String name )
179 {
180 if ( name == null )
181 {
182 throw new NullPointerException( "name" );
183 }
184
185 for ( int i = 0, s0 = this.getModlet().size(); i < s0; i++ )
186 {
187 final Modlet m = this.getModlet().get( i );
188
189 if ( name.equals( m.getName() ) )
190 {
191 return m;
192 }
193 }
194
195 return null;
196 }
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211 public Modlet getMergedModlet( final String name, final String model )
212 {
213 if ( name == null )
214 {
215 throw new NullPointerException( "name" );
216 }
217 if ( model == null )
218 {
219 throw new NullPointerException( "model" );
220 }
221
222 final Modlet mergedModlet = new Modlet();
223 mergedModlet.setName( name );
224 mergedModlet.setModel( model );
225
226 for ( int i = 0, s0 = this.getModlet().size(); i < s0; i++ )
227 {
228 final Modlet m = this.getModlet().get( i );
229
230 if ( model.equals( m.getModel() ) )
231 {
232 if ( m.getSchemas() != null )
233 {
234 if ( mergedModlet.getSchemas() == null )
235 {
236 mergedModlet.setSchemas( new Schemas() );
237 }
238
239 for ( int j = 0, s1 = m.getSchemas().getSchema().size(); j < s1; j++ )
240 {
241 final Schema s = m.getSchemas().getSchema().get( j );
242
243 if ( mergedModlet.getSchemas().getSchemaBySystemId( s.getSystemId() ) == null )
244 {
245 mergedModlet.getSchemas().getSchema().add( s );
246 }
247 }
248 }
249
250 if ( m.getServices() != null )
251 {
252 if ( mergedModlet.getServices() == null )
253 {
254 mergedModlet.setServices( new Services() );
255 }
256
257 for ( int j = 0, s1 = m.getServices().getService().size(); j < s1; j++ )
258 {
259 final Service s = m.getServices().getService().get( j );
260 boolean merged = false;
261
262 for ( Service mergedService : mergedModlet.getServices().getServices( s.getIdentifier() ) )
263 {
264 if ( mergedService.getClazz().equals( s.getClazz() ) )
265 {
266 if ( mergedService.getOrdinal() < s.getOrdinal() )
267 {
268 mergedService.setOrdinal( s.getOrdinal() );
269 }
270
271 merged = true;
272 }
273 }
274
275 if ( !merged )
276 {
277 mergedModlet.getServices().getService().add( s );
278 }
279 }
280 }
281 }
282 }
283
284 return mergedModlet;
285 }
286
287
288
289
290
291
292
293
294
295
296
297
298
299 public Schemas getSchemas( final String model )
300 {
301 if ( model == null )
302 {
303 throw new NullPointerException( "model" );
304 }
305
306 final Schemas schemas = new Schemas();
307 final String projectName = getMessage( "projectName" );
308
309 for ( int i = 0, s0 = this.getModlet().size(); i < s0; i++ )
310 {
311 final Modlet m = this.getModlet().get( i );
312
313 if ( m.getSchemas() != null && ( m.getName().equals( projectName ) || model.equals( m.getModel() ) ) )
314 {
315 for ( int j = 0, s1 = m.getSchemas().getSchema().size(); j < s1; j++ )
316 {
317 schemas.getSchema().add( m.getSchemas().getSchema().get( j ) );
318 }
319 }
320 }
321
322 return schemas.getSchema().isEmpty() ? null : schemas;
323 }
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339 public Schemas getSchemas( final java.net.URI publicId )
340 {
341 if ( publicId == null )
342 {
343 throw new NullPointerException( "publicId" );
344 }
345
346 final Schemas schemas = new Schemas();
347
348 for ( int i = 0, s0 = this.getModlet().size(); i < s0; i++ )
349 {
350 final Modlet m = this.getModlet().get( i );
351
352 if ( m.getSchemas() != null )
353 {
354 schemas.getSchema().addAll( m.getSchemas().getSchemasByPublicId( publicId ) );
355 }
356 }
357
358 return schemas.getSchema().isEmpty() ? null : schemas;
359 }
360
361
362
363
364
365
366
367
368
369
370
371
372
373 public Services getServices( final String model )
374 {
375 if ( model == null )
376 {
377 throw new NullPointerException( "model" );
378 }
379
380 final Services services = new Services();
381 final String projectName = getMessage( "projectName" );
382
383 for ( int i = 0, s0 = this.getModlet().size(); i < s0; i++ )
384 {
385 final Modlet m = this.getModlet().get( i );
386
387 if ( m.getServices() != null && ( m.getName().equals( projectName ) || model.equals( m.getModel() ) ) )
388 {
389 for ( int j = 0, s1 = m.getServices().getService().size(); j < s1; j++ )
390 {
391 services.getService().add( m.getServices().getService().get( j ) );
392 }
393 }
394 }
395
396 return services.getService().isEmpty() ? null : services;
397 }
398
399 private static String getMessage( final String key, final Object... args )
400 {
401 return java.text.MessageFormat.format( java.util.ResourceBundle.getBundle(
402 ModelContext.class.getName().replace( '.', '/' ), java.util.Locale.getDefault() ).getString( key ), args );
403
404 }
405
406 }