From cb306cbb6cefe0327f4502e6ab187f12c4ad37c5 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Mon, 15 May 2017 15:55:24 +0200 Subject: [PATCH] [#5645] Add DSL.localDateAdd() localDateSub(), localDateDiff() --- jOOQ/src/main/java/org/jooq/impl/DSL.java | 374 ++++++++++-------- jOOQ/src/main/java/org/jooq/impl/DateAdd.java | 2 +- .../src/main/java/org/jooq/impl/DateDiff.java | 10 +- jOOQ/src/main/resources/META-INF/ABOUT.txt | 2 +- 4 files changed, 210 insertions(+), 178 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 8da7aec6b4..3f350b0b94 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -11979,6 +11979,30 @@ public class DSL { return dateDiff(nullSafe(date1), Tools.field(date2)); } + /** + * Get the date difference in number of days. + *

+ * This translates into any dialect + * + * @see Field#sub(Field) + */ + @Support + public static Field dateDiff(Date date1, Field date2) { + return dateDiff(Tools.field(date1), nullSafe(date2)); + } + + /** + * Get the date difference in number of days. + *

+ * This translates into any dialect + * + * @see Field#sub(Field) + */ + @Support + public static Field dateDiff(Field date1, Field date2) { + return new DateDiff(nullSafe(date1), nullSafe(date2)); + } + /** * Add an interval to a date. *

@@ -12107,30 +12131,6 @@ public class DSL { return new DateAdd(nullSafe(date), nullSafe(interval).neg(), datePart); } - /** - * Get the date difference in number of days. - *

- * This translates into any dialect - * - * @see Field#sub(Field) - */ - @Support - public static Field dateDiff(Date date1, Field date2) { - return dateDiff(Tools.field(date1), nullSafe(date2)); - } - - /** - * Get the date difference in number of days. - *

- * This translates into any dialect - * - * @see Field#sub(Field) - */ - @Support - public static Field dateDiff(Field date1, Field date2) { - return new DateDiff(nullSafe(date1), nullSafe(date2)); - } - /** * Add an interval to a timestamp. *

@@ -12247,6 +12247,186 @@ public class DSL { return new TimestampDiff(nullSafe(timestamp1), nullSafe(timestamp2)); } + + + /** + * Get the date difference in number of days. + *

+ * This translates into any dialect + * + * @see Field#sub(Field) + */ + @Support + public static Field localDateDiff(LocalDate date1, LocalDate date2) { + return localDateDiff(Tools.field(date1), Tools.field(date2)); + } + + /** + * Get the date difference in number of days. + *

+ * This translates into any dialect + * + * @see Field#sub(Field) + */ + @Support + public static Field localDateDiff(Field date1, LocalDate date2) { + return localDateDiff(nullSafe(date1), Tools.field(date2)); + } + + /** + * Get the date difference in number of days. + *

+ * This translates into any dialect + * + * @see Field#sub(Field) + */ + @Support + public static Field localDateDiff(LocalDate date1, Field date2) { + return localDateDiff(Tools.field(date1), nullSafe(date2)); + } + + /** + * Get the date difference in number of days. + *

+ * This translates into any dialect + * + * @see Field#sub(Field) + */ + @Support + public static Field localDateDiff(Field date1, Field date2) { + return new DateDiff(nullSafe(date1), nullSafe(date2)); + } + + /** + * Add an interval to a date. + *

+ * This translates into any dialect + * + * @see Field#add(Number) + */ + @Support + public static Field localDateAdd(LocalDate date, Number interval) { + return localDateAdd(Tools.field(date), Tools.field(interval)); + } + + /** + * Add an interval to a date. + *

+ * This translates into any dialect + * + * @see Field#add(Field) + */ + @Support + public static Field localDateAdd(Field date, Field interval) { + return nullSafe(date).add(interval); + } + + /** + * Add an interval to a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field localDateAdd(LocalDate date, Number interval, DatePart datePart) { + return localDateAdd(Tools.field(date), Tools.field(interval), datePart); + } + + /** + * Add an interval to a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field localDateAdd(LocalDate date, Field interval, DatePart datePart) { + return localDateAdd(Tools.field(date), nullSafe(interval), datePart); + } + + /** + * Add an interval to a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field localDateAdd(Field date, Number interval, DatePart datePart) { + return localDateAdd(nullSafe(date), Tools.field(interval), datePart); + } + + /** + * Add an interval to a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field localDateAdd(Field date, Field interval, DatePart datePart) { + return new DateAdd(nullSafe(date), nullSafe(interval), datePart); + } + + /** + * Subtract an interval from a date. + *

+ * This translates into any dialect + * + * @see Field#add(Number) + */ + @Support + public static Field localDateSub(LocalDate date, Number interval) { + return localDateSub(Tools.field(date), Tools.field(interval)); + } + + /** + * Subtract an interval from a date. + *

+ * This translates into any dialect + * + * @see Field#add(Field) + */ + @Support + public static Field localDateSub(Field date, Field interval) { + return nullSafe(date).sub(interval); + } + + /** + * Subtract an interval from a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field localDateSub(LocalDate date, Number interval, DatePart datePart) { + return localDateSub(Tools.field(date), Tools.field(interval), datePart); + } + + /** + * Subtract an interval from a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field localDateSub(LocalDate date, Field interval, DatePart datePart) { + return localDateSub(Tools.field(date), nullSafe(interval), datePart); + } + + /** + * Subtract an interval from a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field localDateSub(Field date, Number interval, DatePart datePart) { + return localDateSub(nullSafe(date), Tools.field(interval), datePart); + } + + /** + * Subtract an interval from a date, given a date part. + *

+ * This translates into any dialect + */ + @Support + public static Field localDateSub(Field date, Field interval, DatePart datePart) { + return new DateAdd(nullSafe(date), nullSafe(interval).neg(), datePart); + } + + + /** * Truncate a date to the beginning of the day. */ @@ -12690,152 +12870,6 @@ public class DSL { return new DateOrTime(field, SQLDataType.LOCALDATE); } - /** - * Get the date difference in number of days. - * - * @see Field#sub(Field) - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateDiff(LocalDate date1, LocalDate date2) { - return localDateDiff(Tools.field(date1), Tools.field(date2)); - } - - /** - * Get the date difference in number of days. - * - * @see Field#sub(Field) - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateDiff(Field date1, LocalDate date2) { - return localDateDiff(nullSafe(date1), Tools.field(date2)); - } - - /** - * Get the date difference in number of days. - * - * @see Field#sub(Field) - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateDiff(LocalDate date1, Field date2) { - return localDateDiff(Tools.field(date1), nullSafe(date2)); - } - - /** - * Get the date difference in number of days. - * - * @see Field#sub(Field) - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateDiff(Field date1, Field date2) { - return new LocalDateDiff(nullSafe(date1), nullSafe(date2)); - } - - /** - * Add an interval to a {@link LocalDate}. - * - * @see Field#add(Number) - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateAdd(LocalDate date, Number interval) { - return localDateAdd(Tools.field(date), Tools.field(interval)); - } - - /** - * Add an interval to a {@link LocalDate}. - * - * @see Field#add(Field) - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateAdd(Field date, Field interval) { - return nullSafe(date).add(interval); - } - - /** - * Add an interval to {@link LocalDate}, given a date part. - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateAdd(LocalDate date, Number interval, DatePart datePart) { - return localDateAdd(Tools.field(date), Tools.field(interval), datePart); - } - - /** - * Add an interval to a {@link LocalDate}, given a date part. - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateAdd(LocalDate date, Field interval, DatePart datePart) { - return localDateAdd(Tools.field(date), nullSafe(interval), datePart); - } - - /** - * Add an interval to a {@link LocalDate}, given a date part. - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateAdd(Field date, Number interval, DatePart datePart) { - return localDateAdd(nullSafe(date), Tools.field(interval), datePart); - } - - /** - * Add an interval to a {@link LocalDate}, given a date part. - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateAdd(Field date, Field interval, - DatePart datePart) { - return new LocalDateAdd(nullSafe(date), nullSafe(interval), datePart); - } - - /** - * Subtract an interval from a {@link LocalDate}. - * - * @see Field#add(Number) - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateSub(LocalDate date, Number interval) { - return localDateSub(Tools.field(date), Tools.field(interval)); - } - - /** - * Subtract an interval from a {@link LocalDate}. - * - * @see Field#add(Field) - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateSub(Field date, Field interval) { - return nullSafe(date).sub(interval); - } - - /** - * Subtract an interval from a {@link LocalDate}, given a date part. - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateSub(LocalDate date, Number interval, DatePart datePart) { - return localDateSub(Tools.field(date), Tools.field(interval), datePart); - } - - /** - * Subtract an interval from a {@link LocalDate}, given a date part. - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateSub(LocalDate date, Field interval, DatePart datePart) { - return localDateSub(Tools.field(date), nullSafe(interval), datePart); - } - - /** - * Subtract an interval from a {@link LocalDate}, given a date part. - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateSub(Field date, Number interval, DatePart datePart) { - return localDateSub(nullSafe(date), Tools.field(interval), datePart); - } - - /** - * Subtract an interval from a {@link LocalDate}, given a date part. - */ - @Support({ CUBRID, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE }) - public static Field localDateSub(Field date, Field interval, - DatePart datePart) { - return new LocalDateAdd(nullSafe(date), nullSafe(interval).neg(), datePart); - } - /** * Convert a string value to a TIME. */ diff --git a/jOOQ/src/main/java/org/jooq/impl/DateAdd.java b/jOOQ/src/main/java/org/jooq/impl/DateAdd.java index bc2b5b3db2..32cb62faf4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DateAdd.java +++ b/jOOQ/src/main/java/org/jooq/impl/DateAdd.java @@ -48,7 +48,7 @@ import org.jooq.QueryPart; /** * @author Lukas Eder */ -final class DateAdd extends AbstractFunction { +final class DateAdd extends AbstractFunction { /** * Generated UID diff --git a/jOOQ/src/main/java/org/jooq/impl/DateDiff.java b/jOOQ/src/main/java/org/jooq/impl/DateDiff.java index 1ce1133208..3214298a6f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DateDiff.java +++ b/jOOQ/src/main/java/org/jooq/impl/DateDiff.java @@ -36,25 +36,23 @@ package org.jooq.impl; import static org.jooq.impl.DSL.function; -import java.sql.Date; - import org.jooq.Configuration; import org.jooq.Field; /** * @author Lukas Eder */ -final class DateDiff extends AbstractFunction { +final class DateDiff extends AbstractFunction { /** * Generated UID */ private static final long serialVersionUID = -4813228000332771961L; - private final Field date1; - private final Field date2; + private final Field date1; + private final Field date2; - DateDiff(Field date1, Field date2) { + DateDiff(Field date1, Field date2) { super("datediff", SQLDataType.INTEGER, date1, date2); this.date1 = date1; diff --git a/jOOQ/src/main/resources/META-INF/ABOUT.txt b/jOOQ/src/main/resources/META-INF/ABOUT.txt index e799cf3416..2e23ac5af6 100644 --- a/jOOQ/src/main/resources/META-INF/ABOUT.txt +++ b/jOOQ/src/main/resources/META-INF/ABOUT.txt @@ -50,4 +50,4 @@ Authors and contributors of jOOQ or parts of jOOQ in alphabetical order: - Zoltan Tamasi See the following website for details about contributing to jOOQ: -https://github.com/jOOQ/jOOQ/blob/master/CONTRIBUTING.md +https://github.com/jOOQ/jOOQ/blob/master/CONTRIBUTING.md \ No newline at end of file