001/* 002 * This library is part of OpenCms - 003 * the Open Source Content Management System 004 * 005 * Copyright (c) Alkacon Software GmbH & Co. KG (https://www.alkacon.com) 006 * 007 * This library is free software; you can redistribute it and/or 008 * modify it under the terms of the GNU Lesser General Public 009 * License as published by the Free Software Foundation; either 010 * version 2.1 of the License, or (at your option) any later version. 011 * 012 * This library is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * For further information about Alkacon Software, please see the 018 * company website: https://www.alkacon.com 019 * 020 * For further information about OpenCms, please see the 021 * project website: https://www.opencms.org 022 * 023 * You should have received a copy of the GNU Lesser General Public 024 * License along with this library; if not, write to the Free Software 025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 026 */ 027 028package org.opencms.jsp.search.config; 029 030/** Class keeping the configuration of the "Did you mean ...?" feature of the search form. */ 031public class CmsSearchConfigurationDidYouMean implements I_CmsSearchConfigurationDidYouMean { 032 033 /** The default escape setting. */ 034 private static final boolean DEFAULT_ESCAPE = true; 035 /** The default collate setting. */ 036 private static final boolean DEFAULT_COLLATE = true; 037 /** Default for maximal number of suggestions. */ 038 private static final int DEFAULT_COUNT = 5; 039 040 /** A modifier for the search query. */ 041 private final boolean m_collate; 042 /** Parameter used to transmit the query used for spellchecking. */ 043 private final String m_param; 044 /** Flag, indicating if the query should be escaped. */ 045 private final boolean m_escapeQueryChars; 046 /** Maximal number of suggestions. */ 047 private final int m_count; 048 049 /** Constructor setting all the state. 050 * @param param The request parameter used to send the spellcheck query. 051 * @param escapeQueryChars Flag, indicating if query characters should be escaped. 052 * @param collate Flag, indicating if the results should be collated. 053 * @param count The maximal number of suggestions. 054 */ 055 public CmsSearchConfigurationDidYouMean( 056 final String param, 057 final Boolean escapeQueryChars, 058 final Boolean collate, 059 final Integer count) { 060 061 m_param = param; 062 m_escapeQueryChars = null == escapeQueryChars ? DEFAULT_ESCAPE : escapeQueryChars.booleanValue(); 063 m_collate = null == collate ? DEFAULT_COLLATE : collate.booleanValue(); 064 m_count = null == count ? DEFAULT_COUNT : count.intValue(); 065 066 } 067 068 /** 069 * @see org.opencms.jsp.search.config.I_CmsSearchConfigurationDidYouMean#getCollate() 070 */ 071 public boolean getCollate() { 072 073 return m_collate; 074 } 075 076 /** 077 * @see org.opencms.jsp.search.config.I_CmsSearchConfigurationDidYouMean#getCount() 078 */ 079 public int getCount() { 080 081 return m_count; 082 } 083 084 /** 085 * @see org.opencms.jsp.search.config.I_CmsSearchConfigurationDidYouMean#getEscapeQueryChars() 086 */ 087 public boolean getEscapeQueryChars() { 088 089 return m_escapeQueryChars; 090 } 091 092 /** 093 * @see org.opencms.jsp.search.config.I_CmsSearchConfigurationDidYouMean#getQueryParam() 094 */ 095 public String getQueryParam() { 096 097 return m_param; 098 } 099 100}