001/*
002 * This file is generated by jOOQ.
003 */
004package com.echothree.model.jooq.server.tables.letter;
005
006
007import com.echothree.model.data.chain.common.pk.ChainTypePK;
008import com.echothree.model.data.contactlist.common.pk.ContactListPK;
009import com.echothree.model.data.letter.common.pk.LetterDetailPK;
010import com.echothree.model.data.letter.common.pk.LetterPK;
011import com.echothree.model.data.letter.common.pk.LetterSourcePK;
012import com.echothree.model.jooq.server.KeyRegistry;
013import com.echothree.model.jooq.server.tables.chain.ChainTypes.ChainTypesPath;
014import com.echothree.model.jooq.server.tables.contactlist.ContactLists.ContactListsPath;
015import com.echothree.model.jooq.server.tables.letter.LetterSources.LetterSourcesPath;
016import com.echothree.model.jooq.server.tables.letter.Letters.LettersPath;
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 LetterDetails extends TableImpl<com.echothree.model.jooq.server.records.letter.LetterDetails> {
050
051    private static final long serialVersionUID = 1L;
052
053    /**
054     * The reference instance of <code>letterdetails</code>
055     */
056    public static final LetterDetails LetterDetails = new LetterDetails();
057
058    /**
059     * The class holding records for this type
060     */
061    @Override
062    public Class<com.echothree.model.jooq.server.records.letter.LetterDetails> getRecordType() {
063        return com.echothree.model.jooq.server.records.letter.LetterDetails.class;
064    }
065
066    /**
067     * The column <code>letterdetails.lttrdt_letterdetailid</code>.
068     */
069    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, LetterDetailPK> LETTER_DETAIL = createField(DSL.name("lttrdt_letterdetailid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, LetterDetailPK.class, id -> new com.echothree.model.data.letter.common.pk.LetterDetailPK(id), primaryKey -> primaryKey.getEntityId()));
070
071    /**
072     * The column <code>letterdetails.lttrdt_lttr_letterid</code>.
073     */
074    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, LetterPK> LETTER = createField(DSL.name("lttrdt_lttr_letterid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, LetterPK.class, id -> new com.echothree.model.data.letter.common.pk.LetterPK(id), primaryKey -> primaryKey.getEntityId()));
075
076    /**
077     * The column <code>letterdetails.lttrdt_chntyp_chaintypeid</code>.
078     */
079    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, ChainTypePK> CHAIN_TYPE = createField(DSL.name("lttrdt_chntyp_chaintypeid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, ChainTypePK.class, id -> new com.echothree.model.data.chain.common.pk.ChainTypePK(id), primaryKey -> primaryKey.getEntityId()));
080
081    /**
082     * The column <code>letterdetails.lttrdt_lettername</code>.
083     */
084    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, String> LETTER_NAME = createField(DSL.name("lttrdt_lettername"), SQLDataType.VARCHAR(40).nullable(false), this, "");
085
086    /**
087     * The column <code>letterdetails.lttrdt_lttrsrc_lettersourceid</code>.
088     */
089    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, LetterSourcePK> LETTER_SOURCE = createField(DSL.name("lttrdt_lttrsrc_lettersourceid"), SQLDataType.BIGINT.nullable(false), this, "", Converter.ofNullable(Long.class, LetterSourcePK.class, id -> new com.echothree.model.data.letter.common.pk.LetterSourcePK(id), primaryKey -> primaryKey.getEntityId()));
090
091    /**
092     * The column <code>letterdetails.lttrdt_clst_contactlistid</code>.
093     */
094    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, ContactListPK> CONTACT_LIST = createField(DSL.name("lttrdt_clst_contactlistid"), SQLDataType.BIGINT, this, "", Converter.ofNullable(Long.class, ContactListPK.class, id -> new com.echothree.model.data.contactlist.common.pk.ContactListPK(id), primaryKey -> primaryKey.getEntityId()));
095
096    /**
097     * The column <code>letterdetails.lttrdt_isdefault</code>.
098     */
099    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, Boolean> IS_DEFAULT = createField(DSL.name("lttrdt_isdefault"), SQLDataType.BIT.nullable(false), this, "");
100
101    /**
102     * The column <code>letterdetails.lttrdt_sortorder</code>.
103     */
104    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, Integer> SORT_ORDER = createField(DSL.name("lttrdt_sortorder"), SQLDataType.INTEGER.nullable(false), this, "");
105
106    /**
107     * The column <code>letterdetails.lttrdt_fromtime</code>.
108     */
109    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, Long> FROM_TIME = createField(DSL.name("lttrdt_fromtime"), SQLDataType.BIGINT.nullable(false), this, "");
110
111    /**
112     * The column <code>letterdetails.lttrdt_thrutime</code>.
113     */
114    public final TableField<com.echothree.model.jooq.server.records.letter.LetterDetails, Long> THRU_TIME = createField(DSL.name("lttrdt_thrutime"), SQLDataType.BIGINT.nullable(false), this, "");
115
116    private LetterDetails(Name alias, Table<com.echothree.model.jooq.server.records.letter.LetterDetails> aliased) {
117        this(alias, aliased, (Field<?>[]) null, null);
118    }
119
120    private LetterDetails(Name alias, Table<com.echothree.model.jooq.server.records.letter.LetterDetails> aliased, Field<?>[] parameters, Condition where) {
121        super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where);
122    }
123
124    /**
125     * Create an aliased <code>letterdetails</code> table reference
126     */
127    public LetterDetails(String alias) {
128        this(DSL.name(alias), LetterDetails);
129    }
130
131    /**
132     * Create an aliased <code>letterdetails</code> table reference
133     */
134    public LetterDetails(Name alias) {
135        this(alias, LetterDetails);
136    }
137
138    /**
139     * Create a <code>letterdetails</code> table reference
140     */
141    public LetterDetails() {
142        this(DSL.name("letterdetails"), null);
143    }
144
145    public <O extends Record> LetterDetails(Table<O> path, ForeignKey<O, com.echothree.model.jooq.server.records.letter.LetterDetails> childPath, InverseForeignKey<O, com.echothree.model.jooq.server.records.letter.LetterDetails> parentPath) {
146        super(path, childPath, parentPath, LetterDetails);
147    }
148
149    /**
150     * A subtype implementing {@link Path} for simplified path-based joins.
151     */
152    public static class LetterDetailsPath extends LetterDetails implements Path<com.echothree.model.jooq.server.records.letter.LetterDetails> {
153
154        private static final long serialVersionUID = 1L;
155        public <O extends Record> LetterDetailsPath(Table<O> path, ForeignKey<O, com.echothree.model.jooq.server.records.letter.LetterDetails> childPath, InverseForeignKey<O, com.echothree.model.jooq.server.records.letter.LetterDetails> parentPath) {
156            super(path, childPath, parentPath);
157        }
158        private LetterDetailsPath(Name alias, Table<com.echothree.model.jooq.server.records.letter.LetterDetails> aliased) {
159            super(alias, aliased);
160        }
161
162        @Override
163        public LetterDetailsPath as(String alias) {
164            return new LetterDetailsPath(DSL.name(alias), this);
165        }
166
167        @Override
168        public LetterDetailsPath as(Name alias) {
169            return new LetterDetailsPath(alias, this);
170        }
171
172        @Override
173        public LetterDetailsPath as(Table<?> alias) {
174            return new LetterDetailsPath(alias.getQualifiedName(), this);
175        }
176    }
177
178    @Override
179    public UniqueKey<com.echothree.model.jooq.server.records.letter.LetterDetails> getPrimaryKey() {
180        return KeyRegistry.LETTER_DETAILS_PK;
181    }
182
183    @Override
184    public List<UniqueKey<com.echothree.model.jooq.server.records.letter.LetterDetails>> getUniqueKeys() {
185        return Arrays.asList(KeyRegistry.LETTER_DETAILS_LETTER_AND_THRU_TIME_UK, KeyRegistry.LETTER_DETAILS_CHAIN_TYPE_AND_LETTER_NAME_AND_THRU_TIME_UK);
186    }
187
188    @Override
189    public List<ForeignKey<com.echothree.model.jooq.server.records.letter.LetterDetails, ?>> getReferences() {
190        return Arrays.asList(KeyRegistry.LETTER_DETAILS_CHAIN_TYPE_FK, KeyRegistry.LETTER_DETAILS_CONTACT_LIST_FK, KeyRegistry.LETTER_DETAILS_LETTER_FK, KeyRegistry.LETTER_DETAILS_LETTER_SOURCE_FK);
191    }
192
193    private transient ChainTypesPath _lttrdt_chntyp_chaintypeid_fk;
194
195    /**
196     * Get the implicit join path to the <code>chaintypes</code> table.
197     */
198    public ChainTypesPath lttrdt_chntyp_chaintypeid_fk() {
199        if (_lttrdt_chntyp_chaintypeid_fk == null)
200            _lttrdt_chntyp_chaintypeid_fk = new ChainTypesPath(this, KeyRegistry.LETTER_DETAILS_CHAIN_TYPE_FK, null);
201
202        return _lttrdt_chntyp_chaintypeid_fk;
203    }
204
205    private transient ContactListsPath _lttrdt_clst_contactlistid_fk;
206
207    /**
208     * Get the implicit join path to the <code>contactlists</code> table.
209     */
210    public ContactListsPath lttrdt_clst_contactlistid_fk() {
211        if (_lttrdt_clst_contactlistid_fk == null)
212            _lttrdt_clst_contactlistid_fk = new ContactListsPath(this, KeyRegistry.LETTER_DETAILS_CONTACT_LIST_FK, null);
213
214        return _lttrdt_clst_contactlistid_fk;
215    }
216
217    private transient LettersPath _lttrdt_lttr_letterid_fk;
218
219    /**
220     * Get the implicit join path to the <code>letters</code> table.
221     */
222    public LettersPath lttrdt_lttr_letterid_fk() {
223        if (_lttrdt_lttr_letterid_fk == null)
224            _lttrdt_lttr_letterid_fk = new LettersPath(this, KeyRegistry.LETTER_DETAILS_LETTER_FK, null);
225
226        return _lttrdt_lttr_letterid_fk;
227    }
228
229    private transient LetterSourcesPath _lttrdt_lttrsrc_lettersourceid_fk;
230
231    /**
232     * Get the implicit join path to the <code>lettersources</code> table.
233     */
234    public LetterSourcesPath lttrdt_lttrsrc_lettersourceid_fk() {
235        if (_lttrdt_lttrsrc_lettersourceid_fk == null)
236            _lttrdt_lttrsrc_lettersourceid_fk = new LetterSourcesPath(this, KeyRegistry.LETTER_DETAILS_LETTER_SOURCE_FK, null);
237
238        return _lttrdt_lttrsrc_lettersourceid_fk;
239    }
240
241    @Override
242    public LetterDetails as(String alias) {
243        return new LetterDetails(DSL.name(alias), this);
244    }
245
246    @Override
247    public LetterDetails as(Name alias) {
248        return new LetterDetails(alias, this);
249    }
250
251    @Override
252    public LetterDetails as(Table<?> alias) {
253        return new LetterDetails(alias.getQualifiedName(), this);
254    }
255
256    /**
257     * Rename this table
258     */
259    @Override
260    public LetterDetails rename(String name) {
261        return new LetterDetails(DSL.name(name), null);
262    }
263
264    /**
265     * Rename this table
266     */
267    @Override
268    public LetterDetails rename(Name name) {
269        return new LetterDetails(name, null);
270    }
271
272    /**
273     * Rename this table
274     */
275    @Override
276    public LetterDetails rename(Table<?> name) {
277        return new LetterDetails(name.getQualifiedName(), null);
278    }
279
280    /**
281     * Create an inline derived table from this table
282     */
283    @Override
284    public LetterDetails where(Condition condition) {
285        return new LetterDetails(getQualifiedName(), aliased() ? this : null, null, Internal.condition(this, condition));
286    }
287
288    /**
289     * Create an inline derived table from this table
290     */
291    @Override
292    public LetterDetails where(Collection<? extends Condition> conditions) {
293        return where(DSL.and(conditions));
294    }
295
296    /**
297     * Create an inline derived table from this table
298     */
299    @Override
300    public LetterDetails where(Condition... conditions) {
301        return where(DSL.and(conditions));
302    }
303
304    /**
305     * Create an inline derived table from this table
306     */
307    @Override
308    public LetterDetails where(Field<Boolean> condition) {
309        return where(DSL.condition(condition));
310    }
311
312    /**
313     * Create an inline derived table from this table
314     */
315    @Override
316    @PlainSQL
317    public LetterDetails where(SQL condition) {
318        return where(DSL.condition(condition));
319    }
320
321    /**
322     * Create an inline derived table from this table
323     */
324    @Override
325    @PlainSQL
326    public LetterDetails where(@Stringly.SQL String condition) {
327        return where(DSL.condition(condition));
328    }
329
330    /**
331     * Create an inline derived table from this table
332     */
333    @Override
334    @PlainSQL
335    public LetterDetails where(@Stringly.SQL String condition, Object... binds) {
336        return where(DSL.condition(condition, binds));
337    }
338
339    /**
340     * Create an inline derived table from this table
341     */
342    @Override
343    @PlainSQL
344    public LetterDetails where(@Stringly.SQL String condition, QueryPart... parts) {
345        return where(DSL.condition(condition, parts));
346    }
347
348    /**
349     * Create an inline derived table from this table
350     */
351    @Override
352    public LetterDetails whereExists(TableLike<?> select) {
353        return where(DSL.exists(select));
354    }
355
356    /**
357     * Create an inline derived table from this table
358     */
359    @Override
360    public LetterDetails whereNotExists(TableLike<?> select) {
361        return where(DSL.notExists(select));
362    }
363}