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

org.simpleflatmapper.querydsl.TupleGetterFactory Maven / Gradle / Ivy

package org.simpleflatmapper.querydsl;

import com.mysema.query.Tuple;
import org.simpleflatmapper.reflect.getter.GetterFactory;
import org.simpleflatmapper.querydsl.getter.EnumTupleNamedIndexedGetter;
import org.simpleflatmapper.querydsl.getter.EnumTupleOrdinalIndexedGetter;
import org.simpleflatmapper.querydsl.getter.TupleIndexedGetter;
import org.simpleflatmapper.reflect.Getter;
import org.simpleflatmapper.util.TypeHelper;

import java.lang.reflect.Type;

public final class TupleGetterFactory implements GetterFactory {

	@SuppressWarnings({ "unchecked", "rawtypes" })
	@Override
	public 

Getter newGetter(Type genericType, TupleElementKey key, Object... properties) { Class propertyClass = TypeHelper.toClass(genericType); if (Enum.class.isAssignableFrom(propertyClass)) { Class columnType = key.getExpression().getType(); if (Number.class.isAssignableFrom(columnType)) { return new EnumTupleOrdinalIndexedGetter(key, propertyClass); } else if (String.class.equals(columnType)){ return new EnumTupleNamedIndexedGetter(key, propertyClass); } else { return null; } } return new TupleIndexedGetter

( key); } }