diff --git a/jOOQ/src/main/java/org/jooq/Attachable.java b/jOOQ/src/main/java/org/jooq/Attachable.java
index 290853158f..b71ab3040d 100644
--- a/jOOQ/src/main/java/org/jooq/Attachable.java
+++ b/jOOQ/src/main/java/org/jooq/Attachable.java
@@ -75,4 +75,10 @@ public interface Attachable extends Serializable {
* This is the same as calling attach(null).
*/
void detach();
+
+ /**
+ * Get the currently attached {@link Configuration}, or null if
+ * no Configuration is attached.
+ */
+ Configuration configuration();
}
diff --git a/jOOQ/src/main/java/org/jooq/AttachableInternal.java b/jOOQ/src/main/java/org/jooq/AttachableInternal.java
deleted file mode 100644
index 984a4f62e3..0000000000
--- a/jOOQ/src/main/java/org/jooq/AttachableInternal.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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;
-
-
-/**
- * Base functionality declaration for all {@link Attachable}s
- *
- * This interface is for JOOQ INTERNAL USE only. Do not reference directly
- *
- * @author Lukas Eder
- */
-public interface AttachableInternal extends Attachable {
-
- /**
- * Get the underlying configuration
- */
- Configuration configuration();
-
-}
diff --git a/jOOQ/src/main/java/org/jooq/Queries.java b/jOOQ/src/main/java/org/jooq/Queries.java
index 8438656380..c11eeb9c9f 100644
--- a/jOOQ/src/main/java/org/jooq/Queries.java
+++ b/jOOQ/src/main/java/org/jooq/Queries.java
@@ -44,7 +44,7 @@ import org.jooq.exception.DetachedException;
*
* @author Lukas Eder
*/
-public interface Queries extends QueryPart, Iterable {
+public interface Queries extends QueryPart, Attachable, Iterable {
// ------------------------------------------------------------------------
// Access API
diff --git a/jOOQ/src/main/java/org/jooq/Routine.java b/jOOQ/src/main/java/org/jooq/Routine.java
index b1c21d3ed9..cdaf0dd2c8 100644
--- a/jOOQ/src/main/java/org/jooq/Routine.java
+++ b/jOOQ/src/main/java/org/jooq/Routine.java
@@ -81,7 +81,7 @@ import org.jooq.exception.DataAccessException;
*
* @author Lukas Eder
*/
-public interface Routine extends QueryPart {
+public interface Routine extends QueryPart, Attachable {
// -------------------------------------------------------------------------
// XXX: Meta information
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingQuery.java
index 67ae43b44e..197d250c6b 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingQuery.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDelegatingQuery.java
@@ -39,7 +39,6 @@ import java.util.Map;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.Executor;
-import org.jooq.AttachableInternal;
import org.jooq.Clause;
import org.jooq.Configuration;
import org.jooq.Context;
@@ -64,11 +63,7 @@ abstract class AbstractDelegatingQuery extends AbstractQueryPar
@Override
public final Configuration configuration() {
- if (delegate instanceof AttachableInternal) {
- return ((AttachableInternal) delegate).configuration();
- }
-
- return super.configuration();
+ return delegate.configuration();
}
@Override
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java b/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java
index f16e59d5ff..4939e1b561 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractQuery.java
@@ -60,7 +60,6 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.Executor;
-import org.jooq.AttachableInternal;
import org.jooq.Configuration;
import org.jooq.ExecuteContext;
import org.jooq.ExecuteListener;
@@ -78,7 +77,7 @@ import org.jooq.tools.JooqLogger;
/**
* @author Lukas Eder
*/
-abstract class AbstractQuery extends AbstractQueryPart implements Query, AttachableInternal {
+abstract class AbstractQuery extends AbstractQueryPart implements Query {
private static final long serialVersionUID = -8046199737354507547L;
private static final JooqLogger log = JooqLogger.getLogger(AbstractQuery.class);
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java
index 010ab07aa3..0f79842c08 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java
@@ -89,7 +89,6 @@ import java.util.Set;
import org.jooq.AggregateFunction;
// ...
-import org.jooq.AttachableInternal;
import org.jooq.BindContext;
import org.jooq.Binding;
import org.jooq.Catalog;
@@ -129,7 +128,7 @@ import org.jooq.tools.reflect.Reflect;
*
* @author Lukas Eder
*/
-public abstract class AbstractRoutine extends AbstractQueryPart implements Routine, AttachableInternal {
+public abstract class AbstractRoutine extends AbstractQueryPart implements Routine {
/**
* Generated UID
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java b/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java
index 680c9ca358..5068ddc25d 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractStore.java
@@ -39,7 +39,6 @@ import java.util.List;
// ...
import org.jooq.Attachable;
-import org.jooq.AttachableInternal;
import org.jooq.Configuration;
import org.jooq.DSLContext;
import org.jooq.Record;
@@ -52,7 +51,7 @@ import org.jooq.Record;
*
* @author Lukas Eder
*/
-abstract class AbstractStore implements AttachableInternal {
+abstract class AbstractStore implements Attachable {
/**
* Generated UID
diff --git a/jOOQ/src/main/java/org/jooq/impl/BatchCRUD.java b/jOOQ/src/main/java/org/jooq/impl/BatchCRUD.java
index 6a853aea0f..6c84487675 100644
--- a/jOOQ/src/main/java/org/jooq/impl/BatchCRUD.java
+++ b/jOOQ/src/main/java/org/jooq/impl/BatchCRUD.java
@@ -43,7 +43,6 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import org.jooq.AttachableInternal;
import org.jooq.Batch;
import org.jooq.BatchBindStep;
import org.jooq.Configuration;
@@ -112,7 +111,7 @@ final class BatchCRUD implements Batch {
local.settings().setExecuteLogging(false);
for (int i = 0; i < records.length; i++) {
- Configuration previous = ((AttachableInternal) records[i]).configuration();
+ Configuration previous = records[i].configuration();
try {
records[i].attach(local);
@@ -175,7 +174,7 @@ final class BatchCRUD implements Batch {
));
for (int i = 0; i < records.length; i++) {
- Configuration previous = ((AttachableInternal) records[i]).configuration();
+ Configuration previous = records[i].configuration();
try {
records[i].attach(local);
diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java
index 3e60979bdd..f842e06f67 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java
@@ -71,7 +71,6 @@ import java.util.stream.Stream;
import javax.persistence.Column;
import org.jooq.Attachable;
-import org.jooq.AttachableInternal;
import org.jooq.Configuration;
import org.jooq.Field;
import org.jooq.Record;
@@ -886,14 +885,9 @@ public class DefaultRecordMapper implements RecordMapper E attach(E attachable, Record record) {
// [#2869] Attach the mapped outcome if it is Attachable and if the context's
// Settings.attachRecords flag is set
- if (attachable instanceof Attachable && record instanceof AttachableInternal) {
- Attachable a = (Attachable) attachable;
- AttachableInternal r = (AttachableInternal) record;
-
- if (Tools.attachRecords(r.configuration())) {
- a.attach(r.configuration());
- }
- }
+ if (attachable instanceof Attachable)
+ if (Tools.attachRecords(record.configuration()))
+ ((Attachable) attachable).attach(record.configuration());
return attachable;
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java b/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java
index 8fd5b83bb1..307f32a395 100644
--- a/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/QueriesImpl.java
@@ -40,7 +40,6 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.stream.Stream;
-import org.jooq.AttachableInternal;
import org.jooq.Clause;
import org.jooq.Configuration;
import org.jooq.Context;
@@ -54,7 +53,7 @@ import org.jooq.impl.ResultsImpl.ResultOrRowsImpl;
/**
* @author Lukas Eder
*/
-final class QueriesImpl extends AbstractQueryPart implements Queries, AttachableInternal {
+final class QueriesImpl extends AbstractQueryPart implements Queries {
/**
* Generated UID
diff --git a/jOOQ/src/main/java/org/jooq/impl/ReferenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/ReferenceImpl.java
index 6ac84dde3a..deb20db9c3 100644
--- a/jOOQ/src/main/java/org/jooq/impl/ReferenceImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/ReferenceImpl.java
@@ -43,7 +43,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.jooq.AttachableInternal;
import org.jooq.Constraint;
import org.jooq.DSLContext;
import org.jooq.Field;
@@ -196,12 +195,11 @@ final class ReferenceImpl extends AbstractKe
/**
* Extract a configuration from the first record of a collection of records
*/
- private static DSLContext extractDSLContext(Collection extends R> records)
- throws DetachedException {
+ private static DSLContext extractDSLContext(Collection extends R> records) {
R first = first(records);
- if (first instanceof AttachableInternal)
- return DSL.using(((AttachableInternal) first).configuration());
+ if (first != null)
+ return DSL.using(first.configuration());
else
throw new DetachedException("Supply at least one attachable record");
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java
index 08f1d33d4a..a440de6de7 100644
--- a/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/ResultImpl.java
@@ -73,7 +73,6 @@ import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import org.jooq.AttachableInternal;
import org.jooq.CSVFormat;
import org.jooq.Configuration;
import org.jooq.Constants;
@@ -138,7 +137,7 @@ import org.xml.sax.helpers.AttributesImpl;
* @author Ivan Dugic
*/
@SuppressWarnings({"rawtypes", "unchecked" })
-final class ResultImpl implements Result, AttachableInternal {
+final class ResultImpl implements Result {
/**
* Generated UID
diff --git a/jOOQ/src/main/java/org/jooq/impl/ResultsImpl.java b/jOOQ/src/main/java/org/jooq/impl/ResultsImpl.java
index 3fee85eb27..7207648818 100644
--- a/jOOQ/src/main/java/org/jooq/impl/ResultsImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/ResultsImpl.java
@@ -38,7 +38,6 @@ import java.util.AbstractList;
import java.util.ArrayList;
import java.util.List;
-import org.jooq.AttachableInternal;
import org.jooq.Configuration;
import org.jooq.Record;
import org.jooq.Result;
@@ -48,7 +47,7 @@ import org.jooq.Results;
/**
* @author Lukas Eder
*/
-final class ResultsImpl extends AbstractList> implements Results, AttachableInternal {
+final class ResultsImpl extends AbstractList> implements Results {
/**
* Generated UID
diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java
index c3538a9151..d17b3beccb 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Tools.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java
@@ -160,7 +160,6 @@ import javax.persistence.Id;
// ...
import org.jooq.Attachable;
-import org.jooq.AttachableInternal;
import org.jooq.BindContext;
import org.jooq.Catalog;
import org.jooq.Clause;
@@ -673,11 +672,7 @@ final class Tools {
* Extract the configuration from an attachable.
*/
static final Configuration getConfiguration(Attachable attachable) {
- if (attachable instanceof AttachableInternal) {
- return ((AttachableInternal) attachable).configuration();
- }
-
- return null;
+ return attachable.configuration();
}
/**
@@ -685,9 +680,7 @@ final class Tools {
* if null.
*/
static final Configuration configuration(Attachable attachable) {
- return configuration(attachable instanceof AttachableInternal
- ? ((AttachableInternal) attachable).configuration()
- : null);
+ return configuration(attachable.configuration());
}
/**
diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/Mock.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/Mock.java
index bc44df88a0..158d7621ff 100644
--- a/jOOQ/src/main/java/org/jooq/tools/jdbc/Mock.java
+++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/Mock.java
@@ -36,11 +36,9 @@ package org.jooq.tools.jdbc;
import static org.jooq.impl.DSL.using;
-import org.jooq.AttachableInternal;
import org.jooq.Configuration;
import org.jooq.Record;
import org.jooq.Result;
-import org.jooq.impl.DefaultConfiguration;
/**
* Various utilities related to {@link MockDataProvider}.
@@ -90,11 +88,7 @@ public final class Mock {
* Wrap a record in a result.
*/
static final Result> result(Record data) {
- Configuration configuration = data instanceof AttachableInternal
- ? ((AttachableInternal) data).configuration()
- : new DefaultConfiguration();
-
- Result result = using(configuration).newResult(data.fields());
+ Result result = using(data.configuration()).newResult(data.fields());
result.add(data);
return result;
diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockResultSetMetaData.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockResultSetMetaData.java
index 52c9748562..68aac5ffd3 100644
--- a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockResultSetMetaData.java
+++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockResultSetMetaData.java
@@ -38,7 +38,6 @@ import java.io.Serializable;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
-import org.jooq.AttachableInternal;
import org.jooq.Configuration;
import org.jooq.Field;
import org.jooq.Schema;
@@ -164,19 +163,16 @@ public class MockResultSetMetaData implements ResultSetMetaData, Serializable {
Schema schema = table.getSchema();
if (schema != null) {
- Configuration configuration = ((AttachableInternal) rs.result).configuration();
+ Configuration configuration = rs.result.configuration();
Schema mapped = null;
- if (configuration != null) {
+ if (configuration != null)
mapped = DSL.using(configuration).map(schema);
- }
- if (mapped != null) {
+ if (mapped != null)
return mapped.getName();
- }
- else {
+ else
return schema.getName();
- }
}
}
}