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

org.sfm.jooq.conv.JooqConverterFactory Maven / Gradle / Ivy

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

import org.sfm.jdbc.JdbcColumnKey;
import org.sfm.jdbc.ResultSetGetterFactory;
import org.sfm.map.column.FieldMapperColumnDefinition;
import org.sfm.reflect.Getter;
import org.sfm.reflect.TypeHelper;
import org.sfm.utils.conv.*;

import java.lang.reflect.Type;
import java.sql.ResultSet;
import java.util.List;

public class JooqConverterFactory {

	public static  Converter getConverter(Class inType, Class

outType) { return getConverter(inType, (Type)outType); } @SuppressWarnings("unchecked") public static Converter getConverter(Class inType, Type outType) { if (TypeHelper.isArray(outType)) { return newArrayConverter(TypeHelper.getComponentTypeOfListOrArray(outType)); } else if (TypeHelper.isAssignable(List.class, outType)) { return newArrayToListConverter(TypeHelper.getComponentTypeOfListOrArray(outType)); } return null; } @SuppressWarnings("unchecked") private static Converter newArrayConverter(Type eltType) { final FieldMapperColumnDefinition identity = FieldMapperColumnDefinition.identity(); Getter elementGetter = new ResultSetGetterFactory().newGetter(eltType, new JdbcColumnKey("elt", 2), identity); if (elementGetter == null) return null; return (Converter)new ArrayConverter((Class) TypeHelper.toClass(eltType), elementGetter); } @SuppressWarnings("unchecked") private static Converter newArrayToListConverter(Type eltType) { final FieldMapperColumnDefinition identity = FieldMapperColumnDefinition.identity(); Getter elementGetter = new ResultSetGetterFactory().newGetter(eltType, new JdbcColumnKey("elt", 2), identity); if (elementGetter == null) return null; return (Converter)new ArrayToListConverter(elementGetter); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy