Some progress toward implementing store(Analysis).
[cfb.git] / prod / net / jaekl / cfb / db / Table.java
index a68784223e6c716d919b0d58add30dd8520e015d..e20552daa109e4af9133618b95b8502cb151b5bb 100644 (file)
@@ -4,20 +4,30 @@ package net.jaekl.cfb.db;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 
 public class Table {
        String m_name;
+       HashMap<String, Column> m_columnsByName;
        ArrayList<Column> m_columns;
        
        public Table(String name, Column[] columns) {
                m_name = name;
-               m_columns = new ArrayList<Column>(Arrays.asList(columns));              
+
+               m_columns = new ArrayList<Column>();
+               m_columns.addAll(Arrays.asList(columns));
+
+               m_columnsByName = new HashMap<String, Column>();
+               for (int i = 0; i < columns.length; ++i) {
+                       m_columnsByName.put(columns[i].getName(), columns[i]);
+               }
        }
        
        public String getName() { return m_name; }
        public int getNumColumns() { return m_columns.size(); }
        public Column getColumn(int idx) { return m_columns.get(idx); }
-       
+       public Column getColumn(String name) { return m_columnsByName.get(name); }
+
        // Construct a table from an array of objects like this:
        // {
        //   { table_name },