public void merge(DataTable table) {
        if (table != null && table != this) {
            String columnName;
            for (int i = 0, size = table.columns.size(); i < size; i++) {
                columnName = table.columns.get(i).getColumnName();
                if (!this.columns.contains(columnName)) {
                    this.columns.add(columnName);
                }
            }
            DataRow dr;
            for (int i = 0, size = table.rows.size(); i < size; i++) {
                dr = newRow(false);
                for (int j = 0, count = this.columns.size(); j < count; j++) {
                    columnName = this.columns.get(i).getColumnName();
                    dr.put(columnName, table.rows.get(i).getValue(columnName));
                }
                this.rows.add(dr);
            }
        }
    }