[#1906] Use Xtend to generate Row[N], Record[N] and other code

artefacts - Added Update / Scala Conversions code generation
This commit is contained in:
Lukas Eder 2012-11-11 12:20:50 +01:00
parent a96282f0fa
commit 83feae654e
9 changed files with 529 additions and 175 deletions

View File

@ -306,6 +306,11 @@ object Conversions {
case _ => new AnyFieldWrapper(f)
}
// --------------------------------------------------------------------------
// Conversions from jOOQ Record[N] types to Scala Tuple[N] types
// --------------------------------------------------------------------------
// [jooq-tools] START [tuples]
/**
* Enrich any {@link org.jooq.Record1} with the {@link Tuple1} case class
*/
@ -369,4 +374,7 @@ object Conversions {
case null => null
case _ => Tuple8(r.value1, r.value2, r.value3, r.value4, r.value5, r.value6, r.value7, r.value8)
}
// [jooq-tools] END [tuples]
}

View File

@ -0,0 +1,68 @@
/**
* Copyright (c) 2009-2012, Lukas Eder, lukas.eder@gmail.com
* All rights reserved.
*
* This software is licensed to you under the Apache License, Version 2.0
* (the "License"); You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* . Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* . Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* . Neither the name "jOOQ" nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package org.jooq.xtend
import org.jooq.Constants
/**
* @author Lukas Eder
*/
class Conversions extends Generators {
def static void main(String[] args) {
val conversions = new Conversions();
conversions.generateConversions();
}
def generateConversions() {
val out = new StringBuilder();
out.append('''
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
/**
* Enrich any {@link org.jooq.Record«degree»} with the {@link Tuple«degree»} case class
*/
implicit def asTuple«degree»[«TN(degree)»](r : Record«degree»[«TN(degree)»]): Tuple«degree»[«TN(degree)»] = r match {
case null => null
case _ => Tuple«degree»(«FOR d : (1..degree) SEPARATOR ', '»r.value«d»«ENDFOR»)
}
«ENDFOR»
''');
insert("org.jooq.scala.Conversions", out, "tuples");
}
}

View File

@ -0,0 +1,11 @@
package org.jooq.xtend
class GenerateAll {
def static void main(String[] args) {
Conversions::main(args);
Factory::main(args);
Records::main(args);
Rows::main(args);
Update::main(args);
}
}

View File

