All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.javaer.jany.jooq.field.ArrayField Maven / Gradle / Ivy

package cn.javaer.jany.jooq.field;

import cn.javaer.jany.jooq.condition.ContainedInCondition;
import org.jooq.Condition;
import org.jooq.Context;
import org.jooq.DataType;
import org.jooq.Field;
import org.jooq.Record;
import org.jooq.SQLDialect;
import org.jooq.Support;
import org.jooq.Table;
import org.jooq.TableField;
import org.jooq.impl.CustomField;

/**
 * @author cn-src
 */
public class ArrayField extends CustomField implements TableField {
    private static final long serialVersionUID = -2128410511798819756L;
    private final Table table;

    public ArrayField(final String name, final DataType type, final Table table) {
        super(name, type);
        this.table = table;
        CustomFieldUtils.addToFields(table, this);
    }

    @Override
    public void accept(final Context ctx) {
        if (ctx.qualify()) {
            ctx.visit(this.table);
            ctx.sql('.');
        }
        ctx.visit(this.getUnqualifiedName());
    }

    @Support(SQLDialect.POSTGRES)
    public Condition containedIn(final Field field) {
        return new ContainedInCondition<>(this, field);
    }

    @Support(SQLDialect.POSTGRES)
    public Condition containedIn(final T values) {
        return new ContainedInCondition<>(this, values);
    }

    @Override
    public Table getTable() {
        return this.table;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy