Author: tomdz Date: Sun Jun 15 20:23:02 2008 New Revision: 668047 URL: http://svn.apache.org/viewvc?rev=668047&view=rev Log: Implementation of DDLUTILS-209: Table.findForeignKey by name
Modified: db/ddlutils/trunk/src/main/java/org/apache/ddlutils/model/Table.java Modified: db/ddlutils/trunk/src/main/java/org/apache/ddlutils/model/Table.java URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/main/java/org/apache/ddlutils/model/Table.java?rev=668047&r1=668046&r2=668047&view=diff ============================================================================== --- db/ddlutils/trunk/src/main/java/org/apache/ddlutils/model/Table.java (original) +++ db/ddlutils/trunk/src/main/java/org/apache/ddlutils/model/Table.java Sun Jun 15 20:23:02 2008 @@ -616,7 +616,8 @@ } /** - * Finds the index with the specified name, using case insensitive matching. + * Finds the index with the specified name, using case sensitive or insensitive + * matching depending on the <code>caseSensitive</code> parameter. * Note that this method is not called getIndex to avoid introspection * problems. * @@ -626,23 +627,60 @@ */ public Index findIndex(String name, boolean caseSensitive) { + if (name == null) + { + throw new NullPointerException("The index name to search for cannot be null"); + } for (int idx = 0; idx < getIndexCount(); idx++) { Index index = getIndex(idx); - if (caseSensitive) + if ((caseSensitive && name.equals(index.getName())) || + (!caseSensitive && name.equalsIgnoreCase(index.getName()))) { - if (index.getName().equals(name)) - { - return index; - } + return index; } - else + } + return null; + } + + /** + * Finds the foreign key with the specified name, using case insensitive matching. + * Note that this method is not called getForeignKey to avoid introspection + * problems. + * + * @param name The name of the foreign key + * @return The foreign key or <code>null</code> if there is no such foreigb key + */ + public ForeignKey findForeignKey(String name) + { + return findForeignKey(name, false); + } + + /** + * Finds the foreign key with the specified name, using case sensitive or insensitive + * matching depending on the <code>caseSensitive</code> parameter. + * Note that this method is not called getForeignKey to avoid introspection + * problems. + * + * @param name The name of the foreign key + * @param caseSensitive Whether case matters for the names + * @return The foreign key or <code>null</code> if there is no such foreign key + */ + public ForeignKey findForeignKey(String name, boolean caseSensitive) + { + if (name == null) + { + throw new NullPointerException("The foreign key name to search for cannot be null"); + } + for (int idx = 0; idx < getForeignKeyCount(); idx++) + { + ForeignKey foreignKey = getForeignKey(idx); + + if ((caseSensitive && name.equals(foreignKey.getName())) || + (!caseSensitive && name.equalsIgnoreCase(foreignKey.getName()))) { - if (index.getName().equalsIgnoreCase(name)) - { - return index; - } + return foreignKey; } } return null;