@ -45,8 +45,17 @@ import java.io.RandomAccessFile
*/
abstract class Generators {
def file(String className) {
if (className.contains("scala")) {
return new File("./../jOOQ-scala/src/main/scala/" + className.replace(".", "/") + ".scala");
}
else {
return new File("./../jOOQ/src/main/java/" + className.replace(".", "/") + ".java");
}
}
def read(String className) {
val file = new File("./../jOOQ/src/main/java/" + className.replace(".", "/") + ".java");
val file = file(className)
try {
val f = new RandomAccessFile(file, "r");
@ -74,7 +83,7 @@ abstract class Generators {
}
def write(String className, CharSequence contents) {
val file = new File("./../jOOQ/src/main/java/" + className.replace(".", "/") + ".java");
val file = file(className);
file.getParentFile().mkdirs();
try {

View File

@ -0,0 +1,190 @@
/**
* Copyright (c) 2009-2012, Lukas Eder, lukas.eder@gmail.com
* All rights reserved.
*
* This software is licensed to you under the Apache License, Version 2.0
* (the "License"); You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* . Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* . Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* . Neither the name "jOOQ" nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package org.jooq.xtend
import org.jooq.Constants
/**
* @author Lukas Eder
*/
class Update extends Generators {
def static void main(String[] args) {
val update = new Update();
update.generateUpdateQuery();
update.generateUpdateQueryImpl();
update.generateUpdateSetFirstStep();
update.generateUpdateImpl();
}
def generateUpdateQuery() {
val out = new StringBuilder();
out.append('''
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
«generatedMethod»
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<«TN(degree)»> void addValues(Row«degree»<«TN(degree)»> row, Row«degree»<«TN(degree)»> value);
«ENDFOR»
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
«generatedMethod»
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<«TN(degree)»> void addValues(Row«degree»<«TN(degree)»> row, Select<? extends Record«degree»<«TN(degree)»>> select);
«ENDFOR»
''');
insert("org.jooq.UpdateQuery", out, "addValues");
}
def generateUpdateQueryImpl() {
val out = new StringBuilder();
out.append('''
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
«generatedMethod»
@Override
public final <«TN(degree)»> void addValues(Row«degree»<«TN(degree)»> row, Row«degree»<«TN(degree)»> value) {
addValues0(row, value);
}
«ENDFOR»
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
«generatedMethod»
@Override
public final <«TN(degree)»> void addValues(Row«degree»<«TN(degree)»> row, Select<? extends Record«degree»<«TN(degree)»>> select) {
addValues0(row, select);
}
«ENDFOR»
''');
insert("org.jooq.impl.UpdateQueryImpl", out, "addValues");
}
def generateUpdateSetFirstStep() {
val out = new StringBuilder();
out.append('''
«classHeader»
package org.jooq;
import static org.jooq.SQLDialect.DB2;
import static org.jooq.SQLDialect.H2;
import static org.jooq.SQLDialect.HSQLDB;
import static org.jooq.SQLDialect.INGRES;
import static org.jooq.SQLDialect.ORACLE;
import static org.jooq.SQLDialect.POSTGRES;
import javax.annotation.Generated;
/**
* This type is used for the {@link Update}'s DSL API.
* <p>
* Example: <code><pre>
* Executor create = new Executor(connection, dialect);
*
* create.update(table)
* .set(field1, value1)
* .set(field2, value2)
* .where(field1.greaterThan(100))
* .execute();
* </pre></code>
*
* @author Lukas Eder
*/
«generatedAnnotation»
public interface UpdateSetFirstStep<R extends Record> extends UpdateSetStep<R> {
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
* <p>
* This is simulated using a subquery for the <code>value</code>, where row
* value expressions aren't supported.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<«TN(degree)»> UpdateWhereStep<R> set(Row«degree»<«TN(degree)»> row, Row«degree»<«TN(degree)»> value);
«ENDFOR»
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<«TN(degree)»> UpdateWhereStep<R> set(Row«degree»<«TN(degree)»> row, Select<? extends Record«degree»<«TN(degree)»>> select);
«ENDFOR»
}
''');
write("org.jooq.UpdateSetFirstStep", out);
}
def generateUpdateImpl() {
val out = new StringBuilder();
out.append('''
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
«generatedMethod»
@Override
public final <«TN(degree)»> UpdateWhereStep<R> set(Row«degree»<«TN(degree)»> row, Row«degree»<«TN(degree)»> value) {
getDelegate().addValues(row, value);
return this;
}
«ENDFOR»
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
«generatedMethod»
@Override
public final <«TN(degree)»> UpdateWhereStep<R> set(Row«degree»<«TN(degree)»> row, Select<? extends Record«degree»<«TN(degree)»>> select) {
getDelegate().addValues(row, select);
return this;
}
«ENDFOR»
''');
insert("org.jooq.impl.UpdateImpl", out, "set");
}
}

View File

@ -45,6 +45,8 @@ import static org.jooq.SQLDialect.POSTGRES;
import java.util.Collection;
import javax.annotation.Generated;
/**
* A query for data updating
*
@ -54,101 +56,121 @@ import java.util.Collection;
@SuppressWarnings("deprecation")
public interface UpdateQuery<R extends Record> extends StoreQuery<R>, ConditionProvider, Update<R> {
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1> void addValues(Row1<T1> row, Row1<T1> value);
// [jooq-tools] START [addValues]
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1> void addValues(Row1<T1> row, Row1<T1> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2> void addValues(Row2<T1, T2> row, Row2<T1, T2> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3> void addValues(Row3<T1, T2, T3> row, Row3<T1, T2, T3> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4> void addValues(Row4<T1, T2, T3, T4> row, Row4<T1, T2, T3, T4> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4, T5> void addValues(Row5<T1, T2, T3, T4, T5> row, Row5<T1, T2, T3, T4, T5> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4, T5, T6> void addValues(Row6<T1, T2, T3, T4, T5, T6> row, Row6<T1, T2, T3, T4, T5, T6> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4, T5, T6, T7> void addValues(Row7<T1, T2, T3, T4, T5, T6, T7> row, Row7<T1, T2, T3, T4, T5, T6, T7> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4, T5, T6, T7, T8> void addValues(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Row8<T1, T2, T3, T4, T5, T6, T7, T8> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1> void addValues(Row1<T1> row, Select<? extends Record1<T1>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2> void addValues(Row2<T1, T2> row, Select<? extends Record2<T1, T2>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3> void addValues(Row3<T1, T2, T3> row, Select<? extends Record3<T1, T2, T3>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4> void addValues(Row4<T1, T2, T3, T4> row, Select<? extends Record4<T1, T2, T3, T4>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4, T5> void addValues(Row5<T1, T2, T3, T4, T5> row, Select<? extends Record5<T1, T2, T3, T4, T5>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4, T5, T6> void addValues(Row6<T1, T2, T3, T4, T5, T6> row, Select<? extends Record6<T1, T2, T3, T4, T5, T6>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4, T5, T6, T7> void addValues(Row7<T1, T2, T3, T4, T5, T6, T7> row, Select<? extends Record7<T1, T2, T3, T4, T5, T6, T7>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Generated("This method was generated using jOOQ-tools")
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4, T5, T6, T7, T8> void addValues(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Select<? extends Record8<T1, T2, T3, T4, T5, T6, T7, T8>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2> void addValues(Row2<T1, T2> row, Row2<T1, T2> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3> void addValues(Row3<T1, T2, T3> row, Row3<T1, T2, T3> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4> void addValues(Row4<T1, T2, T3, T4> row, Row4<T1, T2, T3, T4> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4, T5> void addValues(Row5<T1, T2, T3, T4, T5> row, Row5<T1, T2, T3, T4, T5> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4, T5, T6> void addValues(Row6<T1, T2, T3, T4, T5, T6> row, Row6<T1, T2, T3, T4, T5, T6> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4, T5, T6, T7> void addValues(Row7<T1, T2, T3, T4, T5, T6, T7> row, Row7<T1, T2, T3, T4, T5, T6, T7> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
<T1, T2, T3, T4, T5, T6, T7, T8> void addValues(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Row8<T1, T2, T3, T4, T5, T6, T7, T8> value);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1> void addValues(Row1<T1> row, Select<? extends Record1<T1>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2> void addValues(Row2<T1, T2> row, Select<? extends Record2<T1, T2>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3> void addValues(Row3<T1, T2, T3> row, Select<? extends Record3<T1, T2, T3>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4> void addValues(Row4<T1, T2, T3, T4> row, Select<? extends Record4<T1, T2, T3, T4>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4, T5> void addValues(Row5<T1, T2, T3, T4, T5> row, Select<? extends Record5<T1, T2, T3, T4, T5>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4, T5, T6> void addValues(Row6<T1, T2, T3, T4, T5, T6> row, Select<? extends Record6<T1, T2, T3, T4, T5, T6>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4, T5, T6, T7> void addValues(Row7<T1, T2, T3, T4, T5, T6, T7> row, Select<? extends Record7<T1, T2, T3, T4, T5, T6, T7>> select);
/**
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
*/
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
<T1, T2, T3, T4, T5, T6, T7, T8> void addValues(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Select<? extends Record8<T1, T2, T3, T4, T5, T6, T7, T8>> select);
// [jooq-tools] END [addValues]
// ------------------------------------------------------------------------
// Methods from ConditionProvider

View File

@ -42,11 +42,13 @@ import static org.jooq.SQLDialect.INGRES;
import static org.jooq.SQLDialect.ORACLE;
import static org.jooq.SQLDialect.POSTGRES;
import javax.annotation.Generated;
/**
* This type is used for the {@link Update}'s DSL API.
* <p>
* Example: <code><pre>
* Factory create = new Factory();
* Executor create = new Executor(connection, dialect);
*
* create.update(table)
* .set(field1, value1)
@ -57,6 +59,7 @@ import static org.jooq.SQLDialect.POSTGRES;
*
* @author Lukas Eder
*/
@Generated("This class was generated using jOOQ-tools")
public interface UpdateSetFirstStep<R extends Record> extends UpdateSetStep<R> {
/**

View File

@ -42,6 +42,8 @@ import static org.jooq.impl.Factory.notExists;
import java.util.Collection;
import java.util.Map;
import javax.annotation.Generated;
import org.jooq.Condition;
import org.jooq.Configuration;
import org.jooq.Field;
@ -113,101 +115,120 @@ final class UpdateImpl<R extends Record>
return this;
}
// [jooq-tools] START [set]
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1> UpdateWhereStep<R> set(Row1<T1> row, Row1<T1> value) {
getDelegate().addValues(row, value);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2> UpdateWhereStep<R> set(Row2<T1, T2> row, Row2<T1, T2> value) {
getDelegate().addValues(row, value);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3> UpdateWhereStep<R> set(Row3<T1, T2, T3> row, Row3<T1, T2, T3> value) {
getDelegate().addValues(row, value);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4> UpdateWhereStep<R> set(Row4<T1, T2, T3, T4> row, Row4<T1, T2, T3, T4> value) {
getDelegate().addValues(row, value);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5> UpdateWhereStep<R> set(Row5<T1, T2, T3, T4, T5> row, Row5<T1, T2, T3, T4, T5> value) {
getDelegate().addValues(row, value);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6> UpdateWhereStep<R> set(Row6<T1, T2, T3, T4, T5, T6> row, Row6<T1, T2, T3, T4, T5, T6> value) {
getDelegate().addValues(row, value);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6, T7> UpdateWhereStep<R> set(Row7<T1, T2, T3, T4, T5, T6, T7> row, Row7<T1, T2, T3, T4, T5, T6, T7> value) {
getDelegate().addValues(row, value);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6, T7, T8> UpdateWhereStep<R> set(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Row8<T1, T2, T3, T4, T5, T6, T7, T8> value) {
getDelegate().addValues(row, value);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1> UpdateWhereStep<R> set(Row1<T1> row, Select<? extends Record1<T1>> select) {
getDelegate().addValues(row, select);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2> UpdateWhereStep<R> set(Row2<T1, T2> row, Select<? extends Record2<T1, T2>> select) {
getDelegate().addValues(row, select);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3> UpdateWhereStep<R> set(Row3<T1, T2, T3> row, Select<? extends Record3<T1, T2, T3>> select) {
getDelegate().addValues(row, select);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4> UpdateWhereStep<R> set(Row4<T1, T2, T3, T4> row, Select<? extends Record4<T1, T2, T3, T4>> select) {
getDelegate().addValues(row, select);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5> UpdateWhereStep<R> set(Row5<T1, T2, T3, T4, T5> row, Select<? extends Record5<T1, T2, T3, T4, T5>> select) {
getDelegate().addValues(row, select);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6> UpdateWhereStep<R> set(Row6<T1, T2, T3, T4, T5, T6> row, Select<? extends Record6<T1, T2, T3, T4, T5, T6>> select) {
getDelegate().addValues(row, select);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6, T7> UpdateWhereStep<R> set(Row7<T1, T2, T3, T4, T5, T6, T7> row, Select<? extends Record7<T1, T2, T3, T4, T5, T6, T7>> select) {
getDelegate().addValues(row, select);
return this;
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6, T7, T8> UpdateWhereStep<R> set(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Select<? extends Record8<T1, T2, T3, T4, T5, T6, T7, T8>> select) {
getDelegate().addValues(row, select);
return this;
}
// [jooq-tools] END [set]
@Override
public final UpdateImpl<R> where(Condition... conditions) {

View File

@ -44,6 +44,8 @@ import static org.jooq.impl.Factory.select;
import java.util.Collection;
import java.util.Map;
import javax.annotation.Generated;
import org.jooq.BindContext;
import org.jooq.Condition;
import org.jooq.Configuration;
@ -106,91 +108,111 @@ class UpdateQueryImpl<R extends Record> extends AbstractStoreQuery<R> implements
}
}
@Override
public final <T1> void addValues(Row1<T1> row, Row1<T1> value) {
addValues0(row, value);
}
// [jooq-tools] START [addValues]
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1> void addValues(Row1<T1> row, Row1<T1> value) {
addValues0(row, value);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2> void addValues(Row2<T1, T2> row, Row2<T1, T2> value) {
addValues0(row, value);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3> void addValues(Row3<T1, T2, T3> row, Row3<T1, T2, T3> value) {
addValues0(row, value);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4> void addValues(Row4<T1, T2, T3, T4> row, Row4<T1, T2, T3, T4> value) {
addValues0(row, value);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5> void addValues(Row5<T1, T2, T3, T4, T5> row, Row5<T1, T2, T3, T4, T5> value) {
addValues0(row, value);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6> void addValues(Row6<T1, T2, T3, T4, T5, T6> row, Row6<T1, T2, T3, T4, T5, T6> value) {
addValues0(row, value);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6, T7> void addValues(Row7<T1, T2, T3, T4, T5, T6, T7> row, Row7<T1, T2, T3, T4, T5, T6, T7> value) {
addValues0(row, value);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6, T7, T8> void addValues(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Row8<T1, T2, T3, T4, T5, T6, T7, T8> value) {
addValues0(row, value);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1> void addValues(Row1<T1> row, Select<? extends Record1<T1>> select) {
addValues0(row, select);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2> void addValues(Row2<T1, T2> row, Select<? extends Record2<T1, T2>> select) {
addValues0(row, select);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3> void addValues(Row3<T1, T2, T3> row, Select<? extends Record3<T1, T2, T3>> select) {
addValues0(row, select);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4> void addValues(Row4<T1, T2, T3, T4> row, Select<? extends Record4<T1, T2, T3, T4>> select) {
addValues0(row, select);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5> void addValues(Row5<T1, T2, T3, T4, T5> row, Select<? extends Record5<T1, T2, T3, T4, T5>> select) {
addValues0(row, select);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6> void addValues(Row6<T1, T2, T3, T4, T5, T6> row, Select<? extends Record6<T1, T2, T3, T4, T5, T6>> select) {
addValues0(row, select);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6, T7> void addValues(Row7<T1, T2, T3, T4, T5, T6, T7> row, Select<? extends Record7<T1, T2, T3, T4, T5, T6, T7>> select) {
addValues0(row, select);
}
@Generated("This method was generated using jOOQ-tools")
@Override
public final <T1, T2, T3, T4, T5, T6, T7, T8> void addValues(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Select<? extends Record8<T1, T2, T3, T4, T5, T6, T7, T8>> select) {
addValues0(row, select);
}
@Override
public final <T1, T2> void addValues(Row2<T1, T2> row, Row2<T1, T2> value) {
addValues0(row, value);
}
@Override
public final <T1, T2, T3> void addValues(Row3<T1, T2, T3> row, Row3<T1, T2, T3> value) {
addValues0(row, value);
}
@Override
public final <T1, T2, T3, T4> void addValues(Row4<T1, T2, T3, T4> row, Row4<T1, T2, T3, T4> value) {
addValues0(row, value);
}
@Override
public final <T1, T2, T3, T4, T5> void addValues(Row5<T1, T2, T3, T4, T5> row, Row5<T1, T2, T3, T4, T5> value) {
addValues0(row, value);
}
@Override
public final <T1, T2, T3, T4, T5, T6> void addValues(Row6<T1, T2, T3, T4, T5, T6> row, Row6<T1, T2, T3, T4, T5, T6> value) {
addValues0(row, value);
}
@Override
public final <T1, T2, T3, T4, T5, T6, T7> void addValues(Row7<T1, T2, T3, T4, T5, T6, T7> row, Row7<T1, T2, T3, T4, T5, T6, T7> value) {
addValues0(row, value);
}
@Override
public final <T1, T2, T3, T4, T5, T6, T7, T8> void addValues(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Row8<T1, T2, T3, T4, T5, T6, T7, T8> value) {
addValues0(row, value);
}
// [jooq-tools] END [addValues]
private final void addValues0(Row row, Row value) {
multiRow = row;
multiValue = value;
}
@Override
public final <T1> void addValues(Row1<T1> row, Select<? extends Record1<T1>> select) {
addValues0(row, select);
}
@Override
public final <T1, T2> void addValues(Row2<T1, T2> row, Select<? extends Record2<T1, T2>> select) {
addValues0(row, select);
}
@Override
public final <T1, T2, T3> void addValues(Row3<T1, T2, T3> row, Select<? extends Record3<T1, T2, T3>> select) {
addValues0(row, select);
}
@Override
public final <T1, T2, T3, T4> void addValues(Row4<T1, T2, T3, T4> row, Select<? extends Record4<T1, T2, T3, T4>> select) {
addValues0(row, select);
}
@Override
public final <T1, T2, T3, T4, T5> void addValues(Row5<T1, T2, T3, T4, T5> row, Select<? extends Record5<T1, T2, T3, T4, T5>> select) {
addValues0(row, select);
}
@Override
public final <T1, T2, T3, T4, T5, T6> void addValues(Row6<T1, T2, T3, T4, T5, T6> row, Select<? extends Record6<T1, T2, T3, T4, T5, T6>> select) {
addValues0(row, select);
}
@Override
public final <T1, T2, T3, T4, T5, T6, T7> void addValues(Row7<T1, T2, T3, T4, T5, T6, T7> row, Select<? extends Record7<T1, T2, T3, T4, T5, T6, T7>> select) {
addValues0(row, select);
}
@Override
public final <T1, T2, T3, T4, T5, T6, T7, T8> void addValues(Row8<T1, T2, T3, T4, T5, T6, T7, T8> row, Select<? extends Record8<T1, T2, T3, T4, T5, T6, T7, T8>> select) {
addValues0(row, select);
}
private final void addValues0(Row row, Select<?> select) {
multiRow = row;
multiSelect = select;