Change schema definition mechanism, to simplify references to table columns in SQL...
[cfb.git] / prod / net / jaekl / cfb / db / Table.java
index 64b2caadddad54518131825d04bbe14b79f4ad2a..7e16cd5a839c6b3ce16ff1a367177a7398ffbdf6 100644 (file)
@@ -1,20 +1,32 @@
 package net.jaekl.cfb.db;
 
+// Copyright (C) 2015 Christian Jaekl
+
 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:
        // {