001/*
002 * This file is generated by jOOQ.
003 */
004package com.echothree.model.jooq.server.tables.invoice;
005
006
007import com.echothree.model.data.invoice.common.pk.InvoiceLineDetailPK;
008import com.echothree.model.data.invoice.common.pk.InvoiceLinePK;
009import com.echothree.model.data.invoice.common.pk.InvoiceLineTypePK;
010import com.echothree.model.data.invoice.common.pk.InvoiceLineUseTypePK;
011import com.echothree.model.data.invoice.common.pk.InvoicePK;
012import com.echothree.model.jooq.server.KeyRegistry;
013import com.echothree.model.jooq.server.tables.invoice.InvoiceLineTypes.InvoiceLineTypesPath;
014import com.echothree.model.jooq.server.tables.invoice.InvoiceLineUseTypes.InvoiceLineUseTypesPath;
015import com.echothree.model.jooq.server.tables.invoice.InvoiceLines.InvoiceLinesPath;
016import com.echothree.model.jooq.server.tables.invoice.Invoices.InvoicesPath;
017
018import java.util.Arrays;
019import java.util.Collection;
020import java.util.List;
021
022import org.jooq.Condition;
023import org.jooq.Converter;
024import org.jooq.Field;
025import org.jooq.ForeignKey;
026import org.jooq.InverseForeignKey;
027import org.jooq.Name;
028import org.jooq.Path;
029import org.jooq.PlainSQL;
030import org.jooq.QueryPart;
031import org.jooq.Record;
032import org.jooq.SQL;
033import org.jooq.Stringly;
034import org.jooq.Table;
035import org.jooq.TableField;
036import org.jooq.TableLike;
037import org.jooq.TableOptions;
038import org.jooq.UniqueKey;
039import org.jooq.impl.DSL;
040import org.jooq.impl.Internal;
041import org.jooq.impl.SQLDataType;
042import org.jooq.impl.TableImpl;
043
044
045/**
046 * This class is generated by jOOQ.
047 */
048@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
049public class InvoiceLineDetails extends TableImpl<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> {
050
051    private static final long serialVersionUID = 1L;
052
053    /**
054     * The reference instance of <code>invoicelinedetails</code>
055     */
056    public static final InvoiceLineDetails InvoiceLineDetails = new InvoiceLineDetails();
057
058    /**
059     * The class holding records for this type
060     */
061    @Override
062    public Class<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> getRecordType() {
063        return com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails.class;
064    }
065
066    /**
067     * The column <code>invoicelinedetails.invcldt_invoicelinedetailid</code>.
068     */
069    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, InvoiceLineDetailPK> INVOICE_LINE_DETAIL = createField(DSL.name("invcldt_invoicelinedetailid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, InvoiceLineDetailPK.class, id -> new com.echothree.model.data.invoice.common.pk.InvoiceLineDetailPK(id), primaryKey -> primaryKey.getEntityId()));
070
071    /**
072     * The column <code>invoicelinedetails.invcldt_invcl_invoicelineid</code>.
073     */
074    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, InvoiceLinePK> INVOICE_LINE = createField(DSL.name("invcldt_invcl_invoicelineid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, InvoiceLinePK.class, id -> new com.echothree.model.data.invoice.common.pk.InvoiceLinePK(id), primaryKey -> primaryKey.getEntityId()));
075
076    /**
077     * The column <code>invoicelinedetails.invcldt_invc_invoiceid</code>.
078     */
079    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, InvoicePK> INVOICE = createField(DSL.name("invcldt_invc_invoiceid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, InvoicePK.class, id -> new com.echothree.model.data.invoice.common.pk.InvoicePK(id), primaryKey -> primaryKey.getEntityId()));
080
081    /**
082     * The column <code>invoicelinedetails.invcldt_invoicelinesequence</code>.
083     */
084    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, Integer> INVOICE_LINE_SEQUENCE = createField(DSL.name("invcldt_invoicelinesequence"), SQLDataType.INTEGER.nullable(false), this, "");
085
086    /**
087     * The column <code>invoicelinedetails.invcldt_parentinvoicelineid</code>.
088     */
089    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, InvoiceLinePK> PARENT_INVOICE_LINE = createField(DSL.name("invcldt_parentinvoicelineid"), SQLDataType.BIGINT, this, "", Converter.ofNullable(Long.class, InvoiceLinePK.class, id -> new com.echothree.model.data.invoice.common.pk.InvoiceLinePK(id), primaryKey -> primaryKey.getEntityId()));
090
091    /**
092     * The column
093     * <code>invoicelinedetails.invcldt_invcltyp_invoicelinetypeid</code>.
094     */
095    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, InvoiceLineTypePK> INVOICE_LINE_TYPE = createField(DSL.name("invcldt_invcltyp_invoicelinetypeid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, InvoiceLineTypePK.class, id -> new com.echothree.model.data.invoice.common.pk.InvoiceLineTypePK(id), primaryKey -> primaryKey.getEntityId()));
096
097    /**
098     * The column
099     * <code>invoicelinedetails.invcldt_invclut_invoicelineusetypeid</code>.
100     */
101    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, InvoiceLineUseTypePK> INVOICE_LINE_USE_TYPE = createField(DSL.name("invcldt_invclut_invoicelineusetypeid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, InvoiceLineUseTypePK.class, id -> new com.echothree.model.data.invoice.common.pk.InvoiceLineUseTypePK(id), primaryKey -> primaryKey.getEntityId()));
102
103    /**
104     * The column <code>invoicelinedetails.invcldt_amount</code>.
105     */
106    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, Long> AMOUNT = createField(DSL.name("invcldt_amount"), SQLDataType.BIGINT.nullable(false), this, "");
107
108    /**
109     * The column <code>invoicelinedetails.invcldt_description</code>.
110     */
111    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, String> DESCRIPTION = createField(DSL.name("invcldt_description"), SQLDataType.VARCHAR(132), this, "");
112
113    /**
114     * The column <code>invoicelinedetails.invcldt_fromtime</code>.
115     */
116    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, Long> FROM_TIME = createField(DSL.name("invcldt_fromtime"), SQLDataType.BIGINT.nullable(false), this, "");
117
118    /**
119     * The column <code>invoicelinedetails.invcldt_thrutime</code>.
120     */
121    public final TableField<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, Long> THRU_TIME = createField(DSL.name("invcldt_thrutime"), SQLDataType.BIGINT.nullable(false), this, "");
122
123    private InvoiceLineDetails(Name alias, Table<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> aliased) {
124        this(alias, aliased, (Field<?>[]) null, null);
125    }
126
127    private InvoiceLineDetails(Name alias, Table<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> aliased, Field<?>[] parameters, Condition where) {
128        super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where);
129    }
130
131    /**
132     * Create an aliased <code>invoicelinedetails</code> table reference
133     */
134    public InvoiceLineDetails(String alias) {
135        this(DSL.name(alias), InvoiceLineDetails);
136    }
137
138    /**
139     * Create an aliased <code>invoicelinedetails</code> table reference
140     */
141    public InvoiceLineDetails(Name alias) {
142        this(alias, InvoiceLineDetails);
143    }
144
145    /**
146     * Create a <code>invoicelinedetails</code> table reference
147     */
148    public InvoiceLineDetails() {
149        this(DSL.name("invoicelinedetails"), null);
150    }
151
152    public <O extends Record> InvoiceLineDetails(Table<O> path, ForeignKey<O, com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> childPath, InverseForeignKey<O, com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> parentPath) {
153        super(path, childPath, parentPath, InvoiceLineDetails);
154    }
155
156    /**
157     * A subtype implementing {@link Path} for simplified path-based joins.
158     */
159    public static class InvoiceLineDetailsPath extends InvoiceLineDetails implements Path<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> {
160
161        private static final long serialVersionUID = 1L;
162        public <O extends Record> InvoiceLineDetailsPath(Table<O> path, ForeignKey<O, com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> childPath, InverseForeignKey<O, com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> parentPath) {
163            super(path, childPath, parentPath);
164        }
165        private InvoiceLineDetailsPath(Name alias, Table<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> aliased) {
166            super(alias, aliased);
167        }
168
169        @Override
170        public InvoiceLineDetailsPath as(String alias) {
171            return new InvoiceLineDetailsPath(DSL.name(alias), this);
172        }
173
174        @Override
175        public InvoiceLineDetailsPath as(Name alias) {
176            return new InvoiceLineDetailsPath(alias, this);
177        }
178
179        @Override
180        public InvoiceLineDetailsPath as(Table<?> alias) {
181            return new InvoiceLineDetailsPath(alias.getQualifiedName(), this);
182        }
183    }
184
185    @Override
186    public UniqueKey<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails> getPrimaryKey() {
187        return KeyRegistry.INVOICE_LINE_DETAILS_PK;
188    }
189
190    @Override
191    public List<UniqueKey<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails>> getUniqueKeys() {
192        return Arrays.asList(KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_LINE_AND_THRU_TIME_UK, KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_AND_INVOICE_LINE_SEQUENCE_AND_THRU_TIME_UK);
193    }
194
195    @Override
196    public List<ForeignKey<com.echothree.model.jooq.server.records.invoice.InvoiceLineDetails, ?>> getReferences() {
197        return Arrays.asList(KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_FK, KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_LINE_FK, KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_LINE_TYPE_FK, KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_LINE_USE_TYPE_FK, KeyRegistry.INVOICE_LINE_DETAILS_PARENT_INVOICE_LINE_FK);
198    }
199
200    private transient InvoicesPath _invcldt_invc_invoiceid_fk;
201
202    /**
203     * Get the implicit join path to the <code>invoices</code> table.
204     */
205    public InvoicesPath invcldt_invc_invoiceid_fk() {
206        if (_invcldt_invc_invoiceid_fk == null)
207            _invcldt_invc_invoiceid_fk = new InvoicesPath(this, KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_FK, null);
208
209        return _invcldt_invc_invoiceid_fk;
210    }
211
212    private transient InvoiceLinesPath _invcldt_invcl_invoicelineid_fk;
213
214    /**
215     * Get the implicit join path to the <code>invoicelines</code> table, via
216     * the <code>invcldt_invcl_invoicelineid_fk</code> key.
217     */
218    public InvoiceLinesPath invcldt_invcl_invoicelineid_fk() {
219        if (_invcldt_invcl_invoicelineid_fk == null)
220            _invcldt_invcl_invoicelineid_fk = new InvoiceLinesPath(this, KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_LINE_FK, null);
221
222        return _invcldt_invcl_invoicelineid_fk;
223    }
224
225    private transient InvoiceLineTypesPath _invcldt_invcltyp_invoicelinetypeid_fk;
226
227    /**
228     * Get the implicit join path to the <code>invoicelinetypes</code> table.
229     */
230    public InvoiceLineTypesPath invcldt_invcltyp_invoicelinetypeid_fk() {
231        if (_invcldt_invcltyp_invoicelinetypeid_fk == null)
232            _invcldt_invcltyp_invoicelinetypeid_fk = new InvoiceLineTypesPath(this, KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_LINE_TYPE_FK, null);
233
234        return _invcldt_invcltyp_invoicelinetypeid_fk;
235    }
236
237    private transient InvoiceLineUseTypesPath _invcldt_invclut_invoicelineusetypeid_fk;
238
239    /**
240     * Get the implicit join path to the <code>invoicelineusetypes</code> table.
241     */
242    public InvoiceLineUseTypesPath invcldt_invclut_invoicelineusetypeid_fk() {
243        if (_invcldt_invclut_invoicelineusetypeid_fk == null)
244            _invcldt_invclut_invoicelineusetypeid_fk = new InvoiceLineUseTypesPath(this, KeyRegistry.INVOICE_LINE_DETAILS_INVOICE_LINE_USE_TYPE_FK, null);
245
246        return _invcldt_invclut_invoicelineusetypeid_fk;
247    }
248
249    private transient InvoiceLinesPath _invcldt_parentinvoicelineid_fk;
250
251    /**
252     * Get the implicit join path to the <code>invoicelines</code> table, via
253     * the <code>invcldt_parentinvoicelineid_fk</code> key.
254     */
255    public InvoiceLinesPath invcldt_parentinvoicelineid_fk() {
256        if (_invcldt_parentinvoicelineid_fk == null)
257            _invcldt_parentinvoicelineid_fk = new InvoiceLinesPath(this, KeyRegistry.INVOICE_LINE_DETAILS_PARENT_INVOICE_LINE_FK, null);
258
259        return _invcldt_parentinvoicelineid_fk;
260    }
261
262    @Override
263    public InvoiceLineDetails as(String alias) {
264        return new InvoiceLineDetails(DSL.name(alias), this);
265    }
266
267    @Override
268    public InvoiceLineDetails as(Name alias) {
269        return new InvoiceLineDetails(alias, this);
270    }
271
272    @Override
273    public InvoiceLineDetails as(Table<?> alias) {
274        return new InvoiceLineDetails(alias.getQualifiedName(), this);
275    }
276
277    /**
278     * Rename this table
279     */
280    @Override
281    public InvoiceLineDetails rename(String name) {
282        return new InvoiceLineDetails(DSL.name(name), null);
283    }
284
285    /**
286     * Rename this table
287     */
288    @Override
289    public InvoiceLineDetails rename(Name name) {
290        return new InvoiceLineDetails(name, null);
291    }
292
293    /**
294     * Rename this table
295     */
296    @Override
297    public InvoiceLineDetails rename(Table<?> name) {
298        return new InvoiceLineDetails(name.getQualifiedName(), null);
299    }
300
301    /**
302     * Create an inline derived table from this table
303     */
304    @Override
305    public InvoiceLineDetails where(Condition condition) {
306        return new InvoiceLineDetails(getQualifiedName(), aliased() ? this : null, null, Internal.condition(this, condition));
307    }
308
309    /**
310     * Create an inline derived table from this table
311     */
312    @Override
313    public InvoiceLineDetails where(Collection<? extends Condition> conditions) {
314        return where(DSL.and(conditions));
315    }
316
317    /**
318     * Create an inline derived table from this table
319     */
320    @Override
321    public InvoiceLineDetails where(Condition... conditions) {
322        return where(DSL.and(conditions));
323    }
324
325    /**
326     * Create an inline derived table from this table
327     */
328    @Override
329    public InvoiceLineDetails where(Field<Boolean> condition) {
330        return where(DSL.condition(condition));
331    }
332
333    /**
334     * Create an inline derived table from this table
335     */
336    @Override
337    @PlainSQL
338    public InvoiceLineDetails where(SQL condition) {
339        return where(DSL.condition(condition));
340    }
341
342    /**
343     * Create an inline derived table from this table
344     */
345    @Override
346    @PlainSQL
347    public InvoiceLineDetails where(@Stringly.SQL String condition) {
348        return where(DSL.condition(condition));
349    }
350
351    /**
352     * Create an inline derived table from this table
353     */
354    @Override
355    @PlainSQL
356    public InvoiceLineDetails where(@Stringly.SQL String condition, Object... binds) {
357        return where(DSL.condition(condition, binds));
358    }
359
360    /**
361     * Create an inline derived table from this table
362     */
363    @Override
364    @PlainSQL
365    public InvoiceLineDetails where(@Stringly.SQL String condition, QueryPart... parts) {
366        return where(DSL.condition(condition, parts));
367    }
368
369    /**
370     * Create an inline derived table from this table
371     */
372    @Override
373    public InvoiceLineDetails whereExists(TableLike<?> select) {
374        return where(DSL.exists(select));
375    }
376
377    /**
378     * Create an inline derived table from this table
379     */
380    @Override
381    public InvoiceLineDetails whereNotExists(TableLike<?> select) {
382        return where(DSL.notExists(select));
383    }
384}