private List columnMatches(Column[] myPkColumns, int offset, ForeignKey key) { if (key.getColumnSpan() > (myPkColumns.length - offset)) { return null; // not enough columns in the key } List columns = new ArrayList(); for (int j = 0; j < key.getColumnSpan(); j++) { Column column = myPkColumns[j + offset]; if (!column.equals(key.getColumn(j))) { return null; } else { columns.add(column); } } return columns.isEmpty() ? null : columns; }