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

org.jooq.impl.RecordImpl3 Maven / Gradle / Ivy

There is a newer version: 3.19.15
Show newest version
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Other licenses:
 * -----------------------------------------------------------------------------
 * Commercial licenses for this work are available. These replace the above
 * Apache-2.0 license and offer limited warranties, support, maintenance, and
 * commercial database integrations.
 *
 * For more information, please visit: http://www.jooq.org/licenses
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */
package org.jooq.impl;

import org.jooq.Converter;
import org.jooq.Field;
import org.jooq.Record;
import org.jooq.Record3;

import org.jetbrains.annotations.NotNull;

/**
 * A general purpose record, typically used for ad-hoc types.
 * 

* This type implements both the general-purpose, type-unsafe {@link Record} * interface, as well as the more specific, type-safe {@link Record3} * interfaces * * @author Lukas Eder */ @SuppressWarnings({ "unchecked" }) final class RecordImpl3 extends AbstractRecord implements InternalRecord, Record3 { RecordImpl3(AbstractRow row) { super(row); } // ------------------------------------------------------------------------ // XXX: Type-safe Record APIs // ------------------------------------------------------------------------ @Override public RowImpl3 fieldsRow() { return new RowImpl3<>(field1(), field2(), field3()); } @Override public final RowImpl3 valuesRow() { return new RowImpl3<>(Tools.field(value1(), field1()), Tools.field(value2(), field2()), Tools.field(value3(), field3())); } @Override public final Field field1() { return (@NotNull Field) fields.field(0); } @Override public final Field field2() { return (@NotNull Field) fields.field(1); } @Override public final Field field3() { return (@NotNull Field) fields.field(2); } @Override public final T1 value1() { return (T1) get(0); } @Override public final T2 value2() { return (T2) get(1); } @Override public final T3 value3() { return (T3) get(2); } @Override public final Record3 value1(T1 value) { set(0, value); return this; } @Override public final Record3 value2(T2 value) { set(1, value); return this; } @Override public final Record3 value3(T3 value) { set(2, value); return this; } @Override public final Record3 values(T1 t1, T2 t2, T3 t3) { set(0, t1); set(1, t2); set(2, t3); return this; } @Override public Record3 with(Field field, T value) { return (Record3) super.with(field, value); } @Override public Record3 with(Field field, U value, Converter converter) { return (Record3) super.with(field, value, converter); } @Override public final T1 component1() { return value1(); } @Override public final T2 component2() { return value2(); } @Override public final T3 component3() { return value3(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy