1 package org.kuali.student.r2.common.criteria.impl; 2 3 import org.kuali.rice.core.api.criteria.GenericQueryResults; 4 import org.kuali.rice.core.api.criteria.QueryByCriteria; 5 import org.kuali.student.r2.common.criteria.CriteriaLookupService; 6 import org.kuali.student.r2.common.criteria.LookupCustomizer; 7 import org.kuali.student.r2.common.criteria.LookupCustomizer.PredicateTransform; 8 9 import java.util.List; 10 11 public class CriteriaLookupServiceImpl implements CriteriaLookupService { 12 13 private CriteriaLookupDaoJpaImpl criteriaLookupDao; 14 private List<PredicateTransform> additionalTransforms; 15 private List<PredicateTransform> predicateTransforms; 16 17 public List<PredicateTransform> getAdditionalTransforms() { 18 return additionalTransforms; 19 } 20 21 public void setAdditionalTransforms(List<PredicateTransform> additionalTransforms) { 22 this.additionalTransforms = additionalTransforms; 23 } 24 25 public List<PredicateTransform> getPredicateTransforms() { 26 return predicateTransforms; 27 } 28 29 public void setPredicateTransforms(List<PredicateTransform> predicateTransforms) { 30 this.predicateTransforms = predicateTransforms; 31 } 32 33 public void setCriteriaLookupDao(CriteriaLookupDaoJpaImpl criteriaLookupDao) { 34 this.criteriaLookupDao = criteriaLookupDao; 35 } 36 37 @Override 38 public <T> GenericQueryResults<T> lookup(Class<T> queryClass, QueryByCriteria criteria) { 39 40 LookupCustomizer.Builder<T> lc = LookupCustomizer.Builder.create(); 41 lc.setPredicateTransforms(this.getPredicateTransforms()); 42 lc.setAdditionalTransforms(this.getAdditionalTransforms()); 43 44 return criteriaLookupDao.lookup(queryClass, criteria, lc.build()); 45 } 46 47 @Override 48 public <T> GenericQueryResults<T> lookup(Class<T> queryClass, QueryByCriteria criteria, LookupCustomizer<T> customizer) { 49 50 customizer.getAdditionalTransforms().addAll(this.getAdditionalTransforms()); 51 customizer.getPredicateTransforms().addAll(this.getPredicateTransforms()); 52 53 return criteriaLookupDao.lookup(queryClass, criteria, customizer); 54 } 55 56 @Override 57 public <T> GenericQueryResults<String> lookupIds(Class<T> queryClass, QueryByCriteria criteria) { 58 59 LookupCustomizer.Builder<T> lc = LookupCustomizer.Builder.create(); 60 lc.setPredicateTransforms(this.getPredicateTransforms()); 61 lc.setAdditionalTransforms(this.getAdditionalTransforms()); 62 63 return criteriaLookupDao.lookupIds(queryClass, criteria, lc.build()); 64 } 65 66 @Override 67 public <T> GenericQueryResults<String> lookupIds(Class<T> queryClass, QueryByCriteria criteria, LookupCustomizer<T> customizer) { 68 69 customizer.getAdditionalTransforms().addAll(this.getAdditionalTransforms()); 70 customizer.getPredicateTransforms().addAll(this.getPredicateTransforms()); 71 72 return criteriaLookupDao.lookupIds(queryClass, criteria, customizer); 73 } 74 75 @Override 76 public <T> GenericQueryResults<List<String>> genericLookup(final Class<T> queryClass, final QueryByCriteria criteria, List<String> fields){ 77 LookupCustomizer.Builder<T> lc = LookupCustomizer.Builder.create(); 78 lc.setPredicateTransforms(this.getPredicateTransforms()); 79 lc.setAdditionalTransforms(this.getAdditionalTransforms()); 80 81 return criteriaLookupDao.genericLookup(queryClass, criteria, lc.build(), fields); 82 } 83 84 @Override 85 public <T> GenericQueryResults<List<String>> genericLookup(final Class<T> queryClass, final QueryByCriteria criteria, final LookupCustomizer<T> customizer, List<String> fields){ 86 customizer.getAdditionalTransforms().addAll(this.getAdditionalTransforms()); 87 customizer.getPredicateTransforms().addAll(this.getPredicateTransforms()); 88 89 return criteriaLookupDao.genericLookup(queryClass, criteria, customizer, fields); 90 91 } 92 93 }