diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 7179b05bae..376a60ecb9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -14547,28 +14547,6 @@ public class DSL { return not(exists(query)); } - /** - * Create a unique condition. - *

- * UNIQUE ([query]) - */ - @NotNull - @Support - public static Condition unique(Select query) { - return new UniqueCondition(query); - } - - /** - * Create a not unique condition. - *

- * NOT UNIQUE ([query]) - */ - @NotNull - @Support - public static Condition notUnique(Select query) { - return not(unique(query)); - } - /** * Invert a boolean value. *

@@ -15687,6 +15665,24 @@ public class DSL { return new Not(arg1); } + /** + * The UNIQUE function. + */ + @NotNull + @Support + public static Condition unique(Select query) { + return new Unique(query); + } + + /** + * The NOT UNIQUE function. + */ + @NotNull + @Support + public static Condition notUnique(Select query) { + return not(unique(query)); + } + // ------------------------------------------------------------------------- // Numeric functions // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/impl/UniqueCondition.java b/jOOQ/src/main/java/org/jooq/impl/Unique.java similarity index 58% rename from jOOQ/src/main/java/org/jooq/impl/UniqueCondition.java rename to jOOQ/src/main/java/org/jooq/impl/Unique.java index fd079b607d..fb563daf56 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UniqueCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/Unique.java @@ -35,36 +35,52 @@ * * */ - package org.jooq.impl; -import static org.jooq.impl.DSL.count; -import static org.jooq.impl.DSL.exists; -import static org.jooq.impl.DSL.notExists; -import static org.jooq.impl.DSL.one; -import static org.jooq.impl.DSL.row; -import static org.jooq.impl.DSL.select; -import static org.jooq.impl.Keywords.K_NOT; -import static org.jooq.impl.Keywords.K_UNIQUE; -import static org.jooq.impl.Tools.visitSubquery; +import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; +import static org.jooq.impl.Keywords.*; +import static org.jooq.impl.Names.*; +import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; +import static org.jooq.impl.Tools.BooleanDataKey.*; +import static org.jooq.impl.Tools.DataExtendedKey.*; +import static org.jooq.impl.Tools.DataKey.*; +import static org.jooq.SQLDialect.*; + +import org.jooq.*; +import org.jooq.Record; +import org.jooq.conf.*; +import org.jooq.impl.*; +import org.jooq.tools.*; + +import java.util.*; -import org.jooq.Condition; -import org.jooq.Context; -import org.jooq.Field; -import org.jooq.Select; -import org.jooq.Table; /** - * @author Knut Wannheden + * The UNIQUE statement. */ -final class UniqueCondition extends AbstractCondition { +@SuppressWarnings({ "rawtypes", "unused" }) +final class Unique +extends + AbstractCondition +{ private final Select query; - UniqueCondition(Select query) { + Unique( + Select query + ) { + this.query = query; } + // ------------------------------------------------------------------------- + // XXX: QueryPart API + // ------------------------------------------------------------------------- + + + @Override final boolean isNullable() { return false; @@ -92,4 +108,21 @@ final class UniqueCondition extends AbstractCondition { break; } } + + + + // ------------------------------------------------------------------------- + // The Object API + // ------------------------------------------------------------------------- + + @Override + public boolean equals(Object that) { + if (that instanceof Unique) { + return + StringUtils.equals(query, ((Unique) that).query) + ; + } + else + return super.equals(that); + } }