/** Performs a deep clone of the record */
 public Object clone() {
   ColumnInfoRecordsAggregate rec = new ColumnInfoRecordsAggregate();
   for (int k = 0; k < records.size(); k++) {
     ColumnInfoRecord ci = records.get(k);
     rec.records.add((ColumnInfoRecord) ci.clone());
   }
   return rec;
 }
 /**
  * Finds the <tt>ColumnInfoRecord</tt> which contains the specified columnIndex
  *
  * @param columnIndex index of the column (not the index of the ColumnInfoRecord)
  * @return <code>null</code> if no column info found for the specified column
  */
 public ColumnInfoRecord findColumnInfo(int columnIndex) {
   int nInfos = records.size();
   for (int i = 0; i < nInfos; i++) {
     ColumnInfoRecord ci = getColInfo(i);
     if (ci.containsColumn(columnIndex)) {
       return ci;
     }
   }
   return null;
 }
 public static int compareColInfos(ColumnInfoRecord a, ColumnInfoRecord b) {
   return a.getFirstColumn() - b.getFirstColumn();
 }