Source code: com/flexstor/flexdbserver/disguise/BucketHelper.java
1 /*
2 * BucketHelper.java
3 *
4 * Copyright $Date: 2003/08/11 02:22:33 $ FLEXSTOR.net Inc.
5 *
6 * This work is licensed for use and distribution under license terms found at
7 * http://www.flexstor.org/license.html
8 *
9 */
10
11 package com.flexstor.flexdbserver.disguise;
12
13 import java.util.Iterator;
14 import java.util.Vector;
15
16 import com.flexstor.common.constants.SystemFieldsI;
17 import com.flexstor.common.data.ejb.search.MultiValueData;
18 import com.flexstor.common.data.ejb.search.SkeletonData;
19 import com.flexstor.common.data.ejb.search.SkeletonFieldData;
20 import com.flexstor.ejb.bucket.persist.ServerBucketExtendData;
21 import com.flexstor.ejb.field.persist.ServerFieldExtendData;
22
23 /**
24 * BucketFieldsFinder retrieves field information for buckets in a disguise
25 */
26 public class BucketHelper
27 extends DisguiseHelper
28 {
29 public final static int BY_NAME = 0;
30 public final static int BY_LABEL = 1;
31 public final static int BY_ID = 2;
32 public final static int BY_INDEX = 3;
33
34 private ServerBucketExtendData bucketExtend = null;
35
36 /**
37 * Loads the global disguise if it wasn't loaded previously
38 */
39 public BucketHelper( String sDisguiseName )
40 throws DisguiseLoaderException
41 {
42 super( sDisguiseName );
43 disguiseExtend.orderBuckets();
44 }
45
46 /**
47 * Loads the global disguise if it wasn't loaded previously
48 */
49 public BucketHelper( int nDisguiseId )
50 throws DisguiseLoaderException
51 {
52 super( nDisguiseId );
53 disguiseExtend.orderBuckets();
54 }
55
56 /**
57 * Load a bucket to be used during subsequent method calls
58 */
59 private boolean loadBucket( int nBucketDesc, int nMode )
60 {
61 switch (nMode)
62 {
63 case BY_ID:
64 if ( bucketExtend == null || bucketExtend.getId() != nBucketDesc )
65 {
66 bucketExtend = disguiseExtend.getServerBucketExtendDataObject( nBucketDesc );
67 if ( bucketExtend == null )
68 return false;
69 }
70 return true;
71 case BY_INDEX:
72 try
73 {
74 bucketExtend = (ServerBucketExtendData)disguiseExtend.getBucketDataObjects().elementAt(nBucketDesc);
75 return true;
76 }
77 catch( ArrayIndexOutOfBoundsException aioobe ) { return false; }
78 }
79 return false;
80 }
81
82 /**
83 * Load a bucket to be used during subsequent method calls
84 */
85 private boolean loadBucket( String sBucketDesc, int nMode )
86 {
87 Vector vBucketExtend;
88 switch (nMode)
89 {
90 case BY_NAME:
91 if ( bucketExtend != null && bucketExtend.getBucketName().equals(sBucketDesc) )
92 return true;
93
94 vBucketExtend = disguiseExtend.getBucketDataObjects();
95 for ( int i = 0; i < vBucketExtend.size(); i++ )
96 {
97 bucketExtend = (ServerBucketExtendData) vBucketExtend.elementAt(i);
98 if ( bucketExtend.getBucketName().equals( sBucketDesc ) )
99 return true;
100 }
101 break;
102 case BY_LABEL:
103 if ( bucketExtend != null && bucketExtend.getLabel().equals(sBucketDesc) )
104 return true;
105
106 vBucketExtend = disguiseExtend.getBucketDataObjects();
107 for ( int i = 0; i < vBucketExtend.size(); i++ )
108 {
109 bucketExtend = (ServerBucketExtendData) vBucketExtend.elementAt(i);
110 if ( bucketExtend.getLabel().equals( sBucketDesc ) )
111 return true;
112 }
113 break;
114 }
115 bucketExtend = null;
116 return false;
117 }
118
119 /**
120 * Retrieve the id of a bucket based on either the bucket name or label
121 * @param sBucketDesc - The name or label of the bucket containing the field
122 * @param nMode - if BY_NAME, sBucketDesc is the name of the bucket;
123 * if BY_LABEL, sBucketDesc is the label of the bucket
124 * @return The id of the bucket
125 */
126 public int getBucketId( String sBucketDesc, int nMode )
127 {
128 if ( loadBucket( sBucketDesc, nMode ) )
129 return bucketExtend.getId();
130 else
131 return -1;
132 }
133
134 /**
135 * Retrieve the id of a bucket based on its index
136 */
137 public int getBucketId( int nBucketIndex )
138 {
139 try
140 {
141 if ( loadBucket( nBucketIndex, BY_INDEX ) )
142 return bucketExtend.getId();
143 else
144 return -1;
145 }
146 catch ( IndexOutOfBoundsException ioobe ) { return -1; }
147 }
148
149 /**
150 * Retrieve the bucket type based on either the bucket name or label
151 * @param sBucketDesc - The name or label of the bucket containing the field
152 * @param nMode - if BY_NAME, sBucketDesc is the name of the bucket;
153 * if BY_LABEL, sBucketDesc is the label of the bucket
154 * @return The type of the bucket
155 */
156 public int getBucketType( String sBucketDesc, int nMode )
157 {
158 if ( loadBucket( sBucketDesc, nMode ) )
159 return bucketExtend.getBucketType();
160 else
161 return -1;
162 }
163
164 /**
165 * Retrieve the bucket type based on the bucket id or index
166 * @param nBucketDes - The id or index of the bucket
167 * @param nMode - if BY_ID, nBucketDesc is the id of the bucket
168 * if BY_INDEX, nBucketDesc is the index of the bucket
169 * @return the bucket type
170 */
171 public int getBucketType( int nBucketDesc, int nMode )
172 {
173 if ( loadBucket( nBucketDesc, nMode ) )
174 return bucketExtend.getBucketType();
175 else
176 return -1;
177 }
178
179 /**
180 * Retrieve the bucket level based on either the bucket name or label
181 * @param sBucketDesc - The name or label of the bucket containing the field
182 * @param nMode - if BY_NAME, sBucketDesc is the name of the bucket;
183 * if BY_LABEL, sBucketDesc is the label of the bucket
184 * @return The evel of the bucket
185 */
186 public int getBucketLevel( String sBucketDesc, int nMode )
187 {
188 if ( loadBucket( sBucketDesc, nMode ) )
189 return bucketExtend.getLevel();
190 else
191 return -1;
192 }
193
194 /**
195 * Retrieve the bucket level based on the bucket id or index
196 * @param nBucketDes - The id or index of the bucket
197 * @param nMode - if BY_ID, nBucketDesc is the id of the bucket
198 * if BY_INDEX, nBucketDesc is the index of the bucket
199 * @return the bucket level
200 */
201 public int getBucketLevel( int nBucketDesc, int nMode )
202 {
203 if ( loadBucket( nBucketDesc, nMode ) )
204 return bucketExtend.getLevel();
205 else
206 return -1;
207 }
208
209 /**
210 * Retrieve the ServerFieldExtendData based on either the field id or index
211 * @param nBucketDesc - The id or index of the bucket containing the field
212 * @param nBucketMode - if BY_ID, nBucketDesc is the id of the bucket
213 * if BY_INDEX, nBucketDesc is the index of the bucket
214 * @param nFieldDesc - The id or index of the field
215 * @param nFieldMode - if BY_ID, nFieldDesc is the field id;
216 * if BY_INDEX, sFieldDesc is the field index
217 * @return The ServerFieldExtendData for the field
218 */
219 public ServerFieldExtendData getFieldExtendDataObject( int nBucketDesc, int nBucketMode, int nFieldDesc, int nFieldMode )
220 {
221 if ( loadBucket( nBucketDesc, nBucketMode ) )
222 return getFieldExtendDataObject( nFieldDesc, nFieldMode );
223 else
224 return null;
225 }
226
227 /**
228 * Retrieve the ServerFieldExtendData based on either the field id or index
229 * @param sBucketDesc - The name or label of the bucket containing the field
230 * @param nBucketMode - if BY_NAME, sBucketDesc is the name of the bucket
231 * if BY_LABEL, sBucketDesc is the label of the bucket
232 * @param nFieldDesc - The id or index of the field
233 * @param nFieldMode - if BY_ID, nFieldDesc is the field id;
234 * if BY_INDEX, sFieldDesc is the field index
235 * @return The ServerFieldExtendData for the field
236 */
237 public ServerFieldExtendData getFieldExtendDataObject( String sBucketDesc, int nBucketMode, int nFieldDesc, int nFieldMode )
238 {
239 if ( loadBucket( sBucketDesc, nBucketMode ) )
240 return getFieldExtendDataObject( nFieldDesc, nFieldMode );
241 else
242 return null;
243 }
244
245 /**
246 * Retrieve the ServerFieldExtendData based on either the field id or index
247 * @param nFieldDesc - The id or index of the field
248 * @param nFieldMode - if BY_ID, nFieldDesc is the field id;
249 * if BY_INDEX, sFieldDesc is the field index
250 * @return The ServerFieldExtendData for the field
251 */
252 private ServerFieldExtendData getFieldExtendDataObject( int nFieldDesc, int nFieldMode )
253 {
254 Vector vFieldExtend = bucketExtend.getFieldDataObjects();
255 ServerFieldExtendData fieldExtend;
256 switch (nFieldMode)
257 {
258 case BY_ID:
259 for ( int i = 0; i < vFieldExtend.size(); i++ )
260 {
261 fieldExtend = (ServerFieldExtendData) vFieldExtend.elementAt(i);
262 if ( fieldExtend.getId() == nFieldDesc )
263 return fieldExtend;
264 }
265 break;
266 case BY_INDEX:
267 try
268 {
269 fieldExtend = (ServerFieldExtendData) vFieldExtend.elementAt(nFieldDesc);
270 return fieldExtend;
271 }
272 catch( ArrayIndexOutOfBoundsException aioobe ) { return null; }
273 }
274 return null;
275 }
276
277 /**
278 * Retrieve the ServerFieldExtendData based on either the field name or label
279 * @param sBucketDesc - The name or label of the bucket containing the field
280 * @param nBucketMode - if BY_NAME, sBucketDesc is the name of the bucket
281 * if BY_LABEL, sBucketDesc is the label of the bucket
282 * @param sFieldDesc - The name or label of the field
283 * @param nFieldMode - if BY_NAME, sFieldDesc is the name of the field;
284 * if BY_LABEL, sFieldDesc is the label of the field
285 * @return The ServerFieldExtendData for the field
286 */
287 public ServerFieldExtendData getFieldExtendDataObject( String sBucketDesc, int nBucketMode, String sFieldDesc, int nFieldMode )
288 {
289 if ( loadBucket( sBucketDesc, nBucketMode ) )
290 return getFieldExtendDataObject( sFieldDesc, nFieldMode );
291 else
292 return null;
293 }
294
295 /**
296 * Retrieve the ServerFieldExtendData based on either the field name or label
297 * @param nBucketDesc - The id or index of the bucket containing the field
298 * @param nBucketMode - if BY_ID, nBucketDesc is the id of the bucket
299 * if BY_INDEX, nBucketDesc is the index of the bucket
300 * @param sFieldDesc - The name or label of the field
301 * @param nFieldMode - if BY_NAME, sFieldDesc is the name of the field;
302 * if BY_LABEL, sFieldDesc is the label of the field
303 * @return The ServerFieldExtendData for the field
304 */
305 public ServerFieldExtendData getFieldExtendDataObject( int nBucketDesc, int nBucketMode, String sFieldDesc, int nFieldMode )
306 {
307 if ( loadBucket( nBucketDesc, nBucketMode ) )
308 return getFieldExtendDataObject( sFieldDesc, nFieldMode );
309 else
310 return null;
311 }
312
313 /**
314 * Retrieve the ServerFieldExtendData based on either the field name or label
315 * @param sFieldDesc - The name or label of the field
316 * @param nFieldMode - if BY_NAME, sFieldDesc is the name of the field;
317 * if BY_LABEL, sFieldDesc is the label of the field
318 * @return The ServerFieldExtendData for the field
319 */
320 private ServerFieldExtendData getFieldExtendDataObject( String sFieldDesc, int nFieldMode )
321 {
322 Vector vFieldExtend = bucketExtend.getFieldDataObjects();
323 ServerFieldExtendData fieldExtend;
324 for ( int i = 0; i < vFieldExtend.size(); i++ )
325 {
326 fieldExtend = (ServerFieldExtendData) vFieldExtend.elementAt(i);
327 switch (nFieldMode)
328 {
329 case BY_NAME:
330 if ( fieldExtend.getFieldName().equals( sFieldDesc ) )
331 return fieldExtend;
332 break;
333 case BY_LABEL:
334 if ( fieldExtend.getLabel().equals( sFieldDesc ) )
335 return fieldExtend;
336 break;
337 }
338 }
339 return null;
340 }
341
342 /**
343 * Retrieve the field id of a bucket based on either the field name or label
344 * @param sBucketDesc - The name or label of the bucket containing the field
345 * @param nBucketMode - if BY_NAME, sBucketDesc is the name of the bucket
346 * if BY_LABEL, sBucketDesc is the label of the bucket
347 * @param sFieldDesc - The name or label of the field
348 * @param nFieldMode - if BY_NAME, sFieldDesc is the name of the field;
349 * if BY_LABEL, sFieldDesc is the label of the field
350 * @return The id of the field
351 */
352 public int getFieldId( String sBucketDesc, int nBucketMode, String sFieldDesc, int nFieldMode )
353 {
354 if ( loadBucket( sBucketDesc, nBucketMode ) )
355 return getFieldId( sFieldDesc, nFieldMode );
356 else
357 return -1;
358 }
359
360 /**
361 * Retrieve the field id of a bucket based on either the field name or label
362 * @param nBucketDesc - The id or index of the bucket containing the field
363 * @param nBucketMode - if BY_ID, nBucketDesc is the id of the bucket
364 * if BY_INDEX, nBucketDesc is the index of the bucket
365 * @param sFieldDesc - The name or label of the field
366 * @param nFieldMode - if BY_NAME, sFieldDesc is the name of the field;
367 * if BY_LABEL, sFieldDesc is the label of the field
368 * @return The id of the field
369 */
370 public int getFieldId( int nBucketDesc, int nBucketMode, String sFieldDesc, int nFieldMode )
371 {
372 if ( loadBucket( nBucketDesc, nBucketMode ) )
373 return getFieldId( sFieldDesc, nFieldMode );
374 else
375 return -1;
376 }
377
378 /**
379 * This method assumes that bucketExtend is already loaded with a valid ServerBucketExtendData object.
380 */
381 private int getFieldId( String sFieldDesc, int nFieldMode )
382 {
383 ServerFieldExtendData fieldExtend = getFieldExtendDataObject( sFieldDesc, nFieldMode );
384 return fieldExtend == null ? -1 : fieldExtend.getId();
385 }
386
387 /**
388 * Retrieve the field label of a bucket based on either the field id or index
389 * @param nBucketDesc - The id or index of the bucket containing the field
390 * @param nBucketMode - if BY_ID, nBucketDesc is the id of the bucket
391 * if BY_INDEX, nBucketDesc is the index of the bucket
392 * @param nFieldDesc - The id or index of the field
393 * @param nFieldMode - if BY_ID, nFieldDesc is the field id;
394 * if BY_INDEX, sFieldDesc is the field index
395 * @return The label of the field
396 */
397 public String getFieldLabel( int nBucketDesc, int nBucketMode, int nFieldDesc, int nFieldMode )
398 {
399 if ( loadBucket( nBucketDesc, nBucketMode ) )
400 return getFieldLabel( nFieldDesc, nFieldMode );
401 else
402 return null;
403 }
404
405 /**
406 * Retrieve the field label of a bucket based on either the field id or index
407 * @param sBucketDesc - The name or label of the bucket containing the field
408 * @param nBucketMode - if BY_NAME, sBucketDesc is the name of the bucket
409 * if BY_LABEL, sBucketDesc is the label of the bucket
410 * @param nFieldDesc - The id or index of the field
411 * @param nFieldMode - if BY_ID, nFieldDesc is the field id;
412 * if BY_INDEX, sFieldDesc is the field index
413 * @return The label of the field
414 */
415 public String getFieldLabel( String sBucketDesc, int nBucketMode, int nFieldDesc, int nFieldMode )
416 {
417 if ( loadBucket( sBucketDesc, nBucketMode ) )
418 return getFieldLabel( nFieldDesc, nFieldMode );
419 else
420 return null;
421 }
422
423 /**
424 * This method assumes that bucketExtend is already loaded with a valid ServerBucketExtendData object.
425 */
426 private String getFieldLabel( int nFieldDesc, int nFieldMode )
427 {
428 ServerFieldExtendData fieldExtend = getFieldExtendDataObject( nFieldDesc, nFieldMode );
429 return fieldExtend == null ? null : fieldExtend.getLabel();
430 }
431
432 /**
433 * Get the field value stored in a SkeletonData object
434 * @param sBucketDesc - The name or label of the bucket containing the field
435 * @param nBucketMode - if BY_NAME, sBucketDesc is the name of the bucket
436 * if BY_LABEL, sBucketDesc is the label of the bucket
437 * @param sFieldDesc - The name or label of the field
438 * @param nFieldMode - if BY_NAME, sFieldDesc is the name of the field;
439 * if BY_LABEL, sFieldDesc is the label of the field
440 * @param skelData - The SkeletonData object containing values
441 * @param skelField - The SkeletonFieldData object used to retrieve the index in where
442 * the value should be found
443 * @return The value for the field being queried
444 */
445 public String getFieldData( String sBucketDesc, int nBucketMode, String sFieldDesc, int nFieldMode, SkeletonData skelData, SkeletonFieldData skelField )
446 {
447 if ( loadBucket( sBucketDesc, nBucketMode ) )
448 return getFieldData( sFieldDesc, nFieldMode, skelData, skelField );
449 else
450 return null;
451 }
452
453 /**
454 * Get the field value stored in a SkeletonData object
455 * @param nBucketDesc - The id or index of the bucket containing the field
456 * @param nBucketMode - if BY_ID, nBucketDesc is the id of the bucket
457 * if BY_INDEX, nBucketDesc is the index of the bucket
458 * @param sFieldDesc - The name or label of the field
459 * @param nFieldMode - if BY_NAME, sFieldDesc is the name of the field;
460 * if BY_LABEL, sFieldDesc is the label of the field
461 * @param skelData - The SkeletonData object containing values
462 * @param skelField - The SkeletonFieldData object used to retrieve the index in where
463 * the value should be found
464 * @return The value for the field being queried
465 */
466 public String getFieldData( int nBucketDesc, int nBucketMode, String sFieldDesc, int nFieldMode, SkeletonData skelData, SkeletonFieldData skelField )
467 {
468 if ( loadBucket( nBucketDesc, nBucketMode ) )
469 return getFieldData( sFieldDesc, nFieldMode, skelData, skelField );
470 else
471 return null;
472 }
473
474 /**
475 * This method assumes that bucketExtend is already loaded with a valid ServerBucketExtendData object.
476 */
477 private String getFieldData( String sFieldDesc, int nFieldMode, SkeletonData skelData, SkeletonFieldData skelField )
478 {
479 int[] nFieldIds = skelField.getFieldIds();
480 MultiValueData value;
481
482 // get the id and retrieve the index of the field id in the SkeletonFieldData array
483 int nExtendFieldId = getFieldId( sFieldDesc, nFieldMode );
484
485 if ( nExtendFieldId == -1 )
486 return null;
487
488 for ( int nIndex = 0; nIndex < nFieldIds.length; nIndex++ )
489 {
490 if ( nExtendFieldId == nFieldIds[nIndex] )
491 {
492 // from the SkeletonData, retrieve the value for the field asked
493 value = skelData.getData(nIndex);
494 return value.getFieldData()[0];
495 }
496 }
497 return null;
498 }
499
500 /**
501 * Retrieve an array of all field ids of a bucket based on either the field name or label
502 * @param nBucketDesc - The id or index of the bucket containing the field
503 * @param nBucketMode - if BY_ID, nBucketDesc is the id of the bucket
504 * if BY_INDEX, nBucketDesc is the index of the bucket
505 * @return A int[] with all the field ids for the bucket
506 */
507 public int[] getFieldIds( int nBucketDesc, int nBucketMode )
508 {
509 if ( loadBucket( nBucketDesc, nBucketMode ) )
510 return getFieldIds();
511 else
512 return null;
513 }
514
515 /**
516 * Retrieve an array of all field ids of a bucket based on either the field name or label
517 * @param sBucketDesc - The name or label of the bucket containing the field
518 * @param nBucketMode - if BY_NAME, sBucketDesc is the name of the bucket
519 * if BY_LABEL, sBucketDesc is the label of the bucket
520 * @return A int[] with all the field ids for the bucket
521 */
522 public int[] getFieldIds( String sBucketDesc, int nBucketMode )
523 {
524 if ( loadBucket( sBucketDesc, nBucketMode ) )
525 return getFieldIds();
526 else
527 return null;
528 }
529
530 /**
531 * This method assumes that bucketExtend is already loaded with a valid ServerBucketExtendData object.
532 */
533 private int[] getFieldIds()
534 {
535 Vector vFields = bucketExtend.getFieldDataObjects();
536 int[] iaFieldIds = new int[ vFields.size() ];
537
538 int idx = 0;
539 for ( Iterator i = vFields.iterator(); i.hasNext(); idx++ )
540 iaFieldIds[idx] = ((ServerFieldExtendData)i.next()).getId();
541
542 return iaFieldIds;
543 }
544
545 /**
546 * Retrieve the field index of a bucket based on either the field name or label
547 * @param sBucketDesc - The name or label of the bucket containing the field
548 * @param nBucketMode - if BY_NAME, sBucketDesc is the name of the bucket
549 * if BY_LABEL, sBucketDesc is the label of the bucket
550 * @param sFieldDesc - The name or label of the field
551 * @param nFieldMode - if BY_NAME, sFieldDesc is the name of the field;
552 * if BY_LABEL, sFieldDesc is the label of the field
553 * @return The index of the field
554 */
555 public int getFieldIndex( String sBucketDesc, int nBucketMode, String sFieldDesc, int nFieldMode )
556 {
557 if ( loadBucket( sBucketDesc, nBucketMode ) )
558 return getFieldIndex( sFieldDesc, nFieldMode );
559 else
560 return -1;
561 }
562
563 /**
564 * Retrieve the field index of a bucket based on either the field name or label
565 * @param nBucketDesc - The id or index of the bucket containing the field
566 * @param nBucketMode - if BY_ID, nBucketDesc is the id of the bucket
567 * if BY_INDEX, nBucketDesc is the index of the bucket
568 * @param sFieldDesc - The name or label of the field
569 * @param nFieldMode - if BY_NAME, sFieldDesc is the name of the field;
570 * if BY_LABEL, sFieldDesc is the label of the field
571 * @return The index of the field
572 */
573 public int getFieldIndex( int nBucketDesc, int nBucketMode, String sFieldDesc, int nFieldMode )
574 {
575 if ( loadBucket( nBucketDesc, nBucketMode ) )
576 return getFieldIndex( sFieldDesc, nFieldMode );
577 else
578 return -1;
579 }
580
581 /**
582 * This method assumes that bucketExtend is already loaded with a valid ServerBucketExtendData object.
583 */
584 private int getFieldIndex( String sFieldDesc, int nFieldMode )
585 {
586 Vector vFieldExtend = bucketExtend.getFieldDataObjects();
587 ServerFieldExtendData fieldExtend;
588 for ( int i = 0; i < vFieldExtend.size(); i++ )
589 {
590 fieldExtend = (ServerFieldExtendData) vFieldExtend.elementAt(i);
591 switch (nFieldMode)
592 {
593 case BY_NAME:
594 if ( fieldExtend.getFieldName().equals( sFieldDesc ) )
595 return vFieldExtend.indexOf(fieldExtend);
596 break;
597 case BY_LABEL:
598 if ( fieldExtend.getLabel().equals( sFieldDesc ) )
599 return vFieldExtend.indexOf(fieldExtend);
600 break;
601 }
602 }
603 return -1;
604 }
605
606 /**
607 * Retrieve a list of field ids used as the skeleton fields for an asset
608 * @return a array of integer containing the skeleton field ids
609 */
610 public int[] getAssetSkeletonFieldIds()
611 {
612 loadBucket( "ASSET", BY_NAME );
613 return new int[] { getFieldId( SystemFieldsI.SERVER, BY_NAME ),
614 getFieldId( SystemFieldsI.LOCATION, BY_NAME ),
615 getFieldId( SystemFieldsI.FILENAME, BY_NAME ),
616 getFieldId( SystemFieldsI.APPLETALKVENDOR, BY_NAME ),
617 getFieldId( SystemFieldsI.ASSETROLEID, BY_NAME ),
618 getFieldId( SystemFieldsI.CHECKEDOUTSTATUS, BY_NAME ),
619 getFieldId( SystemFieldsI.ASSETROLEID, BY_NAME ),
620 getFieldId( SystemFieldsI.VERSIONNO, BY_NAME ) };
621 }
622 }