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