diff --git a/jOOQ-tools/src/org/jooq/xtend/DSLContext.xtend b/jOOQ-tools/src/org/jooq/xtend/DSLContext.xtend index e188e31843..83a8be2f74 100644 --- a/jOOQ-tools/src/org/jooq/xtend/DSLContext.xtend +++ b/jOOQ-tools/src/org/jooq/xtend/DSLContext.xtend @@ -63,12 +63,53 @@ class DSLContext extends Generators { def static void main(String[] args) { val ctx = new DSLContext(); + ctx.generateNewRecord(); ctx.generateSelect(); ctx.generateSelectDistinct(); ctx.generateInsert(); ctx.generateMerge(); } + def generateNewRecord() { + val outImpl = new StringBuilder(); + val outAPI = new StringBuilder(); + + for (degree : (1..Constants::MAX_ROW_DEGREE)) { + var fieldOrRow = "Row" + degree; + + if (degree == 1) { + fieldOrRow = "Field"; + } + + outAPI.append(''' + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + «generatedMethod» + <«TN(degree)»> Record«recTypeSuffix(degree)» newRecord(«Field_TN_fieldn(degree)»); + '''); + + outImpl.append(''' + + «generatedMethod» + @Override + public <«TN(degree)»> Record«recTypeSuffix(degree)» newRecord(«Field_TN_fieldn(degree)») { + return (Record«recTypeSuffixRaw(degree)») newRecord(new Field[] { «fieldn(degree)» }); + } + '''); + } + + insert("org.jooq.DSLContext", outAPI, "newRecord"); + insert("org.jooq.impl.DefaultDSLContext", outImpl, "newRecord"); + } + def generateSelect() { val outDSL = new StringBuilder(); val outImpl = new StringBuilder(); diff --git a/jOOQ/src/main/java/org/jooq/DSLContext.java b/jOOQ/src/main/java/org/jooq/DSLContext.java index d681582b3c..3d5968caa3 100644 --- a/jOOQ/src/main/java/org/jooq/DSLContext.java +++ b/jOOQ/src/main/java/org/jooq/DSLContext.java @@ -53,43 +53,43 @@ */ package org.jooq; -import static org.jooq.SQLDialect.ASE; -import static org.jooq.SQLDialect.CUBRID; -import static org.jooq.SQLDialect.DB2; -import static org.jooq.SQLDialect.DERBY; -import static org.jooq.SQLDialect.FIREBIRD; -import static org.jooq.SQLDialect.H2; -import static org.jooq.SQLDialect.HSQLDB; -import static org.jooq.SQLDialect.INGRES; -import static org.jooq.SQLDialect.MARIADB; -import static org.jooq.SQLDialect.MYSQL; -import static org.jooq.SQLDialect.ORACLE; -import static org.jooq.SQLDialect.POSTGRES; -import static org.jooq.SQLDialect.SQLITE; -import static org.jooq.SQLDialect.SQLSERVER; -import static org.jooq.SQLDialect.SQLSERVER2012; -import static org.jooq.SQLDialect.SYBASE; - -import java.math.BigInteger; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.Statement; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import javax.annotation.Generated; - -import org.jooq.api.annotation.State; -import org.jooq.api.annotation.Transition; -import org.jooq.conf.ParamType; -import org.jooq.conf.Settings; -import org.jooq.conf.StatementType; -import org.jooq.exception.DataAccessException; -import org.jooq.exception.InvalidResultException; -import org.jooq.exception.MappingException; -import org.jooq.impl.DSL; +import static org.jooq.SQLDialect.ASE; +import static org.jooq.SQLDialect.CUBRID; +import static org.jooq.SQLDialect.DB2; +import static org.jooq.SQLDialect.DERBY; +import static org.jooq.SQLDialect.FIREBIRD; +import static org.jooq.SQLDialect.H2; +import static org.jooq.SQLDialect.HSQLDB; +import static org.jooq.SQLDialect.INGRES; +import static org.jooq.SQLDialect.MARIADB; +import static org.jooq.SQLDialect.MYSQL; +import static org.jooq.SQLDialect.ORACLE; +import static org.jooq.SQLDialect.POSTGRES; +import static org.jooq.SQLDialect.SQLITE; +import static org.jooq.SQLDialect.SQLSERVER; +import static org.jooq.SQLDialect.SQLSERVER2012; +import static org.jooq.SQLDialect.SYBASE; + +import java.math.BigInteger; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Statement; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import org.jooq.api.annotation.State; +import org.jooq.api.annotation.Transition; +import org.jooq.conf.ParamType; +import org.jooq.conf.Settings; +import org.jooq.conf.StatementType; +import org.jooq.exception.DataAccessException; +import org.jooq.exception.InvalidResultException; +import org.jooq.exception.MappingException; +import org.jooq.impl.DSL; /** * A contextual DSL providing "attached" implementations to the @@ -4633,6 +4633,286 @@ public interface DSLContext { * @see Record#into(Class) */ R newRecord(Table table, Object source); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @param fields The fields defining the Record type + * @return The new record + */ + Record newRecord(Field... fields); + + // [jooq-tools] START [newRecord] + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record1 newRecord(Field field1); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record2 newRecord(Field field1, Field field2); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record3 newRecord(Field field1, Field field2, Field field3); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record4 newRecord(Field field1, Field field2, Field field3, Field field4); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record5 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record6 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record7 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record8 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record9 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record10 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record11 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record12 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record13 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record14 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record15 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record16 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record17 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record18 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record19 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record20 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record21 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21); + + /** + * Create a new empty {@link Record}. + *

+ * The resulting record is attached to this {@link Configuration} by + * default. Use {@link Settings#isAttachRecords()} to override this + * behaviour. + * + * @return The new record + */ + @Generated("This method was generated using jOOQ-tools") + Record22 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21, Field field22); + +// [jooq-tools] END [newRecord] /** * Create a new empty {@link Result}. diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java index 55eafd4282..1951ab6912 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java @@ -1502,6 +1502,147 @@ public class DefaultDSLContext implements DSLContext, Serializable { // XXX Global Record factory // ------------------------------------------------------------------------- + @Override + public Record newRecord(Field... fields) { + return Utils.newRecord(RecordImpl.class, fields, configuration).operate(null); + } + + // [jooq-tools] START [newRecord] + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record1 newRecord(Field field1) { + return (Record1) newRecord(new Field[] { field1 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record2 newRecord(Field field1, Field field2) { + return (Record2) newRecord(new Field[] { field1, field2 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record3 newRecord(Field field1, Field field2, Field field3) { + return (Record3) newRecord(new Field[] { field1, field2, field3 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record4 newRecord(Field field1, Field field2, Field field3, Field field4) { + return (Record4) newRecord(new Field[] { field1, field2, field3, field4 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record5 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5) { + return (Record5) newRecord(new Field[] { field1, field2, field3, field4, field5 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record6 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6) { + return (Record6) newRecord(new Field[] { field1, field2, field3, field4, field5, field6 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record7 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7) { + return (Record7) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record8 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8) { + return (Record8) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record9 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9) { + return (Record9) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record10 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10) { + return (Record10) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record11 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11) { + return (Record11) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record12 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12) { + return (Record12) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record13 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13) { + return (Record13) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record14 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14) { + return (Record14) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record15 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15) { + return (Record15) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record16 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16) { + return (Record16) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record17 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17) { + return (Record17) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record18 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18) { + return (Record18) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record19 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19) { + return (Record19) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record20 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20) { + return (Record20) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record21 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21) { + return (Record21) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21 }); + } + + @Generated("This method was generated using jOOQ-tools") + @Override + public Record22 newRecord(Field field1, Field field2, Field field3, Field field4, Field field5, Field field6, Field field7, Field field8, Field field9, Field field10, Field field11, Field field12, Field field13, Field field14, Field field15, Field field16, Field field17, Field field18, Field field19, Field field20, Field field21, Field field22) { + return (Record22) newRecord(new Field[] { field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12, field13, field14, field15, field16, field17, field18, field19, field20, field21, field22 }); + } + +// [jooq-tools] END [newRecord] + @Override public > R newRecord(UDT type) { return Utils.newRecord(type, configuration).operate(null);