Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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 }