From b100f91d2144ae4111fb48aad5c0ff27ee5daa07 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sun, 10 Mar 2013 12:40:38 +0100 Subject: [PATCH] [#2328] Pull up UpdatableTable.getKeys() and getReferencesFrom() methods to Table --- jOOQ-test/src/org/jooq/test/h2/create.sql | 8 +++++++ jOOQ/src/main/java/org/jooq/Table.java | 21 +++++++++++++++++ .../main/java/org/jooq/UpdatableTable.java | 23 ------------------- .../java/org/jooq/impl/AbstractTable.java | 19 +++++++++++++++ .../src/main/java/org/jooq/impl/MetaImpl.java | 12 ---------- .../org/jooq/impl/UpdatableTableImpl.java | 19 --------------- 6 files changed, 48 insertions(+), 54 deletions(-) diff --git a/jOOQ-test/src/org/jooq/test/h2/create.sql b/jOOQ-test/src/org/jooq/test/h2/create.sql index 25302fa56d..4a6700c59b 100644 --- a/jOOQ-test/src/org/jooq/test/h2/create.sql +++ b/jOOQ-test/src/org/jooq/test/h2/create.sql @@ -46,6 +46,14 @@ DROP TABLE IF EXISTS t_877/ DROP TABLE IF EXISTS t_booleans/ DROP TABLE IF EXISTS t_identity/ DROP TABLE IF EXISTS t_identity_pk/ +DROP TABLE IF EXISTS t_2327_uk_only/ + +CREATE TABLE t_2327_uk_only ( + id INTEGER, + + CONSTRAINT uk_t_2327_uk_only UNIQUE (id) +) +/ CREATE TABLE t_identity_pk ( id INTEGER AUTO_INCREMENT, diff --git a/jOOQ/src/main/java/org/jooq/Table.java b/jOOQ/src/main/java/org/jooq/Table.java index d30faee90f..25fe1c64c3 100644 --- a/jOOQ/src/main/java/org/jooq/Table.java +++ b/jOOQ/src/main/java/org/jooq/Table.java @@ -167,6 +167,27 @@ public interface Table extends TableLike { */ Identity getIdentity(); + /** + * Retrieve all of the table's unique keys. + * + * @return All keys. This is never null. This is never empty + * for {@link UpdatableTable}s because an updatable table always has + * at least a primary key. This method returns an unmodifiable list. + */ + List> getKeys(); + + /** + * Get a list of FOREIGN KEY's of a specific table, referencing + * a this table. + * + * @param The other table's record type + * @param other The other table of the foreign key relationship + * @return Some other table's FOREIGN KEY's towards an this + * table. This is never null. This method returns an + * unmodifiable list. + */ + List> getReferencesFrom(Table other); + /** * Get the list of FOREIGN KEY's of this table * diff --git a/jOOQ/src/main/java/org/jooq/UpdatableTable.java b/jOOQ/src/main/java/org/jooq/UpdatableTable.java index 05f941cd14..62124bf1e4 100644 --- a/jOOQ/src/main/java/org/jooq/UpdatableTable.java +++ b/jOOQ/src/main/java/org/jooq/UpdatableTable.java @@ -35,8 +35,6 @@ */ package org.jooq; -import java.util.List; - import org.jooq.conf.Settings; /** @@ -57,27 +55,6 @@ public interface UpdatableTable extends Table { */ UniqueKey getPrimaryKey(); - /** - * Retrieve all of the table's unique keys. - * - * @return All keys. This is never null or empty, because - * {@link UpdatableTable}'s always have at least a primary key. This - * method returns an unmodifiable list. - */ - List> getKeys(); - - /** - * Get a list of FOREIGN KEY's of a specific table, referencing - * a this table. - * - * @param The other table's record type - * @param other The other table of the foreign key relationship - * @return Some other table's FOREIGN KEY's towards an this - * table. This is never null. This method returns an - * unmodifiable list. - */ - List> getReferencesFrom(Table other); - /** * A "version" field holding record version information used for optimistic * locking diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java index 675a3b435b..345aea5d98 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java @@ -59,6 +59,7 @@ import org.jooq.TableLike; import org.jooq.TableOnStep; import org.jooq.TableOptionalOnStep; import org.jooq.TablePartitionByStep; +import org.jooq.UniqueKey; import org.jooq.tools.StringUtils; /** @@ -162,6 +163,24 @@ abstract class AbstractTable extends AbstractQueryPart impleme return null; } + /** + * {@inheritDoc} + *

+ * Subclasses should override this method + */ + @Override + public List> getKeys() { + return Collections.emptyList(); + } + + /** + * {@inheritDoc} + */ + @Override + public final List> getReferencesFrom(Table other) { + return other.getReferencesTo(this); + } + /** * {@inheritDoc} *

diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java index c68ef7b599..b674045f70 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java @@ -41,14 +41,12 @@ import static org.jooq.impl.Factory.fieldByName; import java.sql.DatabaseMetaData; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; import org.jooq.Catalog; import org.jooq.DataType; -import org.jooq.ForeignKey; import org.jooq.Meta; import org.jooq.Record; import org.jooq.Result; @@ -317,16 +315,6 @@ class MetaImpl implements Meta { return null; } - @Override - public final List> getKeys() { - return Collections.emptyList(); - } - - @Override - public final List> getReferencesFrom(Table other) { - return other.getReferencesTo(this); - } - @Override public final TableField getRecordVersion() { return null; diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdatableTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdatableTableImpl.java index 862b41d32c..0e2b5a42f9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UpdatableTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UpdatableTableImpl.java @@ -35,10 +35,6 @@ */ package org.jooq.impl; -import java.util.Collections; -import java.util.List; - -import org.jooq.ForeignKey; import org.jooq.Record; import org.jooq.Schema; import org.jooq.Table; @@ -82,16 +78,6 @@ public class UpdatableTableImpl extends TableImpl implement return null; } - /** - * {@inheritDoc} - *

- * Subclasses should override this method - */ - @Override - public List> getKeys() { - return Collections.emptyList(); - } - /** * {@inheritDoc} *

@@ -111,9 +97,4 @@ public class UpdatableTableImpl extends TableImpl implement public TableField getRecordTimestamp() { return null; } - - @Override - public final List> getReferencesFrom(Table other) { - return other.getReferencesTo(this); - } }