You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2012/06/29 14:50:04 UTC
svn commit: r1355345 - in
/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db:
DBRelation.java DBTable.java
Author: doebele
Date: Fri Jun 29 12:50:03 2012
New Revision: 1355345
URL: http://svn.apache.org/viewvc?rev=1355345&view=rev
Log:
EMPIREDB-149
added method "getForeignKeyRelations" to DBTable
Modified:
empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBRelation.java
empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBTable.java
Modified: empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBRelation.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBRelation.java?rev=1355345&r1=1355344&r2=1355345&view=diff
==============================================================================
--- empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBRelation.java (original)
+++ empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBRelation.java Fri Jun 29 12:50:03 2012
@@ -140,6 +140,25 @@ public class DBRelation extends DBObject
{
return references;
}
+
+ /**
+ * Returns the table that is containing the foreign key (source table)
+ * @return true if the relation's source table is the given table
+ */
+ public DBTable getForeignKeyTable()
+ {
+ return (DBTable)references[0].getSourceColumn().getRowSet();
+ }
+
+ /**
+ * Returns the table that is referenced by this foreign key relation (target table)
+ * @return true if the relation's target table
+ */
+ public DBTable getReferencedTable()
+ {
+ return (DBTable)references[0].getTargetColumn().getRowSet();
+ }
+
@Override
public DBDatabase getDatabase()
@@ -192,5 +211,33 @@ public class DBRelation extends DBObject
{
setOnDeleteAction(DBCascadeAction.CASCADE_RECORDS);
}
+
+ @Override
+ public String toString()
+ {
+ StringBuilder b = new StringBuilder();
+ b.append("\"");
+ b.append(this.getForeignKeyTable().getName());
+ b.append("\" CONSTRAINT \"");
+ b.append(this.name);
+ b.append("\" FOREIGN KEY (");
+ for (int i=0; i<references.length; i++)
+ {
+ b.append((i>0) ? ", \"" : "\"");
+ b.append(references[i].getSourceColumn().getName());
+ b.append("\"");
+ }
+ b.append(") REFERENCES \"");
+ b.append(this.getReferencedTable().getName());
+ b.append("\" (");
+ for (int i=0; i<references.length; i++)
+ {
+ b.append((i>0) ? ", \"" : "\"");
+ b.append(references[i].getTargetColumn().getName());
+ b.append("\"");
+ }
+ b.append(")");
+ return b.toString();
+ }
}
\ No newline at end of file
Modified: empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBTable.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBTable.java?rev=1355345&r1=1355344&r2=1355345&view=diff
==============================================================================
--- empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBTable.java (original)
+++ empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBTable.java Fri Jun 29 12:50:03 2012
@@ -509,5 +509,20 @@ public class DBTable extends DBRowSet im
throw new RecordUpdateInvalidException(this, key);
}
}
+
+ /**
+ * Returns a list of all foreign key relations for this table
+ * @return the list of foreign key relations
+ */
+ public List<DBRelation> getForeignKeyRelations()
+ {
+ List<DBRelation> relations = new ArrayList<DBRelation>();
+ for (DBRelation r : getDatabase().getRelations())
+ { // check relation
+ if (this.equals(r.getForeignKeyTable()))
+ relations.add(r);
+ }
+ return relations;
+ }
}
\ No newline at end of file