@Override public List<Collection> findAllCollections(int number, int offset) { return this.collectionStore.get().findAll(number, offset); }
@Override public List<Collection> findCollectionsForProduct(Product product) { return this.collectionStore.get().findAllForProduct(product); }
@Override public List<EntityAndCount<Collection>> findAllCollectionsWithProductCount() { return this.collectionStore.get().findAllWithProductCount(); }
@Override public Collection findCollectionBySlug(String slug) { return this.collectionStore.get().findBySlug(slug); }
@Override public void addProductToCollection(String collection, String product) throws InvalidOperation { Collection c = this.findCollectionBySlug(collection); Product p = this.findProductBySlug(product); if (p == null || c == null) { throw new InvalidOperation("Product or collection does not exist"); } List<Collection> collections = this.collectionStore.get().findAllForProduct(p); if (collections.contains(c)) { // Already has it : nothing to do return; } this.collectionStore.get().addProduct(c, p); }
@Override public void removeProductFromCollection(String collection, String product) throws InvalidOperation { Collection c = this.findCollectionBySlug(collection); Product p = this.findProductBySlug(product); if (p == null || c == null) { throw new InvalidOperation("Product or collection does not exist"); } List<Collection> collections = this.collectionStore.get().findAllForProduct(p); if (!collections.contains(c)) { // It does not contain it : nothing to do return; } this.collectionStore.get().removeProduct(c, p); }
@Override public void moveCollection(String slugOfCollectionToMove, String slugOfCollectionToMoveRelativeTo, InsertPosition position) throws InvalidMoveOperation { this.collectionStore.get().moveCollection(slugOfCollectionToMove, slugOfCollectionToMoveRelativeTo, position.equals(InsertPosition.AFTER) ? HasOrderedCollections.RelativePosition.AFTER : HasOrderedCollections.RelativePosition.BEFORE); }
@Override public void moveProductInCollection(Collection collection, String slugOfProductToMove, String relativeSlug, InsertPosition insertPosition) throws InvalidMoveOperation { this.collectionStore.get().moveProductInCollection(collection, slugOfProductToMove, relativeSlug, insertPosition.equals(InsertPosition.AFTER) ? HasOrderedCollections.RelativePosition.AFTER : HasOrderedCollections.RelativePosition.BEFORE); } }
@Override public void deleteCollection(String collectionSlug) throws EntityDoesNotExistException { Collection collection = this.findCollectionBySlug(collectionSlug); if (collection == null) { throw new EntityDoesNotExistException(); } this.collectionStore.get().delete(collection); }
@Override public Collection createCollection(Collection entity) throws InvalidEntityException, EntityAlreadyExistsException { if (Strings.isNullOrEmpty(entity.getSlug())) { entity.setSlug(this.slugifier.slugify(entity.getTitle())); } this.collectionStore.get().create(entity); return this.findCollectionBySlug(entity.getSlug()); }
Collection retrieved = this.collectionStore.findById(collection.getId()); output.println("- indexing " + tenant.getSlug() + ":" + collection.getSlug()); output.flush();
List<Collection> collections = this.collectionStore.get().findAll(); final List<Map<String, Object>> collectionsContext = Lists.newArrayList();
public Map<String, Object> purveyDocument(Product entity, Tenant tenant) { Map<String, Object> source = Maps.newHashMap(); source.put("site", extractSourceFromEntity(tenant, tenant)); source.putAll(extractSourceFromEntity(entity, tenant)); List<Collection> collections = collectionStore.findAllForProduct(entity); List<String> collectionsSource = Lists.newArrayList(); for (Collection collection : collections) { collectionsSource.add(collection.getSlug()); } source.put("collections", collectionsSource); return source; } }