View Javadoc

1   package net.sf.tomp.djunit.simple;
2   
3   import net.sf.tomp.djunit.RecordMetadata;
4   
5   import java.util.ArrayList;
6   import java.util.HashMap;
7   import java.util.List;
8   import java.util.Map;
9   
10  public class RecordMetadataImpl implements RecordMetadata
11  {
12      protected Map name2index = new HashMap();
13      protected List index2name = new ArrayList();
14      protected List index2class = new ArrayList();
15  
16      public void addField(String name, Class cls)
17      {
18          name2index.put(name, new Integer(fieldCount()));
19          index2name.add(name);
20          index2class.add(cls);
21      }
22  
23      public int fieldCount()
24      {
25          return index2name.size();
26      }
27  
28      public String fieldNameAt(int i)
29      {
30          return (String) index2name.get(i);
31      }
32  
33      public Class fieldClassAt(int i)
34      {
35          return (Class) index2class.get(i);
36      }
37  
38      public boolean hasField(String name)
39      {
40          return name2index.get(name) != null;
41      }
42  
43      public int fieldIndex(String name)
44      {
45          if (hasField(name))
46          {
47              return ((Integer) (name2index.get(name))).intValue();
48          }
49          else
50          {
51              throw new IllegalArgumentException("Record of type " + this
52                  + " does not have field " + name);
53          }
54      }
55  }