package org.tynamo.model.jpa.internal; import org.apache.tapestry5.grid.GridDataSource; import org.apache.tapestry5.jpa.JpaGridDataSource; import org.tynamo.descriptor.TynamoPropertyDescriptor; import org.tynamo.model.jpa.SearchableJpaGridDataSource; import org.tynamo.search.SearchFilterPredicate; import org.tynamo.services.SearchableGridDataSourceProvider; import javax.persistence.EntityManager; import java.util.List; import java.util.Map; import java.util.Set; public class SearchableJpaGridDataSourceProvider implements SearchableGridDataSourceProvider { private EntityManager entityManager; public SearchableJpaGridDataSourceProvider(ConfigurableEntityManagerProvider provider) { this.entityManager = provider.getEntityManager(); } @Override public GridDataSource createGridDataSource(Class entityType) { return new JpaGridDataSource(entityManager, entityType); } @Override public GridDataSource createGridDataSource(Class entityType, Set includedIds, Map<TynamoPropertyDescriptor, SearchFilterPredicate> propertySearchFilterMap) { return new SearchableJpaGridDataSource(entityManager, entityType, includedIds, propertySearchFilterMap); } @Override public GridDataSource createGridDataSource(Class entityType, Map<TynamoPropertyDescriptor, SearchFilterPredicate> propertySearchFilterMap, List<TynamoPropertyDescriptor> searchablePropertyDescriptors, String searchString) { return new SearchableJpaGridDataSource(entityManager, entityType, propertySearchFilterMap, searchablePropertyDescriptors, searchString); } }