/*
* 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 static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static java.util.Collections.unmodifiableList;
import static java.util.Collections.unmodifiableMap;
import static org.jooq.Records.intoGroups;
import static org.jooq.Records.intoMap;
import static org.jooq.conf.ParamType.INLINED;
import static org.jooq.conf.ParamType.NAMED;
import static org.jooq.conf.ParamType.NAMED_OR_INLINED;
import static org.jooq.impl.DSL.condition;
import static org.jooq.impl.DSL.count;
import static org.jooq.impl.DSL.exists;
import static org.jooq.impl.DSL.field;
import static org.jooq.impl.DSL.name;
import static org.jooq.impl.DSL.noCondition;
import static org.jooq.impl.DSL.one;
import static org.jooq.impl.DSL.sequence;
import static org.jooq.impl.DSL.sql;
import static org.jooq.impl.DSL.table;
import static org.jooq.impl.DSL.zero;
import static org.jooq.impl.Tools.EMPTY_FIELD;
import static org.jooq.impl.Tools.EMPTY_QUERY;
import static org.jooq.impl.Tools.EMPTY_TABLE;
import static org.jooq.impl.Tools.EMPTY_TABLE_RECORD;
import static org.jooq.impl.Tools.EMPTY_UPDATABLE_RECORD;
import static org.jooq.impl.Tools.blocking;
import static org.jooq.impl.Tools.getMappedSchema;
import static org.jooq.impl.Tools.getMappedTable;
import static org.jooq.impl.Tools.list;
import java.io.IOException;
import java.io.Serializable;
import java.io.StringReader;
import java.math.BigInteger;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.Executor;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.stream.Stream;
import javax.sql.DataSource;
import org.jooq.AlterTableStep;
import org.jooq.Attachable;
import org.jooq.Batch;
import org.jooq.BatchBindStep;
import org.jooq.BatchedCallable;
import org.jooq.BatchedRunnable;
import org.jooq.BindContext;
import org.jooq.Block;
import org.jooq.Catalog;
import org.jooq.Commit;
import org.jooq.Commits;
import org.jooq.CommonTableExpression;
import org.jooq.Condition;
import org.jooq.Configuration;
import org.jooq.ConnectionCallable;
import org.jooq.ConnectionProvider;
import org.jooq.ConnectionRunnable;
import org.jooq.ContextTransactionalCallable;
import org.jooq.ContextTransactionalRunnable;
import org.jooq.CreateTypeStep;
import org.jooq.CreateViewAsStep;
import org.jooq.Cursor;
import org.jooq.DDLExportConfiguration;
import org.jooq.DDLFlag;
import org.jooq.DSLContext;
import org.jooq.DataType;
import org.jooq.DeleteQuery;
import org.jooq.DeleteUsingStep;
import org.jooq.Domain;
import org.jooq.DropTypeStep;
import org.jooq.ExecuteContext;
import org.jooq.ExecuteListener;
import org.jooq.Explain;
import org.jooq.Field;
import org.jooq.Index;
import org.jooq.InsertQuery;
import org.jooq.InsertSetStep;
import org.jooq.InsertValuesStep1;
import org.jooq.InsertValuesStep10;
import org.jooq.InsertValuesStep11;
import org.jooq.InsertValuesStep12;
import org.jooq.InsertValuesStep13;
import org.jooq.InsertValuesStep14;
import org.jooq.InsertValuesStep15;
import org.jooq.InsertValuesStep16;
import org.jooq.InsertValuesStep17;
import org.jooq.InsertValuesStep18;
import org.jooq.InsertValuesStep19;
import org.jooq.InsertValuesStep2;
import org.jooq.InsertValuesStep20;
import org.jooq.InsertValuesStep21;
import org.jooq.InsertValuesStep22;
import org.jooq.InsertValuesStep3;
import org.jooq.InsertValuesStep4;
import org.jooq.InsertValuesStep5;
import org.jooq.InsertValuesStep6;
import org.jooq.InsertValuesStep7;
import org.jooq.InsertValuesStep8;
import org.jooq.InsertValuesStep9;
import org.jooq.InsertValuesStepN;
import org.jooq.LoaderOptionsStep;
import org.jooq.MergeKeyStep1;
import org.jooq.MergeKeyStep10;
import org.jooq.MergeKeyStep11;
import org.jooq.MergeKeyStep12;
import org.jooq.MergeKeyStep13;
import org.jooq.MergeKeyStep14;
import org.jooq.MergeKeyStep15;
import org.jooq.MergeKeyStep16;
import org.jooq.MergeKeyStep17;
import org.jooq.MergeKeyStep18;
import org.jooq.MergeKeyStep19;
import org.jooq.MergeKeyStep2;
import org.jooq.MergeKeyStep20;
import org.jooq.MergeKeyStep21;
import org.jooq.MergeKeyStep22;
import org.jooq.MergeKeyStep3;
import org.jooq.MergeKeyStep4;
import org.jooq.MergeKeyStep5;
import org.jooq.MergeKeyStep6;
import org.jooq.MergeKeyStep7;
import org.jooq.MergeKeyStep8;
import org.jooq.MergeKeyStep9;
import org.jooq.MergeKeyStepN;
import org.jooq.MergeUsingStep;
import org.jooq.Meta;
import org.jooq.Migration;
import org.jooq.Name;
import org.jooq.Param;
import org.jooq.Parser;
import org.jooq.Privilege;
// ...
import org.jooq.Publisher;
import org.jooq.Queries;
import org.jooq.Query;
import org.jooq.QueryPart;
import org.jooq.Record;
import org.jooq.Record1;
import org.jooq.Record10;
import org.jooq.Record11;
import org.jooq.Record12;
import org.jooq.Record13;
import org.jooq.Record14;
import org.jooq.Record15;
import org.jooq.Record16;
import org.jooq.Record17;
import org.jooq.Record18;
import org.jooq.Record19;
import org.jooq.Record2;
import org.jooq.Record20;
import org.jooq.Record21;
import org.jooq.Record22;
import org.jooq.Record3;
import org.jooq.Record4;
import org.jooq.Record5;
import org.jooq.Record6;
import org.jooq.Record7;
import org.jooq.Record8;
import org.jooq.Record9;
import org.jooq.RenderContext;
import org.jooq.Result;
import org.jooq.ResultQuery;
import org.jooq.Results;
import org.jooq.RowCountQuery;
import org.jooq.SQL;
import org.jooq.SQLDialect;
import org.jooq.Schema;
import org.jooq.Select;
import org.jooq.SelectField;
import org.jooq.SelectFieldOrAsterisk;
import org.jooq.SelectQuery;
import org.jooq.SelectSelectStep;
import org.jooq.SelectWhereStep;
import org.jooq.Sequence;
import org.jooq.Source;
import org.jooq.Statement;
import org.jooq.Stringly;
import org.jooq.Table;
import org.jooq.TableField;
import org.jooq.TableLike;
import org.jooq.TableRecord;
import org.jooq.TransactionProvider;
import org.jooq.TransactionalCallable;
import org.jooq.TransactionalPublishable;
import org.jooq.TransactionalRunnable;
import org.jooq.UDT;
import org.jooq.UDTRecord;
import org.jooq.UpdatableRecord;
import org.jooq.UpdateQuery;
import org.jooq.UpdateSetFirstStep;
import org.jooq.Version;
import org.jooq.Versions;
import org.jooq.WithAsStep;
import org.jooq.WithAsStep1;
import org.jooq.WithAsStep10;
import org.jooq.WithAsStep11;
import org.jooq.WithAsStep12;
import org.jooq.WithAsStep13;
import org.jooq.WithAsStep14;
import org.jooq.WithAsStep15;
import org.jooq.WithAsStep16;
import org.jooq.WithAsStep17;
import org.jooq.WithAsStep18;
import org.jooq.WithAsStep19;
import org.jooq.WithAsStep2;
import org.jooq.WithAsStep20;
import org.jooq.WithAsStep21;
import org.jooq.WithAsStep22;
import org.jooq.WithAsStep3;
import org.jooq.WithAsStep4;
import org.jooq.WithAsStep5;
import org.jooq.WithAsStep6;
import org.jooq.WithAsStep7;
import org.jooq.WithAsStep8;
import org.jooq.WithAsStep9;
import org.jooq.WithStep;
import org.jooq.conf.Settings;
import org.jooq.conf.SettingsTools;
import org.jooq.exception.ConfigurationException;
import org.jooq.exception.DataAccessException;
import org.jooq.exception.DetachedException;
import org.jooq.exception.InvalidResultException;
import org.jooq.exception.SQLDialectNotSupportedException;
import org.jooq.impl.BatchCRUD.Action;
import org.jooq.impl.R2DBC.BlockingTransactionSubscription;
import org.jooq.impl.R2DBC.TransactionSubscription;
import org.jooq.tools.csv.CSVReader;
import org.jooq.tools.jdbc.BatchedConnection;
import org.jooq.tools.jdbc.MockCallable;
import org.jooq.tools.jdbc.MockConfiguration;
import org.jooq.tools.jdbc.MockDataProvider;
import org.jooq.tools.jdbc.MockRunnable;
import org.jooq.util.xml.jaxb.InformationSchema;
import org.jetbrains.annotations.NotNull;
import io.r2dbc.spi.ConnectionFactory;
/**
* A default implementation for {@link DSLContext}.
*
* You may use this as a base implementation for custom {@link DSLContext}
* subtypes preventing potential API breakage when upgrading jOOQ, or to
* delegate DSL method calls to your custom implementations.
*
* @author Lukas Eder
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public class DefaultDSLContext extends AbstractScope implements DSLContext, Serializable {
// -------------------------------------------------------------------------
// XXX Constructors
// -------------------------------------------------------------------------
public DefaultDSLContext(SQLDialect dialect) {
this(dialect, null);
}
public DefaultDSLContext(SQLDialect dialect, Settings settings) {
this(new DefaultConfiguration(new NoConnectionProvider(), dialect, settings));
}
public DefaultDSLContext(Connection connection, SQLDialect dialect) {
this(connection, dialect, null);
}
public DefaultDSLContext(Connection connection, SQLDialect dialect, Settings settings) {
this(new DefaultConfiguration(new DefaultConnectionProvider(connection), dialect, settings));
}
public DefaultDSLContext(DataSource datasource, SQLDialect dialect) {
this(datasource, dialect, null);
}
public DefaultDSLContext(DataSource datasource, SQLDialect dialect, Settings settings) {
this(new DefaultConfiguration(new DataSourceConnectionProvider(datasource), dialect, settings));
}
public DefaultDSLContext(ConnectionProvider connectionProvider, SQLDialect dialect) {
this(connectionProvider, dialect, null);
}
public DefaultDSLContext(ConnectionProvider connectionProvider, SQLDialect dialect, Settings settings) {
this(new DefaultConfiguration(connectionProvider, dialect, settings));
}
public DefaultDSLContext(ConnectionFactory connectionFactory, SQLDialect dialect) {
this(connectionFactory, dialect, null);
}
public DefaultDSLContext(ConnectionFactory connectionFactory, SQLDialect dialect, Settings settings) {
this(new DefaultConfiguration().set(connectionFactory).set(dialect).set(settings));
}
public DefaultDSLContext(Configuration configuration) {
super(configuration, configuration == null ? null : configuration.data());
}
// -------------------------------------------------------------------------
// XXX Configuration API
// -------------------------------------------------------------------------
@Override
public Schema map(Schema schema) {
return getMappedSchema(this, schema);
}
@Override
public Table map(Table table) {
return getMappedTable(this, table);
}
// -------------------------------------------------------------------------
// XXX Convenience methods accessing the underlying Connection
// -------------------------------------------------------------------------
@Override
public Parser parser() {
return new ParserImpl(configuration());
}
@Override
public Connection parsingConnection() {
return new ParsingConnection(configuration());
}
@Override
public DataSource parsingDataSource() {
return new ParsingDataSource(configuration());
}
@Override
public ConnectionFactory parsingConnectionFactory() {
return new ParsingConnectionFactory(configuration());
}
@Override
public Connection diagnosticsConnection() {
return new DiagnosticsConnection(configuration());
}
@Override
public DataSource diagnosticsDataSource() {
return new DiagnosticsDataSource(configuration());
}
@Override
public Version version(String id) {
return new VersionImpl(this, id, null, new Version[0]);
}
@Override
public Versions versions() {
return new VersionsImpl(version("init"));
}
@Override
public Commit commit(String id) {
return new CommitImpl(configuration, id, null, emptyList(), emptyList());
}
@Override
public Commits commits() {
return new CommitsImpl(configuration, commit("init"));
}
@Override
public Migration migrateTo(Commit to) {
return new MigrationImpl(configuration, to);
}
@Override
public Meta meta() {
return configuration().metaProvider().provide();
}
@Override
public Meta meta(DatabaseMetaData meta) {
return new MetaImpl(configuration(), meta);
}
@Override
public Meta meta(Catalog... catalogs) {
return CatalogMetaImpl.filterCatalogs(configuration(), catalogs);
}
@Override
public Meta meta(Schema... schemas) {
return CatalogMetaImpl.filterSchemas(configuration(), schemas);
}
@Override
public Meta meta(Table>... tables) {
return CatalogMetaImpl.filterTables(configuration(), tables);
}
@Override
public Meta meta(InformationSchema schema) {
return new InformationSchemaMetaImpl(configuration(), schema);
}
@Override
public Meta meta(String... sources) {
return new SourceMetaProvider(configuration(), Tools.map(sources, s -> Source.of(s), Source[]::new)).provide();
}
@Override
public Meta meta(Source... sources) {
return new SourceMetaProvider(configuration(), sources).provide();
}
@Override
public Meta meta(Query... queries) {
return new InterpreterMetaProvider(configuration(), queries).provide();
}
@Override
public InformationSchema informationSchema(Catalog catalog) {
return InformationSchemaExport.exportCatalogs(configuration(), asList(catalog));
}
@Override
public InformationSchema informationSchema(Catalog... catalogs) {
return InformationSchemaExport.exportCatalogs(configuration(), asList(catalogs));
}
@Override
public InformationSchema informationSchema(Schema schema) {
return InformationSchemaExport.exportSchemas(configuration(), asList(schema));
}
@Override
public InformationSchema informationSchema(Schema... schemas) {
return InformationSchemaExport.exportSchemas(configuration(), asList(schemas));
}
@Override
public InformationSchema informationSchema(Table> table) {
return InformationSchemaExport.exportTables(configuration(), asList(table));
}
@Override
public InformationSchema informationSchema(Table>... tables) {
return InformationSchemaExport.exportTables(configuration(), asList(tables));
}
// -------------------------------------------------------------------------
// XXX APIs related to query optimisation
// -------------------------------------------------------------------------
@Override
public Explain explain(Query query) {
return ExplainQuery.explain(this, query);
}
// -------------------------------------------------------------------------
// XXX APIs for creating scope for transactions, mocking, batching, etc.
// -------------------------------------------------------------------------
@Override
public T transactionResult(ContextTransactionalCallable transactional) {
TransactionProvider tp = configuration().transactionProvider();
if (!(tp instanceof ThreadLocalTransactionProvider))
throw new ConfigurationException("Cannot use ContextTransactionalCallable with TransactionProvider of type " + tp.getClass());
return transactionResult0(c -> transactional.run(), ((ThreadLocalTransactionProvider) tp).configuration(configuration()), true);
}
@Override
public T transactionResult(TransactionalCallable transactional) {
return transactionResult0(transactional, configuration(), false);
}
private static T transactionResult0(TransactionalCallable transactional, Configuration configuration, boolean threadLocal) {
// If used in a Java 8 Stream, a transaction should always be executed
// in a ManagedBlocker context, just in case Stream.parallel() is called
// The same is true for all asynchronous transactions, which must always
// run in a ManagedBlocker context.
return blocking(() -> {
T result;
DefaultTransactionContext ctx = new DefaultTransactionContext(configuration.derive());
TransactionProvider provider = ctx.configuration().transactionProvider();
TransactionListeners listeners = new TransactionListeners(ctx.configuration());
boolean committed = false;
try {
try {
listeners.beginStart(ctx);
provider.begin(ctx);
}
finally {
listeners.beginEnd(ctx);
}
result = transactional.run(ctx.configuration());
try {
listeners.commitStart(ctx);
provider.commit(ctx);
committed = true;
}
finally {
listeners.commitEnd(ctx);
}
}
// [#6608] [#7167] Errors are no longer handled differently
catch (Throwable cause) {
// [#8413] Avoid rollback logic if commit was successful (exception in commitEnd())
if (!committed) {
if (cause instanceof Exception e)
ctx.cause(e);
else
ctx.causeThrowable(cause);
listeners.rollbackStart(ctx);
try {
provider.rollback(ctx);
}
// [#3718] Use reflection to support also JDBC 4.0
catch (Exception suppress) {
cause.addSuppressed(suppress);
}
listeners.rollbackEnd(ctx);
}
// [#6608] [#7167] Errors are no longer handled differently
if (cause instanceof RuntimeException e)
throw e;
else if (cause instanceof Error e)
throw e;
else
throw new DataAccessException(committed
? "Exception after commit"
: "Rollback caused"
, cause
);
}
return result;
}, threadLocal).get();
}
@Override
public void transaction(ContextTransactionalRunnable transactional) {
transactionResult((ContextTransactionalCallable) () -> {
transactional.run();
return null;
});
}
@Override
public void transaction(TransactionalRunnable transactional) {
transactionResult((TransactionalCallable) c -> {
transactional.run(c);
return null;
});
}
@Override
public CompletionStage transactionAsync(TransactionalRunnable transactional) {
return transactionAsync(Tools.configuration(configuration()).executorProvider().provide(), transactional);
}
@Override
public CompletionStage transactionAsync(Executor executor, TransactionalRunnable transactional) {
if (configuration().transactionProvider() instanceof ThreadLocalTransactionProvider)
throw new ConfigurationException("Cannot use TransactionalRunnable with ThreadLocalTransactionProvider");
return ExecutorProviderCompletionStage.of(CompletableFuture.supplyAsync(
() -> { transaction(transactional); return null; }, executor),
() -> executor
);
}
@Override
public CompletionStage transactionResultAsync(TransactionalCallable transactional) {
return transactionResultAsync(Tools.configuration(configuration()).executorProvider().provide(), transactional);
}
@Override
public CompletionStage transactionResultAsync(Executor executor, TransactionalCallable transactional) {
if (configuration().transactionProvider() instanceof ThreadLocalTransactionProvider)
throw new ConfigurationException("Cannot use TransactionalCallable with ThreadLocalTransactionProvider");
return ExecutorProviderCompletionStage.of(CompletableFuture.supplyAsync(
() -> transactionResult(transactional), executor),
() -> executor
);
}
@Override
public Publisher transactionPublisher(TransactionalPublishable transactional) {
return subscriber -> {
ConnectionFactory cf = configuration().connectionFactory();
if (!(cf instanceof NoConnectionFactory))
subscriber.onSubscribe(new TransactionSubscription<>(this, subscriber, transactional));
else
subscriber.onSubscribe(new BlockingTransactionSubscription<>(this, subscriber, transactional));
};
}
@Override
public T connectionResult(ConnectionCallable callable) {
// [#13827] [#13830] The OracleDSL.DBMS_AQ API requires a fix for
// #13830. However, #13830 risks introducing new
// regressions, which is why the fix has been applied
// only to work around #13827, so far.
if (data("org.jooq.workaround.issue13827") != null)
return connectionResult0(callable);
final Connection connection = configuration().connectionProvider().acquire();
if (connection == null)
throw new DetachedException("No JDBC Connection provided by ConnectionProvider");
try {
return callable.run(connection);
}
catch (Error | RuntimeException e) {
throw e;
}
catch (Throwable t) {
throw new DataAccessException("Error while running ConnectionCallable", t);
}
finally {
configuration().connectionProvider().release(connection);
}
}
private final T connectionResult0(ConnectionCallable callable) {
DefaultExecuteContext ctx = new DefaultExecuteContext(configuration());
Connection connection = ctx.connection();
if (connection == null)
throw new DetachedException("No JDBC Connection provided by ConnectionProvider");
return DefaultExecuteContext.localExecuteContext(ctx, () -> {
try {
return callable.run(connection);
}
catch (Error | RuntimeException e) {
throw e;
}
catch (Throwable t) {
throw new DataAccessException("Error while running ConnectionCallable", t);
}
finally {
Tools.safeClose(new DefaultExecuteListener(), ctx);
}
});
}
@Override
public void connection(ConnectionRunnable runnable) {
connectionResult(connection -> {
runnable.run(connection);
return null;
});
}
@Override
public T mockResult(MockDataProvider provider, MockCallable mockable) {
try {
return mockable.run(new MockConfiguration(configuration, provider));
}
catch (RuntimeException e) {
throw e;
}
catch (Exception cause) {
throw new DataAccessException("Mock failed", cause);
}
}
@Override
public void mock(MockDataProvider provider, MockRunnable mockable) {
mockResult(provider, c -> {
mockable.run(c);
return null;
});
}
// -------------------------------------------------------------------------
// XXX RenderContext and BindContext accessors
// -------------------------------------------------------------------------
@Override
public RenderContext renderContext() {
return new DefaultRenderContext(configuration(), null);
}
@Override
public String render(QueryPart part) {
return renderContext().visit(part).render();
}
@Override
public String renderNamedParams(QueryPart part) {
return renderContext().paramType(NAMED).visit(part).render();
}
@Override
public String renderNamedOrInlinedParams(QueryPart part) {
return renderContext().paramType(NAMED_OR_INLINED).visit(part).render();
}
@Override
public String renderInlined(QueryPart part) {
return renderContext().paramType(INLINED).visit(part).render();
}
@Override
public List extractBindValues(QueryPart part) {
ParamCollector collector = new ParamCollector(configuration(), false);
collector.visit(part);
return unmodifiableList(Tools.map(collector.resultList, e -> e.getValue().getValue()));
}
@Override
public Map> extractParams(QueryPart part) {
ParamCollector collector = new ParamCollector(configuration(), true);
collector.visit(part);
return unmodifiableMap(collector.resultFlat);
}
@Override
public Param> extractParam(QueryPart part, String name) {
return extractParams(part).get(name);
}
@Override
public BindContext bindContext(PreparedStatement stmt) {
return new DefaultBindContext(configuration(), null, stmt);
}
// -------------------------------------------------------------------------
// XXX Attachable and Serializable API
// -------------------------------------------------------------------------
@Override
public void attach(Attachable... attachables) {
attach(Arrays.asList(attachables));
}
@Override
public void attach(Collection extends Attachable> attachables) {
for (Attachable attachable : attachables)
attachable.attach(configuration());
}
// -------------------------------------------------------------------------
// XXX Access to the loader API
// -------------------------------------------------------------------------
@Override
public LoaderOptionsStep loadInto(Table table) {
return new LoaderImpl<>(configuration(), table);
}
// -------------------------------------------------------------------------
// XXX: Queries
// -------------------------------------------------------------------------
@Override
public Queries queries(Query... queries) {
return queries(Arrays.asList(queries));
}
@Override
public Queries queries(Collection extends Query> queries) {
return new QueriesImpl(configuration(), queries);
}
@Override
public Block begin(Statement... statements) {
return begin(Arrays.asList(statements));
}
@Override
public Block begin(Collection extends Statement> statements) {
return new BlockImpl(configuration(), statements, true);
}
// -------------------------------------------------------------------------
// XXX Plain SQL API
// -------------------------------------------------------------------------
@Override
public RowCountQuery query(SQL sql) {
return new SQLQuery(configuration(), sql);
}
@Override
public RowCountQuery query(String sql) {
return query(sql, new Object[0]);
}
@Override
public RowCountQuery query(String sql, Object... bindings) {
return query(sql(sql, bindings));
}
@Override
public RowCountQuery query(String sql, QueryPart... parts) {
return query(sql, (Object[]) parts);
}
@Override
public Result fetch(SQL sql) {
return resultQuery(sql).fetch();
}
@Override
public Result fetch(String sql) {
return resultQuery(sql).fetch();
}
@Override
public Result fetch(String sql, Object... bindings) {
return resultQuery(sql, bindings).fetch();
}
@Override
public Result fetch(String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetch();
}
@Override
public Cursor fetchLazy(SQL sql) {
return resultQuery(sql).fetchLazy();
}
@Override
public Cursor fetchLazy(String sql) {
return resultQuery(sql).fetchLazy();
}
@Override
public Cursor fetchLazy(String sql, Object... bindings) {
return resultQuery(sql, bindings).fetchLazy();
}
@Override
public Cursor fetchLazy(String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetchLazy();
}
@Override
public CompletionStage> fetchAsync(SQL sql) {
return resultQuery(sql).fetchAsync();
}
@Override
public CompletionStage> fetchAsync(String sql) {
return resultQuery(sql).fetchAsync();
}
@Override
public CompletionStage> fetchAsync(String sql, Object... bindings) {
return resultQuery(sql, bindings).fetchAsync();
}
@Override
public CompletionStage> fetchAsync(String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetchAsync();
}
@Override
public CompletionStage> fetchAsync(Executor executor, SQL sql) {
return resultQuery(sql).fetchAsync(executor);
}
@Override
public CompletionStage> fetchAsync(Executor executor, String sql) {
return resultQuery(sql).fetchAsync(executor);
}
@Override
public CompletionStage> fetchAsync(Executor executor, String sql, Object... bindings) {
return resultQuery(sql, bindings).fetchAsync(executor);
}
@Override
public CompletionStage> fetchAsync(Executor executor, String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetchAsync(executor);
}
@Override
public Stream fetchStream(SQL sql) {
return resultQuery(sql).stream();
}
@Override
public Stream fetchStream(String sql) {
return resultQuery(sql).stream();
}
@Override
public Stream fetchStream(String sql, Object... bindings) {
return resultQuery(sql, bindings).stream();
}
@Override
public Stream fetchStream(String sql, QueryPart... parts) {
return resultQuery(sql, parts).stream();
}
@Override
public Results fetchMany(SQL sql) {
return resultQuery(sql).fetchMany();
}
@Override
public Results fetchMany(String sql) {
return resultQuery(sql).fetchMany();
}
@Override
public Results fetchMany(String sql, Object... bindings) {
return resultQuery(sql, bindings).fetchMany();
}
@Override
public Results fetchMany(String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetchMany();
}
@Override
public Record fetchOne(SQL sql) {
return resultQuery(sql).fetchOne();
}
@Override
public Record fetchOne(String sql) {
return resultQuery(sql).fetchOne();
}
@Override
public Record fetchOne(String sql, Object... bindings) {
return resultQuery(sql, bindings).fetchOne();
}
@Override
public Record fetchOne(String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetchOne();
}
@Override
public Record fetchSingle(SQL sql) {
return resultQuery(sql).fetchSingle();
}
@Override
public Record fetchSingle(String sql) {
return resultQuery(sql).fetchSingle();
}
@Override
public Record fetchSingle(String sql, Object... bindings) {
return resultQuery(sql, bindings).fetchSingle();
}
@Override
public Record fetchSingle(String sql, QueryPart... parts) {
return resultQuery(sql, parts).fetchSingle();
}
@Override
public Optional fetchOptional(SQL sql) {
return Optional.ofNullable(fetchOne(sql));
}
@Override
public Optional fetchOptional(String sql) {
return Optional.ofNullable(fetchOne(sql));
}
@Override
public Optional fetchOptional(String sql, Object... bindings) {
return Optional.ofNullable(fetchOne(sql, bindings));
}
@Override
public Optional fetchOptional(String sql, QueryPart... parts) {
return Optional.ofNullable(fetchOne(sql, parts));
}
@Override
public Object fetchValue(SQL sql) {
return fetchValue((ResultQuery) resultQuery(sql));
}
@Override
public Object fetchValue(String sql) {
return fetchValue((ResultQuery) resultQuery(sql));
}
@Override
public Object fetchValue(String sql, Object... bindings) {
return fetchValue((ResultQuery) resultQuery(sql, bindings));
}
@Override
public Object fetchValue(String sql, QueryPart... parts) {
return fetchValue((ResultQuery) resultQuery(sql, parts));
}
@Override
public Optional> fetchOptionalValue(SQL sql) {
return Optional.ofNullable(fetchValue(sql));
}
@Override
public Optional> fetchOptionalValue(String sql) {
return Optional.ofNullable(fetchValue(sql));
}
@Override
public Optional> fetchOptionalValue(String sql, Object... bindings) {
return Optional.ofNullable(fetchValue(sql, bindings));
}
@Override
public Optional> fetchOptionalValue(String sql, QueryPart... parts) {
return Optional.ofNullable(fetchValue(sql, parts));
}
@Override
public List> fetchValues(SQL sql) {
return fetchValues((ResultQuery) resultQuery(sql));
}
@Override
public List> fetchValues(String sql) {
return fetchValues((ResultQuery) resultQuery(sql));
}
@Override
public List> fetchValues(String sql, Object... bindings) {
return fetchValues((ResultQuery) resultQuery(sql, bindings));
}
@Override
public List> fetchValues(String sql, QueryPart... parts) {
return fetchValues((ResultQuery) resultQuery(sql, parts));
}
@Override
public int execute(SQL sql) {
return query(sql).execute();
}
@Override
public int execute(String sql) {
return query(sql).execute();
}
@Override
public int execute(String sql, Object... bindings) {
return query(sql, bindings).execute();
}
@Override
public int execute(String sql, QueryPart... parts) {
return query(sql, (Object[]) parts).execute();
}
@Override
public ResultQuery resultQuery(SQL sql) {
return new SQLResultQuery(configuration(), sql);
}
@Override
public ResultQuery resultQuery(String sql) {
return resultQuery(sql, new Object[0]);
}
@Override
public ResultQuery resultQuery(String sql, Object... bindings) {
return resultQuery(sql(sql, bindings));
}
@Override
public ResultQuery resultQuery(String sql, QueryPart... parts) {
return resultQuery(sql, (Object[]) parts);
}
// -------------------------------------------------------------------------
// XXX JDBC convenience methods
// -------------------------------------------------------------------------
@Override
public Result fetch(ResultSet rs) {
return fetchLazy(rs).fetch();
}
@Override
public Result fetch(ResultSet rs, Field>... fields) {
return fetchLazy(rs, fields).fetch();
}
@Override
public Result fetch(ResultSet rs, DataType>... types) {
return fetchLazy(rs, types).fetch();
}
@Override
public Result fetch(ResultSet rs, Class>... types) {
return fetchLazy(rs, types).fetch();
}
@Override
public Record fetchOne(ResultSet rs) {
return Tools.fetchOne(fetchLazy(rs));
}
@Override
public Record fetchOne(ResultSet rs, Field>... fields) {
return Tools.fetchOne(fetchLazy(rs, fields));
}
@Override
public Record fetchOne(ResultSet rs, DataType>... types) {
return Tools.fetchOne(fetchLazy(rs, types));
}
@Override
public Record fetchOne(ResultSet rs, Class>... types) {
return Tools.fetchOne(fetchLazy(rs, types));
}
@Override
public Record fetchSingle(ResultSet rs) {
return Tools.fetchSingle(fetchLazy(rs));
}
@Override
public Record fetchSingle(ResultSet rs, Field>... fields) {
return Tools.fetchSingle(fetchLazy(rs, fields));
}
@Override
public Record fetchSingle(ResultSet rs, DataType>... types) {
return Tools.fetchSingle(fetchLazy(rs, types));
}
@Override
public Record fetchSingle(ResultSet rs, Class>... types) {
return Tools.fetchSingle(fetchLazy(rs, types));
}
@Override
public Optional fetchOptional(ResultSet rs) {
return Optional.ofNullable(fetchOne(rs));
}
@Override
public Optional fetchOptional(ResultSet rs, Field>... fields) {
return Optional.ofNullable(fetchOne(rs, fields));
}
@Override
public Optional fetchOptional(ResultSet rs, DataType>... types) {
return Optional.ofNullable(fetchOne(rs, types));
}
@Override
public Optional fetchOptional(ResultSet rs, Class>... types) {
return Optional.ofNullable(fetchOne(rs, types));
}
@Override
public Object fetchValue(ResultSet rs) {
return value1((Record1) fetchOne(rs));
}
@Override
public T fetchValue(ResultSet rs, Field field) {
return (T) value1((Record1) fetchOne(rs, field));
}
@Override
public T fetchValue(ResultSet rs, DataType type) {
return (T) value1((Record1) fetchOne(rs, type));
}
@Override
public T fetchValue(ResultSet rs, Class type) {
return (T) value1((Record1) fetchOne(rs, type));
}
@Override
public Optional> fetchOptionalValue(ResultSet rs) {
return Optional.ofNullable(fetchValue(rs));
}
@Override
public Optional fetchOptionalValue(ResultSet rs, Field field) {
return Optional.ofNullable(fetchValue(rs, field));
}
@Override
public Optional fetchOptionalValue(ResultSet rs, DataType type) {
return Optional.ofNullable(fetchValue(rs, type));
}
@Override
public Optional fetchOptionalValue(ResultSet rs, Class type) {
return Optional.ofNullable(fetchValue(rs, type));
}
@Override
public List> fetchValues(ResultSet rs) {
return fetch(rs).getValues(0);
}
@Override
public List fetchValues(ResultSet rs, Field field) {
return fetch(rs).getValues(field);
}
@Override
public List fetchValues(ResultSet rs, DataType type) {
return fetch(rs).getValues(0, type.getType());
}
@Override
public List fetchValues(ResultSet rs, Class type) {
return fetch(rs).getValues(0, type);
}
@Override
public Cursor fetchLazy(ResultSet rs) {
try {
return fetchLazy(rs, new MetaDataFieldProvider(configuration(), rs.getMetaData()).getFields());
}
catch (SQLException e) {
throw new DataAccessException("Error while accessing ResultSet meta data", e);
}
}
@Override
public Cursor fetchLazy(ResultSet rs, Field>... fields) {
ExecuteContext ctx = new DefaultExecuteContext(configuration());
ExecuteListener listener = ExecuteListeners.getAndStart(ctx);
ctx.resultSet(rs);
return new CursorImpl<>(ctx, listener, fields, null, false, true);
}
@Override
public Cursor fetchLazy(ResultSet rs, DataType>... types) {
try {
Field>[] fields = new Field[types.length];
ResultSetMetaData meta = rs.getMetaData();
int columns = meta.getColumnCount();
for (int i = 0; i < types.length && i < columns; i++)
fields[i] = field(meta.getColumnLabel(i + 1), types[i]);
return fetchLazy(rs, fields);
}
catch (SQLException e) {
throw new DataAccessException("Error while accessing ResultSet meta data", e);
}
}
@Override
public Cursor fetchLazy(ResultSet rs, Class>... types) {
return fetchLazy(rs, Tools.dataTypes(types));
}
@Override
public CompletionStage> fetchAsync(ResultSet rs) {
return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs);
}
@Override
public CompletionStage> fetchAsync(ResultSet rs, Field>... fields) {
return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs, fields);
}
@Override
public CompletionStage> fetchAsync(ResultSet rs, DataType>... types) {
return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs, types);
}
@Override
public CompletionStage> fetchAsync(ResultSet rs, Class>... types) {
return fetchAsync(Tools.configuration(configuration()).executorProvider().provide(), rs, types);
}
@Override
public CompletionStage> fetchAsync(Executor executor, ResultSet rs) {
return ExecutorProviderCompletionStage.of(
CompletableFuture.supplyAsync(blocking(() -> fetch(rs)), executor),
() -> executor
);
}
@Override
public CompletionStage> fetchAsync(Executor executor, ResultSet rs, Field>... fields) {
return ExecutorProviderCompletionStage.of(
CompletableFuture.supplyAsync(blocking(() -> fetch(rs, fields)), executor),
() -> executor
);
}
@Override
public CompletionStage> fetchAsync(Executor executor, ResultSet rs, DataType>... types) {
return ExecutorProviderCompletionStage.of(
CompletableFuture.supplyAsync(blocking(() -> fetch(rs, types)), executor),
() -> executor
);
}
@Override
public CompletionStage> fetchAsync(Executor executor, ResultSet rs, Class>... types) {
return ExecutorProviderCompletionStage.of(
CompletableFuture.supplyAsync(blocking(() -> fetch(rs, types)), executor),
() -> executor
);
}
@Override
public Stream fetchStream(ResultSet rs) {
return fetchLazy(rs).stream();
}
@Override
public Stream fetchStream(ResultSet rs, Field>... fields) {
return fetchLazy(rs, fields).stream();
}
@Override
public Stream fetchStream(ResultSet rs, DataType>... types) {
return fetchLazy(rs, types).stream();
}
@Override
public Stream fetchStream(ResultSet rs, Class>... types) {
return fetchLazy(rs, types).stream();
}
@Override
public Result fetchFromTXT(String string) {
return fetchFromTXT(string, "{null}");
}
@Override
public Result fetchFromTXT(String string, String nullLiteral) {
return fetchFromStringData(Tools.parseTXT(string, nullLiteral));
}
@Override
public Result fetchFromHTML(String string) {
return fetchFromStringData(Tools.parseHTML(string));
}
@Override
public Result fetchFromCSV(String string) {
return fetchFromCSV(string, true, ',');
}
@Override
public Result fetchFromCSV(String string, char delimiter) {
return fetchFromCSV(string, true, delimiter);
}
@Override
public Result fetchFromCSV(String string, boolean header) {
return fetchFromCSV(string, header, ',');
}
@Override
public Result fetchFromCSV(String string, boolean header, char delimiter) {
CSVReader reader = new CSVReader(new StringReader(string), delimiter);
List list = null;
try {
list = reader.readAll();
}
catch (IOException e) {
throw new DataAccessException("Could not read the CSV string", e);
}
finally {
try {
reader.close();
}
catch (IOException ignore) {}
}
return fetchFromStringData(list, header);
}
@Override
public Result fetchFromJSON(String string) {
return new JSONReader(this, null, null, false).read(string);
}
@Override
public Result fetchFromXML(String string) {
return new XMLHandler<>(this, null, null).read(string);
}
@Override
public Result fetchFromStringData(String[]... strings) {
return fetchFromStringData(list(strings), true);
}
@Override
public Result fetchFromStringData(List strings) {
return fetchFromStringData(strings, true);
}
@Override
public Result fetchFromStringData(List strings, boolean header) {
if (strings.size() == 0) {
return new ResultImpl<>(configuration());
}
else {
String[] firstRow = strings.get(0);
int firstRowIndex = header ? 1 : 0;
Field>[] fields = header
? Tools.map(firstRow, s -> field(name(s), String.class), Field[]::new)
: Tools.map(firstRow, (s, i) -> field(name("COL" + (i + 1)), String.class), Field[]::new);
AbstractRow row = Tools.row0(fields);
Result result = new ResultImpl<>(configuration(), row);
if (strings.size() > firstRowIndex) {
for (String[] values : strings.subList(firstRowIndex, strings.size())) {
RecordImplN record = new RecordImplN(row);
for (int i = 0; i < Math.min(values.length, fields.length); i++) {
record.values[i] = values[i];
record.originals[i] = values[i];
}
result.add(record);
}
}
return result;
}
}
// -------------------------------------------------------------------------
// XXX Global Query factory
// -------------------------------------------------------------------------
@Override
public WithAsStep with(String alias) {
return new WithImpl(configuration(), false).with(alias);
}
@Override
public WithAsStep with(String alias, String... fieldAliases) {
return new WithImpl(configuration(), false).with(alias, fieldAliases);
}
@Override
public WithAsStep with(String alias, Collection fieldAliases) {
return new WithImpl(configuration(), false).with(alias, fieldAliases);
}
@Override
public WithAsStep with(Name alias) {
return new WithImpl(configuration(), false).with(alias);
}
@Override
public WithAsStep with(Name alias, Name... fieldAliases) {
return new WithImpl(configuration(), false).with(alias, fieldAliases);
}
@Override
public WithAsStep with(Name alias, Collection extends Name> fieldAliases) {
return new WithImpl(configuration(), false).with(alias, fieldAliases);
}
@Override
public WithAsStep with(String alias, Function super Field>, ? extends String> fieldNameFunction) {
return new WithImpl(configuration(), false).with(alias, fieldNameFunction);
}
@Override
public WithAsStep with(String alias, BiFunction super Field>, ? super Integer, ? extends String> fieldNameFunction) {
return new WithImpl(configuration(), false).with(alias, fieldNameFunction);
}
@Override
public WithAsStep1 with(String alias, String fieldAlias1) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1);
}
@Override
public WithAsStep2 with(String alias, String fieldAlias1, String fieldAlias2) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2);
}
@Override
public WithAsStep3 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3);
}
@Override
public WithAsStep4 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4);
}
@Override
public WithAsStep5 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5);
}
@Override
public WithAsStep6 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6);
}
@Override
public WithAsStep7 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7);
}
@Override
public WithAsStep8 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8);
}
@Override
public WithAsStep9 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9);
}
@Override
public WithAsStep10 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10);
}
@Override
public WithAsStep11 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11);
}
@Override
public WithAsStep12 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12);
}
@Override
public WithAsStep13 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13);
}
@Override
public WithAsStep14 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14);
}
@Override
public WithAsStep15 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15);
}
@Override
public WithAsStep16 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16);
}
@Override
public WithAsStep17 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17);
}
@Override
public WithAsStep18 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18);
}
@Override
public WithAsStep19 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19);
}
@Override
public WithAsStep20 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20);
}
@Override
public WithAsStep21 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20, String fieldAlias21) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21);
}
@Override
public WithAsStep22 with(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20, String fieldAlias21, String fieldAlias22) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21, fieldAlias22);
}
@Override
public WithAsStep1 with(Name alias, Name fieldAlias1) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1);
}
@Override
public WithAsStep2 with(Name alias, Name fieldAlias1, Name fieldAlias2) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2);
}
@Override
public WithAsStep3 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3);
}
@Override
public WithAsStep4 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4);
}
@Override
public WithAsStep5 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5);
}
@Override
public WithAsStep6 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6);
}
@Override
public WithAsStep7 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7);
}
@Override
public WithAsStep8 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8);
}
@Override
public WithAsStep9 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9);
}
@Override
public WithAsStep10 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10);
}
@Override
public WithAsStep11 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11);
}
@Override
public WithAsStep12 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12);
}
@Override
public WithAsStep13 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13);
}
@Override
public WithAsStep14 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14);
}
@Override
public WithAsStep15 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15);
}
@Override
public WithAsStep16 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16);
}
@Override
public WithAsStep17 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17);
}
@Override
public WithAsStep18 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18);
}
@Override
public WithAsStep19 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19);
}
@Override
public WithAsStep20 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20);
}
@Override
public WithAsStep21 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20, Name fieldAlias21) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21);
}
@Override
public WithAsStep22 with(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20, Name fieldAlias21, Name fieldAlias22) {
return new WithImpl(configuration(), false).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21, fieldAlias22);
}
@Override
public WithStep with(CommonTableExpression>... tables) {
return new WithImpl(configuration(), false).with(tables);
}
@Override
public WithStep with(Collection extends CommonTableExpression>> tables) {
return new WithImpl(configuration(), false).with(tables);
}
@Override
public WithAsStep withRecursive(String alias) {
return new WithImpl(configuration(), true).with(alias);
}
@Override
public WithAsStep withRecursive(String alias, String... fieldAliases) {
return new WithImpl(configuration(), true).with(alias, fieldAliases);
}
@Override
public WithAsStep withRecursive(String alias, Collection fieldAliases) {
return new WithImpl(configuration(), true).with(alias, fieldAliases);
}
@Override
public WithAsStep withRecursive(Name alias) {
return new WithImpl(configuration(), true).with(alias);
}
@Override
public WithAsStep withRecursive(Name alias, Name... fieldAliases) {
return new WithImpl(configuration(), true).with(alias, fieldAliases);
}
@Override
public WithAsStep withRecursive(Name alias, Collection extends Name> fieldAliases) {
return new WithImpl(configuration(), true).with(alias, fieldAliases);
}
@Override
public WithAsStep withRecursive(String alias, Function super Field>, ? extends String> fieldNameFunction) {
return new WithImpl(configuration(), true).with(alias, fieldNameFunction);
}
@Override
public WithAsStep withRecursive(String alias, BiFunction super Field>, ? super Integer, ? extends String> fieldNameFunction) {
return new WithImpl(configuration(), true).with(alias, fieldNameFunction);
}
@Override
public WithAsStep1 withRecursive(String alias, String fieldAlias1) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1);
}
@Override
public WithAsStep2 withRecursive(String alias, String fieldAlias1, String fieldAlias2) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2);
}
@Override
public WithAsStep3 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3);
}
@Override
public WithAsStep4 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4);
}
@Override
public WithAsStep5 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5);
}
@Override
public WithAsStep6 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6);
}
@Override
public WithAsStep7 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7);
}
@Override
public WithAsStep8 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8);
}
@Override
public WithAsStep9 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9);
}
@Override
public WithAsStep10 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10);
}
@Override
public WithAsStep11 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11);
}
@Override
public WithAsStep12 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12);
}
@Override
public WithAsStep13 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13);
}
@Override
public WithAsStep14 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14);
}
@Override
public WithAsStep15 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15);
}
@Override
public WithAsStep16 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16);
}
@Override
public WithAsStep17 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17);
}
@Override
public WithAsStep18 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18);
}
@Override
public WithAsStep19 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19);
}
@Override
public WithAsStep20 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20);
}
@Override
public WithAsStep21 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20, String fieldAlias21) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21);
}
@Override
public WithAsStep22 withRecursive(String alias, String fieldAlias1, String fieldAlias2, String fieldAlias3, String fieldAlias4, String fieldAlias5, String fieldAlias6, String fieldAlias7, String fieldAlias8, String fieldAlias9, String fieldAlias10, String fieldAlias11, String fieldAlias12, String fieldAlias13, String fieldAlias14, String fieldAlias15, String fieldAlias16, String fieldAlias17, String fieldAlias18, String fieldAlias19, String fieldAlias20, String fieldAlias21, String fieldAlias22) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21, fieldAlias22);
}
@Override
public WithAsStep1 withRecursive(Name alias, Name fieldAlias1) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1);
}
@Override
public WithAsStep2 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2);
}
@Override
public WithAsStep3 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3);
}
@Override
public WithAsStep4 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4);
}
@Override
public WithAsStep5 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5);
}
@Override
public WithAsStep6 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6);
}
@Override
public WithAsStep7 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7);
}
@Override
public WithAsStep8 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8);
}
@Override
public WithAsStep9 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9);
}
@Override
public WithAsStep10 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10);
}
@Override
public WithAsStep11 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11);
}
@Override
public WithAsStep12 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12);
}
@Override
public WithAsStep13 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13);
}
@Override
public WithAsStep14 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14);
}
@Override
public WithAsStep15 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15);
}
@Override
public WithAsStep16 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16);
}
@Override
public WithAsStep17 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17);
}
@Override
public WithAsStep18 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18);
}
@Override
public WithAsStep19 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19);
}
@Override
public WithAsStep20 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20);
}
@Override
public WithAsStep21 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20, Name fieldAlias21) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21);
}
@Override
public WithAsStep22 withRecursive(Name alias, Name fieldAlias1, Name fieldAlias2, Name fieldAlias3, Name fieldAlias4, Name fieldAlias5, Name fieldAlias6, Name fieldAlias7, Name fieldAlias8, Name fieldAlias9, Name fieldAlias10, Name fieldAlias11, Name fieldAlias12, Name fieldAlias13, Name fieldAlias14, Name fieldAlias15, Name fieldAlias16, Name fieldAlias17, Name fieldAlias18, Name fieldAlias19, Name fieldAlias20, Name fieldAlias21, Name fieldAlias22) {
return new WithImpl(configuration(), true).with(alias, fieldAlias1, fieldAlias2, fieldAlias3, fieldAlias4, fieldAlias5, fieldAlias6, fieldAlias7, fieldAlias8, fieldAlias9, fieldAlias10, fieldAlias11, fieldAlias12, fieldAlias13, fieldAlias14, fieldAlias15, fieldAlias16, fieldAlias17, fieldAlias18, fieldAlias19, fieldAlias20, fieldAlias21, fieldAlias22);
}
@Override
public WithStep withRecursive(CommonTableExpression>... tables) {
return new WithImpl(configuration(), true).with(tables);
}
@Override
public WithStep withRecursive(Collection extends CommonTableExpression>> tables) {
return new WithImpl(configuration(), true).with(tables);
}
@Override
public SelectWhereStep selectFrom(TableLike table) {
return new SelectImpl(configuration(), null).from(table);
}
@Override
public SelectWhereStep selectFrom(Name table) {
return new SelectImpl(configuration(), null).from(table);
}
@Override
public SelectWhereStep selectFrom(SQL sql) {
return new SelectImpl(configuration(), null).from(sql);
}
@Override
public SelectWhereStep selectFrom(String sql) {
return new SelectImpl(configuration(), null).from(sql);
}
@Override
public SelectWhereStep selectFrom(String sql, Object... bindings) {
return new SelectImpl(configuration(), null).from(sql, bindings);
}
@Override
public SelectWhereStep selectFrom(String sql, QueryPart... parts) {
return new SelectImpl(configuration(), null).from(sql, parts);
}
@Override
public SelectSelectStep select(Collection extends SelectFieldOrAsterisk> fields) {
return new SelectImpl(configuration(), null).select(fields);
}
@Override
public SelectSelectStep select(SelectFieldOrAsterisk... fields) {
return new SelectImpl(configuration(), null).select(fields);
}
@Override
public SelectSelectStep> select(SelectField field1) {
return (SelectSelectStep) select(new SelectField[] { field1 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2) {
return (SelectSelectStep) select(new SelectField[] { field1, field2 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField field9, SelectField field10, SelectField field11, SelectField field12) {
return (SelectSelectStep) select(new SelectField[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12 });
}
@Override
public SelectSelectStep> select(SelectField field1, SelectField field2, SelectField field3, SelectField field4, SelectField field5, SelectField field6, SelectField field7, SelectField field8, SelectField