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

org.sfm.querydsl.getter.EnumTupleOrdinalIndexedGetter Maven / Gradle / Ivy

package org.sfm.querydsl.getter;

import com.mysema.query.Tuple;
import org.sfm.querydsl.TupleElementKey;
import org.sfm.reflect.EnumHelper;
import org.sfm.reflect.Getter;

public final class EnumTupleOrdinalIndexedGetter> implements  Getter {

	private final int index;
	private final Class type;
	private final E[] values;
	

	public EnumTupleOrdinalIndexedGetter(TupleElementKey key, final Class enumType) {
		this.index = key.getIndex();
		this.type = key.getExpression().getType();
		this.values = EnumHelper.getValues(enumType);
	}

	@Override
	public E get(final Tuple target) throws Exception {
		Number number = (Number) target.get(index, type);
		if (number != null) {
			return values[number.intValue()];
		} else {
			return null;
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy