Package com.jalios.jcms.handler
Class AbstractQueryHandler<E>
- java.lang.Object
-
- com.jalios.jcms.context.JcmsContext
-
- com.jalios.jcms.context.JcmsJspContext
-
- com.jalios.jcms.handler.JcmsFormHandler
-
- com.jalios.jcms.handler.AbstractQueryHandler<E>
-
- Type Parameters:
E
- The type of Object being manipulated by the implementation of AbstractQueryHandler
- All Implemented Interfaces:
JcmsConstants
,JaliosConstants
- Direct Known Subclasses:
AbstractMemberQueryHandler
,ArchiveQueryHandler
,CategoryQueryHandler
,GroupQueryHandler
,QueryHandler
,WorkspaceQueryHandler
,WorkspaceQueryHandler
public abstract class AbstractQueryHandler<E> extends JcmsFormHandler
Superclass of query handlers.- Since:
- jcms-5.7.4
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractQueryHandler.HiddenParamQhPrinter
HTML hidden input implementation of a QueryHandlerPrinterprotected static class
AbstractQueryHandler.QueryHandlerPrinter
Abstract class defining method used during params printing.static class
AbstractQueryHandler.QueryStringQhPrinter
QueryString implementation of a QueryHandlerPrinter
-
Field Summary
-
Fields inherited from class com.jalios.jcms.handler.JcmsFormHandler
contextMap, csrfValidationEnabled, editFieldSet, formStep, noRedirect, noSendRedirect, op, opFinish, opNext, opPrevious, popupEdition, redirect, redirectOnClosePopup, workspaceForced
-
Fields inherited from class com.jalios.jcms.context.JcmsJspContext
AJAX_REQUEST_ATTRIBUTES, BODY_HEADER, CSS_FOOTER, CSS_HEADER, cssboMap, cssfoMap, CUSTOM_HEADER, editIcon, HTTPEQUIV_HEADER, httpequivMap, HTTPNAME_HEADER, httpnameMap, initEditIcon, JAVASCRIPT_CODE_SET_ATTRIBUTE, JAVASCRIPT_SET_ATTRIBUTE, jsboSet, jsfoSet, out, pageContext, SHOW_EDIT_ICON, STYLE_HEADER
-
Fields inherited from class com.jalios.jcms.context.JcmsContext
browser, caddy, channel, inFO, initDone, initWorkspace, isAdmin, isAjaxRequest, isDBMember, isDebug, isDebugTemplatePath, isLogged, loggedMember, request, response, userCountry, userLang, userLocale, userZoneId, workspace
-
Fields inherited from interface com.jalios.util.JaliosConstants
CRLF, MILLIS_IN_ONE_DAY, MILLIS_IN_ONE_HOUR, MILLIS_IN_ONE_MINUTE, MILLIS_IN_ONE_MONTH, MILLIS_IN_ONE_SECOND, MILLIS_IN_ONE_WEEK, MILLIS_IN_ONE_YEAR
-
Fields inherited from interface com.jalios.jcms.JcmsConstants
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, AJAX_MODE_ATTR, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, CLASS_PROPERTY, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, COUNTRY_SPRITE, CS_TYPOLOGY_ROOT_CAT_VID, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DATA_DIRECTORY, DEFAULT_PHOTO_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, GLYPH_ICON_PREFIX, ICON_ARCHIVE, ICON_ICON_PREFIX, ICON_LOCK, ICON_LOCK_STRONG, ICON_PREFIX_PROP, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, IS_IN_FRONT_OFFICE, JALIOS_JUNIT_PROP, JCMS_CADDY, JCMS_MSG_LIST, JCMS_TOASTR_COLLECTION, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LANG_SPRITE, LOG_FILE, LOG_TOPIC_SECURITY, LOGGER_PROP, LOGGER_XMLPROP, MBR_PHOTO_DIR, MDATE_SEARCH, MONITOR_XML, OP_CREATE, OP_CREATE_STR, OP_DEEP_COPY, OP_DEEP_COPY_STR, OP_DEEP_DELETE, OP_DEEP_DELETE_STR, OP_DELETE, OP_DELETE_STR, OP_MERGE, OP_MERGE_STR, OP_UPDATE, OP_UPDATE_STR, ORGANIZATION_ROOT_GROUP_PROP, PDATE_SEARCH, PHOTO_DIR, PHOTO_ICON, PHOTO_ICON_HEIGHT, PHOTO_ICON_PROP_PREFIX, PHOTO_ICON_WIDTH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_PROP_PREFIX, PHOTO_LARGE_WIDTH, PHOTO_MINI, PHOTO_MINI_HEIGHT, PHOTO_MINI_PROP_PREFIX, PHOTO_MINI_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_PROP_PREFIX, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_PROP_PREFIX, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_PROP_PREFIX, PHOTO_TINY_WIDTH, PREVIOUS_TAB, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, RAW_CONTENT_ICON_PREFIX, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SECURITY_LOG_FILE, SESSION_AUTHORIZED_FILENAMES_SET, SPRITE_ICON_PREFIX, STATS_REPORT_DIR, STATUS_PROP, STORE_DIR, STORE_XML, SUCCESS_MSG, SVG_ICON_PREFIX, SVGINLINE_ICON_PREFIX, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, TTCARD_MEDIA_HEIGHT, TTCARD_MEDIA_WIDTH, TYPES_ICON_ALT_PROP, TYPES_ICON_SUFFIX_PROP, TYPES_ICON_TITLE_PROP, TYPES_PREFIX_PROP, TYPES_THUMB_SUFFIX_PROP, UDATE_SEARCH, UPDATE_RIGHT_TAB, UPLOAD_DIR, UPLOAD_PERMISSION_COUNT_PROP_PREFIX, UPLOAD_PERMISSION_SIZE_PROP_PREFIX, URL_REGEXP, VID_LOGGED_MEMBER, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
-
-
Constructor Summary
Constructors Constructor Description AbstractQueryHandler()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.lang.Object
getAttribute(java.lang.String name)
Returns the value of the named attribute as anObject
, ornull
if no attribute of the given name exists.java.util.Map<java.lang.String,java.lang.Object>
getAttributeMap()
Returns a java.util.Map of the attributes of this results.java.util.Set<? extends E>
getDataSet()
Retrieves the baseSet
ofData
to use for the query, results of this query will be taken from this Set.java.lang.String
getHiddenParams()
Returns all parameters of this QueryHandler as a hidden input.
For example :protected abstract org.apache.log4j.Logger
getLogger()
java.lang.String
getQueryString()
Returns all parameters of this handler as a queryString.
For example :protected void
init(java.lang.String queryString, javax.servlet.http.HttpServletRequest request)
Method to be called by constructor to initialize this handler from a querystring and an optional request.static java.util.Hashtable<java.lang.String,java.lang.String[]>
parseQueryString(java.lang.String s)
Parses a query string passed from the client to the server and builds aHashTable
object with key-value pairs.protected abstract void
parseQueryStringParam(java.lang.String paramName, java.lang.String[] paramValues)
Method to be implemented by subclass to decode parameter from queryString.protected abstract java.lang.String
printParams(AbstractQueryHandler.QueryHandlerPrinter printer)
Method to be implemented by subclass to provide params printing in query or hidden input format.
Typical implementation :java.lang.Object
removeAttribute(java.lang.String name)
Removes an attribute from this result.java.lang.Object
setAttribute(java.lang.String name, java.lang.Object obj)
Stores an attribute in this query.void
setDataSet(java.util.Set<? extends E> proposedDataSet)
Defines the baseSet
ofData
to use for the query, results of this query will be taken from this Set.-
Methods inherited from class com.jalios.jcms.handler.JcmsFormHandler
afterValidation, canStartProcess, checkMissingField, getAvailableMainLanguage, getBackgroundProcess, getClosePopupUrl, getControllerContext, getEditFieldSet, getFormStep, getFormStepCount, getFormStepFinishLabel, getFormStepHiddenFields, getFormStepLabels, getFormStepPrefixProp, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenFieldML, getMainLangValue, getMainLangValueArray, getMLMap, getMLMapArray, getModalRedirect, getMonolingualValue, getMonolingualValueArray, getMultilingualMainValue, getMultilingualMainValueArray, getMultilingualMLMap, getMultilingualMLMapArray, getRedirect, getRedirectOnClosePopup, getWorkspace, init, isFieldEdition, isFieldMissing, isFormStepClickable, isPartialFieldEdition, isPopupEdition, isWorkspaceForced, mapStringArrayToMapStringList, mapStringListToMapStringArray, mustSendForbiddenOnCSRF, performFinish, performNext, performPrevious, processAction, processStatus, sanitize, sanitize, sendRedirect, sendRedirect, setEditField, setFormStep, setNoRedirect, setNoSendRedirect, setOpFinish, setOpNext, setOpPrevious, setPopupEdition, setRedirect, setRedirectOnClosePopup, setWorkspace, setWs, showCancelButton, showFinishButton, showNextButton, showPreviousButton, startProcess, updateUploadedField, updateUploadedFields, updateUploadedFields, validate, validateCSRF, validateFinish, validateNext, validatePrevious
-
Methods inherited from class com.jalios.jcms.context.JcmsJspContext
addAvoidanceLink, addBodyAttributes, addCSSHeader, addCSSHeader, addCSSHeader, addCSSHeader, addCustomHeader, addHandlebarTemplate, addHttpEquivHeader, addHttpNameHeader, addJavaScript, addJavaScript, addJavaScript, addJavaScriptCode, addPrefetchHeader, addStyleHeader, addStyleHeader, addWebAssets, checkAccess, checkAccess, checkCSRF, debugDisplayContext, disablePacker, forceEditIcon, forceUpdate, getAjaxRequestAttribute, getAjaxRequestId, getAllHeadersDiffMap, getAllHeadersMap, getAvoidanceLinks, getBackOfficeCSSHeader, getBackOfficeJavaScriptSet, getBodyAttributes, getContentForm, getCSSHeaders, getCtxCategories, getCurrentCategory, getCustomHeaders, getDocType, getFinalCSSFooterMap, getFinalCSSMap, getFinalJavaScriptSet, getFrontOfficeCSSHeader, getFrontOfficeJavaScriptSet, getHandlebarTemplates, getHttpEquivHeaders, getHttpNameHeaders, getJavaScriptCodeSet, getJavaScriptSet, getJSONBridge, getPageContext, getPageTitle, getPageZone, getPortal, getPortalCategory, getPortlet, getPublication, getStyleHeaders, getTemplateUsage, internalSetupEmptyHeader, isEditIcon, isEditIcon, isEditIconForPublish, isEditIconForPublish, isPrintView, registerDisplayContext, removeAjaxRequestAttribute, setAjaxRequestAttribute, setAjaxRequestId, setAllHeadersDiffMap, setDocType, setEditIcon, setPageContext, setPageTitle, setPageZone, setShowEditIcon, setTemplateUsage, showEditIcon, showEditIcon, showEditIcon, workaroundBrowserBaseHrefBug
-
Methods inherited from class com.jalios.jcms.context.JcmsContext
addCookie, addMsg, addMsg, addMsgSession, addMsgSession, addToastr, addToastr, addToastrSession, addToastrSession, applySelector, copyMsgListToMsgSessionList, forceWorkspaceUpdate, getBaseUrl, getBrowser, getCaddy, getContextPath, getErrorMsg, getErrorMsgList, getErrorMsgSession, getErrorMsgSessionList, getInfoMsg, getInfoMsgList, getInfoMsgSession, getInfoMsgSessionList, getLoggedMember, getMsgList, getMsgSessionList, getRequest, getResponse, getSession, getSuccessMsg, getSuccessMsgList, getSuccessMsgSession, getSuccessMsgSessionList, getToastrCollection, getToastrSessionCollection, getUploadedFile, getUploadedFileList, getUploadedFiles, getUploadedFiles, getUrlWithCommonUpdatedParams, getUserCountry, getUserLang, getUserLocale, getUserZoneId, getWarningMsg, getWarningMsgList, getWarningMsgSession, getWarningMsgSessionList, glp, isAdmin, isAdminZone, isAjaxRequest, isDBMember, isDebug, isDebugTemplate, isInFrontOffice, isLogged, isWebdavAccess, isWorkZone, removeMessage, removeMessage, removeMsg, retrieveUploadedFile, select, sendError, sendError, sendForbidden, sendForbidden, sendRedirect, sendRedirect, sendRedirect, setErrorMsg, setErrorMsg, setErrorMsgSession, setErrorMsgSession, setInfoMsg, setInfoMsg, setInfoMsgSession, setInfoMsgSession, setLoggedMember, setRequest, setResponse, setSuccessMsg, setSuccessMsg, setSuccessMsgSession, setSuccessMsgSession, setWarningMsg, setWarningMsg, setWarningMsgSession, setWarningMsgSession, updateWorkspace, validateRegexp, validateSchedule
-
-
-
-
Method Detail
-
getLogger
protected abstract org.apache.log4j.Logger getLogger()
-
parseQueryStringParam
protected abstract void parseQueryStringParam(java.lang.String paramName, java.lang.String[] paramValues)
Method to be implemented by subclass to decode parameter from queryString.- Parameters:
paramName
- the parameter name, never null nor empty.paramValues
- the parameter values, NEVER NULL NOR EMPTY. You can safely invokeparamValues[0]
- Since:
- jcms-5.7.5
-
init
protected void init(java.lang.String queryString, javax.servlet.http.HttpServletRequest request)
Method to be called by constructor to initialize this handler from a querystring and an optional request.- Parameters:
queryString
- a query String consisting of parameters (key=value) to be set in this handler.- Parameters must be separated with ampersand (&).
- Values must be encoded in UTF-8.
- Query must not starts with question mark (?)
e.g :"groupText=welcome&gid=j_42"
request
- theHttpServletRequest
to use to retrieveloggedMember
,userLang
,userLocale
that will be used by this handler, ignored if null.- Since:
- jcms-5.7.4
-
parseQueryString
public static java.util.Hashtable<java.lang.String,java.lang.String[]> parseQueryString(java.lang.String s)
Parses a query string passed from the client to the server and builds aHashTable
object with key-value pairs. The query string should be in the form of a string packaged by the GET or POST method, that is, it should have key-value pairs in the form key=value, with each pair separated from the next by a & character.A key can appear more than once in the query string with different values. However, the key appears only once in the hashtable, with its value being an array of strings containing the multiple values sent by the query string.
The keys and values in the hashtable are stored in their decoded form, so any + characters are converted to spaces, and characters sent in hexadecimal notation (like %wx%yz) are converted to UTF-8 characters.
Method taken from deprecated package javax.servlet.http.HttpUtils.
- Parameters:
s
- a string containing the query to be parsed- Returns:
- a
HashTable
object built from the parsed key-value pairs - Throws:
java.lang.IllegalArgumentException
- if the query string is invalid
-
setDataSet
public void setDataSet(java.util.Set<? extends E> proposedDataSet)
Defines the baseSet
ofData
to use for the query, results of this query will be taken from this Set. Default is null, which performs a search in all data, invoke this method to provide a smaller set to optimize the query.- Parameters:
proposedDataSet
- aSet
ofData
- Since:
- jcms-5.7.4
-
getDataSet
public java.util.Set<? extends E> getDataSet()
Retrieves the baseSet
ofData
to use for the query, results of this query will be taken from this Set.- Returns:
- a
Set
ofData
of null if no base set has been defined (and that all data will be used). - Since:
- jcms-5.7.4
- See Also:
setDataSet(Set)
-
setAttribute
public java.lang.Object setAttribute(java.lang.String name, java.lang.Object obj)
Stores an attribute in this query.
If the object passed in is null, the effect is the same as callingremoveAttribute(java.lang.String)
.- Parameters:
name
- aString
specifying the name of the attributeobj
- theObject
to be stored- Returns:
- previous value associated with specified name, or
null
if there was no mapping for name. Anull
return can also indicate thatnull
was associated with the specified name. - Since:
- jcms-5.7.2
-
removeAttribute
public java.lang.Object removeAttribute(java.lang.String name)
Removes an attribute from this result.- Parameters:
name
- aString
specifying- Returns:
- previous value associated with specified name, or
null
if there was no mapping for name. Anull
return can also indicate thatnull
was associated with the specified name. - Since:
- jcms-5.7.2
-
getAttribute
public java.lang.Object getAttribute(java.lang.String name)
Returns the value of the named attribute as anObject
, ornull
if no attribute of the given name exists.- Parameters:
name
- aString
specifying the name of the attribute- Returns:
- an
Object
containing the value of the attribute, ornull
if the attribute does not exist - Since:
- jcms-5.7.2
-
getAttributeMap
public java.util.Map<java.lang.String,java.lang.Object> getAttributeMap()
Returns a java.util.Map of the attributes of this results.- Returns:
- the internal Map used by this results, modify with care.
- Since:
- jcms-5.7.2
-
getQueryString
public java.lang.String getQueryString()
Returns all parameters of this handler as a queryString.
For example :"types=Content&cids=c_42"
- Returns:
- a query string, starting with a parameter name (no '?' or '&')
-
getHiddenParams
public java.lang.String getHiddenParams()
Returns all parameters of this QueryHandler as a hidden input.
For example :<input type="hidden" name="types" value="Content"/> <input type="hidden" name="cids" value="c_42"/>
- Returns:
- a html string, containing all hidden inputs.
- Since:
- jcms-5.7.0
-
printParams
protected abstract java.lang.String printParams(AbstractQueryHandler.QueryHandlerPrinter printer)
Method to be implemented by subclass to provide params printing in query or hidden input format.
Typical implementation :protected String printParams(QueryHandlerPrinter printer) { printer.printParam("foo", getFoo()); printer.printParam("bar", getBar()); return printer.toString(); }
- Parameters:
printer
- a QueryHandlerPrinter to use- Returns:
- a string containing all parameters of this handler printed using specified QueryHandlerPrinter.
- Since:
- jcms-5.7.4
-
-