/** * INTERNAL: * Return a vector of the foreign key fields in the same order * as the corresponding primary key fields are in their descriptor. */ public Vector getOrderedForeignKeyFields() { List primaryKeyFields = getPrimaryKeyDescriptor().getPrimaryKeyFields(); Vector result = new Vector(primaryKeyFields.size()); for (int index = 0; index < primaryKeyFields.size(); index++) { DatabaseField pkField = (DatabaseField)primaryKeyFields.get(index); boolean found = false; for (Iterator fkStream = this.getForeignKeysToPrimaryKeys().keySet().iterator(); fkStream.hasNext();) { DatabaseField fkField = (DatabaseField)fkStream.next(); if (this.getForeignKeysToPrimaryKeys().get(fkField).equals(pkField)) { found = true; result.addElement(fkField); break; } } if (!found) { throw DescriptorException.missingForeignKeyTranslation(this, pkField); } } return result; }