public FillStrategy<T> getFillStrategy() {
Class<?> resultClass = getJavaType();
List<Selection<?>> terms = getCompoundSelectionItems();
FillStrategy<?> strategy = null;
if (javax.persistence.Tuple.class.isAssignableFrom(resultClass)) {
TupleFactory factory = new TupleFactory(terms.toArray(new TupleElement[terms.size()]));
strategy = new FillStrategy.Factory<javax.persistence.Tuple>(factory, TupleImpl.PUT);
} else if (resultClass == Object.class) {
if (terms.size() > 1) {
resultClass = Object[].class;
strategy = new FillStrategy.Array<Object[]>(Object[].class);