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