ProductCurator extends AbstractHibernateCurator<Product> { public Set<String> getDerivedPoolProvidedProductUuids(String poolId) { TypedQuery<String> query = getEntityManager().createQuery( "SELECT product.uuid FROM Pool p INNER JOIN p.derivedProvidedProducts product " + "WHERE p.id = :poolid", String.class); query.setParameter("poolid", poolId); return new HashSet<>(query.getResultList()); } @Inject  ProductCurator(Configuration config,
        AttributeValidator attributeValidator); Product getByName(Owner owner, String name); CandlepinQuery<Product> listAllByUuids(Collection<? extends Serializable> uuids); Set<Product> getPoolDerivedProvidedProductsCached(Pool pool); Set<Product> getPoolDerivedProvidedProductsCached(String poolId); Set<Product> getPoolProvidedProductsCached(Pool pool); Set<Product> getPoolProvidedProductsCached(String poolId); Set<String> getPoolProvidedProductUuids(String poolId); Set<String> getDerivedPoolProvidedProductUuids(String poolId); Set<Product> getProductsByUuidCached(Set<String> productUuids); Map<String, Product> getHydratedProductsByUuid(Set<String> uuids); int hydratePoolProvidedProducts(Iterable<Pool> pools); @Transactional Product create(Product entity); @Transactional Product merge(Product entity); @Override @Transactional void delete(Product entity); boolean productHasSubscriptions(Owner owner, Product product); CandlepinQuery<Product> getProductsByContent(Owner owner, Collection<String> contentIds); @SuppressWarnings("unchecked") CandlepinQuery<Product> getProductsByContent(Owner owner, Collection<String> contentIds,
        Collection<String> productsToOmit); @SuppressWarnings("unchecked") CandlepinQuery<Product> getProductsByContentUuids(Collection<String> contentUuids); @SuppressWarnings("unchecked") CandlepinQuery<Product> getProductsByContentUuids(Owner owner, Collection<String> contentUuids);  }
@Test public void testDerivedPoolProvidedProducts() { Set<String> uuids = productCurator.getDerivedPoolProvidedProductUuids(pool.getId()); assertEquals(new HashSet<>(Arrays.asList(derivedProvidedProduct.getUuid())), uuids); }