From d82d95ef78e0cc31f08e833ef6f1cee776177d26 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 28 Sep 2012 17:41:09 +0200 Subject: [PATCH] [#1848] Add Record.changed() to indicate whether a Record contains "dirty" values --- .../org/jooq/test/_/testcases/RecordTests.java | 15 +++++++++++++++ jOOQ-test/src/org/jooq/test/jOOQAbstractTest.java | 5 +++++ jOOQ/src/main/java/org/jooq/Record.java | 11 +++++++++++ .../main/java/org/jooq/impl/AbstractRecord.java | 11 +++++++++++ 4 files changed, 42 insertions(+) diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/RecordTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/RecordTests.java index 2944fe9175..634d4ae8e3 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/RecordTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/RecordTests.java @@ -36,6 +36,8 @@ package org.jooq.test._.testcases; import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertTrue; import org.jooq.TableRecord; import org.jooq.UpdatableRecord; @@ -80,13 +82,26 @@ extends BaseTest { */ Record original(); + /** + * Check if this record has been changed from its original as fetched from + * the database. + *

+ * If this returns false, then it can be said that + * record.equals(record.original()) is true. + * + * @see #original() + */ + boolean changed(); + /** * Convert this record into an array. *

diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java index 8202044dd8..077c0b5a9d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRecord.java @@ -609,6 +609,17 @@ abstract class AbstractRecord extends AbstractStore implements Record { return result; } + @Override + public final boolean changed() { + for (Value value : getValues()) { + if (value.isChanged()) { + return true; + } + } + + return false; + } + @Override public final Object[] intoArray() { return into(Object[].class);