/* * Copyright Siemens AG, 2014-2015. Part of the SW360 Portal Project. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.eclipse.sw360.datahandler.couchdb; import org.eclipse.sw360.components.summary.DocumentSummary; import org.eclipse.sw360.components.summary.SummaryType; import org.eclipse.sw360.datahandler.thrift.users.User; import java.util.Collection; import java.util.Collections; import java.util.List; /** * Created by bodet on 17/02/15. * * @author cedric.bodet@tngtech.com */ public class SummaryAwareRepository<T> extends DatabaseRepository<T> { protected final DocumentSummary<T> summary; public SummaryAwareRepository(Class<T> type, DatabaseConnector databaseConnector, DocumentSummary<T> summary) { super(type, databaseConnector); this.summary = summary; } public List<T> makeSummary(SummaryType type, Collection<String> ids) { if (ids == null) { return Collections.emptyList(); } List<T> documents = get(ids); return makeSummaryFromFullDocs(type, documents); } public List<T> makeSummaryFromFullDocs(SummaryType type, Collection<T> docs) { return summary.makeSummary(type, docs); } public List<T> makeSummaryWithPermissions(SummaryType type, Collection<String> ids, User user) { if (ids == null) { return Collections.emptyList(); } List<T> documents = get(ids); return makeSummaryWithPermissionsFromFullDocs(type, documents, user); } public List<T> makeSummaryWithPermissionsFromFullDocs(SummaryType type, Collection<T> docs, User user) { return summary.makeSummaryWithPermissionsFromFullDocs(type,docs,user); } }