static Field<?> tableField(Table<?> table, Object field) { if (field instanceof Field<?>) return (Field<?>) field; else if (field instanceof Name) return table.field((Name) field); else if (field instanceof String) return table.field((String) field); else throw new IllegalArgumentException("Field type not supported: " + field); }
/** * Extracted method for type-safety */ private <Z> Condition condition(Table<?> pivot, Field<Z> field) { return field.equal(pivot.field(field)); }
@Override public final <T> Field<T> field(Field<T> field) { return asTable().field(field); }
@Override public final <T> Field<T> field(String name, DataType<T> dataType) { return asTable().field(name, dataType); }
@Override public final Field<?> field(int index) { return asTable().field(index); }
/** * Extracted method for type-safety */ private <Z> Condition condition(Table<?> pivot, Field<Z> field) { return field.equal(pivot.field(field)); }
@Override public final <T> Field<T> field(String name, Class<T> type) { return asTable().field(name, type); }
@Override public final <T> Field<T> field(Name name, Class<T> type) { return asTable().field(name, type); }
@Override public final <T> Field<T> field(int index, DataType<T> dataType) { return asTable().field(index, dataType); }
@Override public final Field<?> field(Name string) { return asTable().field(string); }
@Override public final <T> Field<T> field(Name name, DataType<T> dataType) { return asTable().field(name, dataType); }
@Override public final Field<?> field(String string) { return asTable().field(string); }
@Override public final <T> Field<T> field(int index, Class<T> type) { return asTable().field(index, type); }
@Override public final Field<?> field(int index) { return asTable().field(index); }
@Override public final Field<?> field(String string) { return asTable().field(string); }
@Override public final <T> Field<T> field(Field<T> field) { return asTable().field(field); }
/** * Extracted method for type-safety */ @SuppressWarnings("deprecation") private final <T> void selfJoin(org.jooq.ConditionProvider selfJoin, Table<?> outer, Table<?> inner, Field<T> field) { Field<T> outerField = outer.field(field); Field<T> innerField = inner.field(field); if (outerField == null || innerField == null) { return; } else { selfJoin.addConditions(outerField.equal(innerField)); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) private final JoinTable onKey(ForeignKey<?, ?> key, Table<?> fk, Table<?> pk) { JoinTable result = this; TableField<?, ?>[] references = key.getFieldsArray(); TableField<?, ?>[] referenced = key.getKey().getFieldsArray(); for (int i = 0; i < references.length; i++) { Field f1 = fk.field(references[i]); Field f2 = pk.field(referenced[i]); // [#2870] TODO: If lhs or rhs are aliased tables, extract the appropriate fields from them result.and(f1.equal(f2)); } return result; }
private final void warnOnAPIMisuse() { for (Field<?> field : getResult().fields()) if (table.field(field) == null) log.warn("API misuse", "Column " + field + " has been requested through the returning() clause, which is not present in table " + table + ". Use StoreQuery.getResult() or the returningResult() clause instead."); }
static final <T> Field<T> qualify(Table<?> table, Field<T> field) { Field<T> result = table.field(field); if (result != null) return result; Name[] part = table.getQualifiedName().parts(); Name[] name = new Name[part.length + 1]; System.arraycopy(part, 0, name, 0, part.length); name[part.length] = field.getUnqualifiedName(); return DSL.field(DSL.name(name), field.getDataType()); }