/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search.query; import java.util.Collection; import com.enonic.cms.core.content.category.CategoryKey; import com.enonic.cms.core.content.contenttype.ContentTypeKey; import com.enonic.cms.core.security.group.GroupKey; /** * This class implements the abstract query. */ public abstract class AbstractQuery { /** * Category key filter. */ private Collection<CategoryKey> categoryFilter; /** * Content type key filter. */ private Collection<ContentTypeKey> contentTypeFilter; /** * Security filter. */ private Collection<GroupKey> securityFilter; public Collection<ContentTypeKey> getContentTypeFilter() { return contentTypeFilter; } public boolean hasContentTypeFilter() { return this.contentTypeFilter != null && !this.contentTypeFilter.isEmpty(); } /** * @param filter The content types the returned contents must belong to. */ public void setContentTypeFilter( Collection<ContentTypeKey> filter ) { contentTypeFilter = filter; } public Collection<CategoryKey> getCategoryFilter() { return this.categoryFilter; } public boolean hasCategoryFilter() { return this.categoryFilter != null && !this.categoryFilter.isEmpty(); } public int getCategoryFilterSize() { if ( this.categoryFilter == null ) { return 0; } return this.categoryFilter.size(); } /** * @param categoryFilter The categories the returned contents must belong to. */ public void setCategoryFilter( Collection<CategoryKey> categoryFilter ) { this.categoryFilter = categoryFilter; } public Collection<GroupKey> getSecurityFilter() { return securityFilter; } public boolean hasSecurityFilter() { return securityFilter != null && securityFilter.size() > 0; } /** * @param filter All the groups the currently logged in user belongs to, or <code>null</code> if the currently logged in user is the * Enterprise Admin. */ public void setSecurityFilter( Collection<GroupKey> filter ) { securityFilter = filter; } }