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

org.simpleflatmapper.jooq.JooqMapperFactory Maven / Gradle / Ivy

There is a newer version: 9.0.2
Show newest version
package org.simpleflatmapper.jooq;

import org.jooq.Configuration;
import org.jooq.Record;
import org.simpleflatmapper.map.MapperConfig;
import org.simpleflatmapper.map.getter.ContextualGetterFactoryAdapter;
import org.simpleflatmapper.map.mapper.AbstractColumnDefinitionProvider;
import org.simpleflatmapper.map.mapper.AbstractColumnNameDiscriminatorMapperFactory;
import org.simpleflatmapper.map.mapper.AbstractMapperFactory;
import org.simpleflatmapper.map.mapper.FieldMapperColumnDefinitionProviderImpl;
import org.simpleflatmapper.map.property.FieldMapperColumnDefinition;
import org.simpleflatmapper.util.Function;

import java.lang.reflect.Type;

public class JooqMapperFactory
        extends AbstractColumnNameDiscriminatorMapperFactory {

    public static JooqMapperFactory newInstance() {
        return new JooqMapperFactory();
    }

    public static JooqMapperFactory newInstance(
            AbstractMapperFactory config) {
        return new JooqMapperFactory(config);
    }


    private JooqMapperFactory() {
        super(new FieldMapperColumnDefinitionProviderImpl(), FieldMapperColumnDefinition.identity(), new ContextualGetterFactoryAdapter(new RecordGetterFactory()));
    }

    private JooqMapperFactory(AbstractMapperFactory config) {
        super(config);
    }

    private JooqMapperFactory(AbstractColumnDefinitionProvider columnDefinitions, FieldMapperColumnDefinition identity) {
        super(columnDefinitions, identity, new ContextualGetterFactoryAdapter(new RecordGetterFactory()));
    }


    public SfmRecordMapperProvider newRecordMapperProvider() {
        return new SfmRecordMapperProvider(new Function>() {
            @Override
            public MapperConfig apply(Type type) {
                return mapperConfig(type);
            }
        }, getReflectionService());
    }

    //IFJAVA8_START
    public SfmRecordUnmapperProvider newRecordUnmapperProvider(Configuration configuration) {
        return new SfmRecordUnmapperProvider(new Function>() {
            @Override
            public MapperConfig apply(Type type) {
                return mapperConfig(type);
            }
        }, getReflectionService(), configuration);
    }
    //IFJAVA8_END

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy