// $HeadURL$ // $Id$ // // Copyright © 2006, 2010, 2011, 2012 by the President and Fellows of Harvard College. // // Screensaver is an open-source project developed by the ICCB-L and NSRB labs // at Harvard Medical School. This software is distributed under the terms of // the GNU General Public License. package edu.harvard.med.screensaver.db.datafetcher; import java.io.Serializable; import java.util.List; import java.util.Map; import java.util.Set; import com.google.common.collect.Lists; import edu.harvard.med.screensaver.db.Criterion; import edu.harvard.med.screensaver.db.hqlbuilder.HqlBuilder; import edu.harvard.med.screensaver.model.Entity; /** * @author atolopko */ public class SetBasedDataFetcher<E extends Entity<K>,K extends Serializable> implements DataFetcher<E,K,Object> { private Set<E> _entities; public SetBasedDataFetcher(Set<E> entities) { _entities = entities; } @Override public void addDomainRestrictions(HqlBuilder hql) { throw new UnsupportedOperationException(); } @Override public void setPropertiesToFetch(List<Object> properties) { throw new UnsupportedOperationException(); } public List<E> fetchAllData() { return Lists.newArrayList(_entities); } @Override public void setFilteringCriteria(Map<Object,List<? extends Criterion<?>>> criteria) { throw new UnsupportedOperationException("can only be used to fetch all data at once, and filtering should be done in memory"); } public void setOrderBy(List<Object> orderByProperties) { throw new UnsupportedOperationException("can only be used to fetch all data at once, and ordering should be done in memory"); } public Map<K,E> fetchData(Set<K> keys) { throw new UnsupportedOperationException("can only be used to fetch all data at once"); } public List<K> findAllKeys() { throw new UnsupportedOperationException("can only be used to fetch all data at once"); } }