From 971abe406c6cd161ddb1c00e949f4390e75bce94 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Mon, 12 Feb 2018 13:17:05 +0100 Subject: [PATCH] [#6875] [#7158] Add public internal API for use by code generator (to work around Scala issues) --- .../main/java/org/jooq/impl/AbstractKeys.java | 50 +++++--- .../src/main/java/org/jooq/impl/Internal.java | 120 ++++++++++++++++++ 2 files changed, 152 insertions(+), 18 deletions(-) create mode 100644 jOOQ/src/main/java/org/jooq/impl/Internal.java diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractKeys.java b/jOOQ/src/main/java/org/jooq/impl/AbstractKeys.java index c2086002dd..8a99eed9b4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractKeys.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractKeys.java @@ -52,66 +52,80 @@ import org.jooq.UniqueKey; * This type is for JOOQ INTERNAL USE only. Do not reference directly. * * @author Lukas Eder + * @deprecated - [#6875] [#7158] - 3.11.0 - Please re-generate your code */ +@Deprecated public abstract class AbstractKeys { /** * Factory method for indexes. + * + * @deprecated - [#6875] [#7158] - 3.11.0 - Please re-generate your code */ - protected static Index createIndex(String name, Table table, OrderField[] sortFields, boolean unique) { - return new IndexImpl(DSL.name(name), table, sortFields, null, unique); + @Deprecated + public static Index createIndex(String name, Table table, OrderField[] sortFields, boolean unique) { + return Internal.createIndex(name, table, sortFields, unique); } /** * Factory method for identities. + * + * @deprecated - [#6875] [#7158] - 3.11.0 - Please re-generate your code */ - protected static Identity createIdentity(Table table, TableField field) { - return new IdentityImpl(table, field); + @Deprecated + public static Identity createIdentity(Table table, TableField field) { + return Internal.createIdentity(table, field); } /** * Factory method for unique keys. + * + * @deprecated - [#6875] [#7158] - 3.11.0 - Please re-generate your code */ + @Deprecated @SafeVarargs - protected static UniqueKey createUniqueKey(Table table, TableField... fields) { - return new UniqueKeyImpl(table, fields); + public static UniqueKey createUniqueKey(Table table, TableField... fields) { + return Internal.createUniqueKey(table, fields); } /** * Factory method for unique keys. + * + * @deprecated - [#6875] [#7158] - 3.11.0 - Please re-generate your code */ + @Deprecated @SafeVarargs - protected static UniqueKey createUniqueKey(Table table, String name, TableField... fields) { - return new UniqueKeyImpl(table, name, fields); + public static UniqueKey createUniqueKey(Table table, String name, TableField... fields) { + return Internal.createUniqueKey(table, name, fields); } /** * Factory method for foreign keys. + * + * @deprecated - [#6875] [#7158] - 3.11.0 - Please re-generate your code */ + @Deprecated @SafeVarargs - protected static ForeignKey createForeignKey(UniqueKey key, Table table, TableField... fields) { - return createForeignKey(key, table, null, fields); + public static ForeignKey createForeignKey(UniqueKey key, Table table, TableField... fields) { + return Internal.createForeignKey(key, table, fields); } /** * Factory method for foreign keys. + * + * @deprecated - [#6875] [#7158] - 3.11.0 - Please re-generate your code */ + @Deprecated @SafeVarargs - protected static ForeignKey createForeignKey(UniqueKey key, Table table, String name, TableField... fields) { - ForeignKey result = new ReferenceImpl(key, table, name, fields); - - if (key instanceof UniqueKeyImpl) { - ((UniqueKeyImpl) key).references.add(result); - } - - return result; + public static ForeignKey createForeignKey(UniqueKey key, Table table, String name, TableField... fields) { + return Internal.createForeignKey(key, table, name, fields); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Internal.java b/jOOQ/src/main/java/org/jooq/impl/Internal.java new file mode 100644 index 0000000000..7c35e9a7fe --- /dev/null +++ b/jOOQ/src/main/java/org/jooq/impl/Internal.java @@ -0,0 +1,120 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Other licenses: + * ----------------------------------------------------------------------------- + * Commercial licenses for this work are available. These replace the above + * ASL 2.0 and offer limited warranties, support, maintenance, and commercial + * database integrations. + * + * For more information, please visit: http://www.jooq.org/licenses + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ +package org.jooq.impl; + +import org.jooq.ForeignKey; +import org.jooq.Identity; +import org.jooq.Index; +import org.jooq.OrderField; +import org.jooq.Record; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.UniqueKey; + +/** + * A utility class that grants access to internal API, to be used only by + * generated code. + *

+ * This type is for JOOQ INTERNAL USE only. Do not reference directly. + * + * @author Lukas Eder + */ +public final class Internal { + + /** + * Factory method for indexes. + */ + public static Index createIndex(String name, Table table, OrderField[] sortFields, boolean unique) { + return new IndexImpl(DSL.name(name), table, sortFields, null, unique); + } + + /** + * Factory method for identities. + */ + public static Identity createIdentity(Table table, TableField field) { + return new IdentityImpl(table, field); + } + + /** + * Factory method for unique keys. + */ + + @SafeVarargs + + public static UniqueKey createUniqueKey(Table table, TableField... fields) { + return new UniqueKeyImpl(table, fields); + } + + /** + * Factory method for unique keys. + */ + + @SafeVarargs + + public static UniqueKey createUniqueKey(Table table, String name, TableField... fields) { + return new UniqueKeyImpl(table, name, fields); + } + + /** + * Factory method for foreign keys. + */ + + @SafeVarargs + + public static ForeignKey createForeignKey(UniqueKey key, Table table, TableField... fields) { + return createForeignKey(key, table, null, fields); + } + + /** + * Factory method for foreign keys. + */ + + @SafeVarargs + + public static ForeignKey createForeignKey(UniqueKey key, Table table, String name, TableField... fields) { + ForeignKey result = new ReferenceImpl(key, table, name, fields); + + if (key instanceof UniqueKeyImpl) + ((UniqueKeyImpl) key).references.add(result); + + return result; + } + + + private Internal() {} +}