001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.kernel.search.facet;
016    
017    import com.liferay.portal.kernel.search.BooleanClause;
018    import com.liferay.portal.kernel.search.Query;
019    import com.liferay.portal.kernel.search.SearchContext;
020    import com.liferay.portal.kernel.search.facet.collector.FacetCollector;
021    import com.liferay.portal.kernel.search.facet.config.FacetConfiguration;
022    import com.liferay.portal.kernel.search.facet.util.BaseFacetValueValidator;
023    import com.liferay.portal.kernel.search.facet.util.FacetValueValidator;
024    import com.liferay.portal.kernel.search.filter.Filter;
025    import com.liferay.portal.kernel.util.StringPool;
026    import com.liferay.portal.kernel.util.StringUtil;
027    
028    /**
029     * @author Raymond Aug??
030     */
031    public abstract class BaseFacet implements Facet {
032    
033            public BaseFacet(SearchContext searchContext) {
034                    _searchContext = searchContext;
035            }
036    
037            /**
038             * @deprecated As of 7.0.0, replaced by {@link #getFacetFilterBooleanClause}
039             */
040            @Deprecated
041            @Override
042            public BooleanClause<Query> getFacetClause() {
043                    return doGetFacetClause();
044            }
045    
046            @Override
047            public FacetCollector getFacetCollector() {
048                    return _facetCollector;
049            }
050    
051            @Override
052            public FacetConfiguration getFacetConfiguration() {
053                    return _facetConfiguration;
054            }
055    
056            @Override
057            public BooleanClause<Filter> getFacetFilterBooleanClause() {
058                    return doGetFacetFilterBooleanClause();
059            }
060    
061            @Override
062            public FacetValueValidator getFacetValueValidator() {
063                    if (_facetValueValidator == null) {
064                            _facetValueValidator = new BaseFacetValueValidator();
065                    }
066    
067                    return _facetValueValidator;
068            }
069    
070            @Override
071            public String getFieldId() {
072                    return StringUtil.replace(
073                            getFieldName(), StringPool.SLASH, StringPool.UNDERLINE);
074            }
075    
076            @Override
077            public String getFieldName() {
078                    return _facetConfiguration.getFieldName();
079            }
080    
081            @Override
082            public SearchContext getSearchContext() {
083                    return _searchContext;
084            }
085    
086            @Override
087            public boolean isStatic() {
088                    return _facetConfiguration.isStatic();
089            }
090    
091            @Override
092            public void setFacetCollector(FacetCollector facetCollector) {
093                    _facetCollector = facetCollector;
094            }
095    
096            @Override
097            public void setFacetConfiguration(FacetConfiguration facetConfiguration) {
098                    _facetConfiguration = facetConfiguration;
099            }
100    
101            @Override
102            public void setFacetValueValidator(
103                    FacetValueValidator facetValueValidator) {
104    
105                    _facetValueValidator = facetValueValidator;
106            }
107    
108            @Override
109            public void setFieldName(String fieldName) {
110                    _facetConfiguration.setFieldName(fieldName);
111            }
112    
113            @Override
114            public void setStatic(boolean isStatic) {
115                    _facetConfiguration.setStatic(isStatic);
116            }
117    
118            /**
119             * @deprecated As of 7.0.0, replaced by {@link
120             *             #doGetFacetFilterBooleanClause}
121             */
122            @Deprecated
123            protected BooleanClause<Query> doGetFacetClause() {
124                    return null;
125            }
126    
127            protected abstract BooleanClause<Filter> doGetFacetFilterBooleanClause();
128    
129            private FacetCollector _facetCollector;
130            private FacetConfiguration _facetConfiguration = new FacetConfiguration();
131            private FacetValueValidator _facetValueValidator;
132            private final SearchContext _searchContext;
133    
134    }