com.jalios.jcms.handler
Class AbstractQueryHandler<E>

java.lang.Object
  extended by com.jalios.jcms.context.JcmsContext
      extended by com.jalios.jcms.context.JcmsJspContext
          extended by com.jalios.jcms.handler.JcmsFormHandler
              extended by 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:
AllMemberQueryHandler, ArchiveQueryHandler, DBMemberQueryHandler, GroupQueryHandler, MemberQueryHandler, QueryHandler, WorkspaceQueryHandler

public abstract class AbstractQueryHandler<E>
extends JcmsFormHandler

Superclass of query handlers.

Since:
jcms-5.7.4
Version:
$Revision: 22590 $

Nested Class Summary
static class AbstractQueryHandler.HiddenParamQhPrinter
          HTML hidden input implementation of a QueryHandlerPrinter
protected static class AbstractQueryHandler.QueryHandlerPrinter
          Abstract class defining method used during params printing.
static class AbstractQueryHandler.QueryStringQhPrinter
          QueryString implementation of a QueryHandlerPrinter
 
Field Summary
static String REVISION
           
 
Fields inherited from class com.jalios.jcms.handler.JcmsFormHandler
contextMap, editFieldSet, noRedirect, noSendRedirect, popupEdition, redirect, redirectOnClosePopup, workspaceForced
 
Fields inherited from class com.jalios.jcms.context.JcmsJspContext
AJAX_REQUEST_ATTRIBUTES, BODY_HEADER, CSS_HEADER, cssboMap, cssfoMap, CUSTOM_HEADER, editIcon, HTTPEQUIV_HEADER, httpequivMap, HTTPNAME_HEADER, httpnameMap, initEditIcon, JAVASCRIPT_CODE_SET_ATTRIBUTE, JAVASCRIPT_SET_ATTRIBUTE, JS_HEADER, jsboMap, jsboSet, jsfoMap, 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, isLogged, loggedMember, request, response, userLang, userLocale, workspace
 
Fields inherited from interface com.jalios.jcms.JcmsConstants
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, CRYPT_MD5, CRYPT_UNDEFINED, CRYPT_UNIX, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, ICON_ARCHIVE, ICON_LOCK, ICON_LOCK_STRONG, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, JALIOS_JUNIT_PROP, JCMS_CADDY, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LOG_FILE, LOG_TOPIC_SECURITY, LOGGER_PROP, LOGGER_XMLPROP, MBR_PHOTO_DIR, MDATE_SEARCH, MONITOR_XML, OP_CREATE, OP_DEEP_COPY, OP_DEEP_DELETE, OP_DELETE, OP_MERGE, OP_UPDATE, PDATE_SEARCH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_WIDTH, PREVIOUS_TAB, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SESSION_AUTHORIZED_FILENAMES_SET, STATS_REPORT_DIR, STATUS_PROP, STORE_XML, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, UDATE_SEARCH, UPDATE_RIGHT_TAB, UPLOAD_DIR, URL_REGEXP, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
 
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
 
Constructor Summary
AbstractQueryHandler()
           
 
Method Summary
 Object getAttribute(String name)
          Returns the value of the named attribute as an Object, or null if no attribute of the given name exists.
 Map<String,Object> getAttributeMap()
          Returns a java.util.Map of the attributes of this results.
 Set<? extends E> getDataSet()
          Retrieves the base Set of Data to use for the query, results of this query will be taken from this Set.
 String getHiddenParams()
          Returns all parameters of this QueryHandler as a hidden input.
protected abstract  org.apache.log4j.Logger getLogger()
           
 String getQueryString()
          Returns all parameters of this handler as a queryString.
protected  void init(String queryString, javax.servlet.http.HttpServletRequest request)
          Method to be called by constructor to initialize this handler from a querystring and an optionnal request.
static Hashtable<String,String[]> parseQueryString(String s)
          Parses a query string passed from the client to the server and builds a HashTable object with key-value pairs.
protected abstract  void parseQueryStringParam(String paramName, String[] paramValues)
          Method to be implemented by subclass to decode parameter from queryString.
protected abstract  String printParams(AbstractQueryHandler.QueryHandlerPrinter printer)
          Method to be implemented by subclass to provide params printing in query or hidden input format.
 Object removeAttribute(String name)
          Removes an attribute from this result.
 Object setAttribute(String name, Object obj)
          Stores an attribute in this query.
 void setDataSet(Set<? extends E> proposedDataSet)
          Defines the base Set of Data to use for the query, results of this query will be taken from this Set.
 
Methods inherited from class com.jalios.jcms.handler.JcmsFormHandler
getControllerContext, getEditFieldSet, getMainLangValue, getMainLangValueArray, getMLMap, getMLMapArray, getRedirect, getRedirectOnClosePopup, getWorkspace, isFieldEdition, isFieldMissing, isPartialFieldEdition, isPopupEdition, isWorkspaceForced, processStatus, sendRedirect, sendRedirect, setEditField, setNoRedirect, setNoSendRedirect, setPopupEdition, setRedirect, setRedirectOnClosePopup, setWorkspace, setWs, updateUploadedField, updateUploadedFields
 
Methods inherited from class com.jalios.jcms.context.JcmsJspContext
addBodyAttributes, addCSSHeader, addCSSHeader, addCSSHeader, addCSSHeader, addCustomHeader, addHttpEquivHeader, addHttpNameHeader, addJavaScript, addJavaScript, addJavaScript, addJavaScriptCode, addJSHeader, addJSHeader, addJSHeader, addJSHeader, addStyleHeader, addStyleHeader, debugDisplayContext, forceEditIcon, forceUpdate, getAjaxRequestAttribute, getAjaxRequestId, getAllHeadersDiffMap, getAllHeadersMap, getBackOfficeCSSHeader, getBackOfficeJavaScriptSet, getBackOfficeJSHeader, getBodyAttributes, getContentForm, getCSSHeaders, getCtxCategories, getCurrentCategory, getCustomHeaders, getDocType, getFinalCSSMap, getFinalJavaScriptSet, getFormElementCount, getFrontOfficeCSSHeader, getFrontOfficeJavaScriptSet, getFrontOfficeJSHeader, getHttpEquivHeaders, getHttpNameHeaders, getJavaScriptCodeSet, getJavaScriptSet, getJSHeaders, getJSONBridge, getPageContext, getPageTitle, getPageZone, getPortal, getPortalCategory, getPortlet, getPublication, getStyleHeaders, getTemplateUsage, internalSetupEmptyHeader, isEditIcon, isPrintView, registerDisplayContext, removeAjaxRequestAttribute, setAjaxRequestAttribute, setAjaxRequestId, setAllHeadersDiffMap, setDocType, setEditIcon, setFormElementCount, setPageContext, setPageTitle, setPageZone, setShowEditIcon, setTemplateUsage, showEditIcon, workaroundJCMS1967
 
Methods inherited from class com.jalios.jcms.context.JcmsContext
addCookie, forceWorkspaceUpdate, getBaseUrl, getBrowser, getCaddy, getContextPath, getErrorMsg, getInfoMsg, getLoggedMember, getRequest, getResponse, getSession, getUploadedFile, getUploadedFileList, getUrlWithCommonUpdatedParams, getUserLang, getUserLocale, getWarningMsg, glp, isAdmin, isAjaxRequest, isDBMember, isDebug, isInFrontOffice, isLogged, isWebdavAccess, retrieveUploadedFile, sendForbidden, sendForbidden, sendRedirect, sendRedirect, setErrorMsg, setErrorMsg, setErrorMsgSession, setErrorMsgSession, setInfoMsg, setInfoMsg, setInfoMsgSession, setInfoMsgSession, setLoggedMember, setRequest, setResponse, setWarningMsg, setWarningMsg, setWarningMsgSession, setWarningMsgSession, validateRegexp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REVISION

public static final String REVISION
See Also:
Constant Field Values
Constructor Detail

AbstractQueryHandler

public AbstractQueryHandler()
Method Detail

getLogger

protected abstract org.apache.log4j.Logger getLogger()

parseQueryStringParam

protected abstract void parseQueryStringParam(String paramName,
                                              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 invoke paramValues[0]
Since:
jcms-5.7.5

init

protected void init(String queryString,
                    javax.servlet.http.HttpServletRequest request)
Method to be called by constructor to initialize this handler from a querystring and an optionnal 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 - the HttpServletRequest to use to retrieve loggedMember, userLang, userLocale that will be used by this handler, ignored if null.
Since:
jcms-5.7.4

parseQueryString

public static Hashtable<String,String[]> parseQueryString(String s)
Parses a query string passed from the client to the server and builds a HashTable 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:
IllegalArgumentException - if the query string is invalid

setDataSet

public void setDataSet(Set<? extends E> proposedDataSet)
Defines the base Set of Data 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 - a Set of Data
Since:
jcms-5.7.4

getDataSet

public Set<? extends E> getDataSet()
Retrieves the base Set of Data to use for the query, results of this query will be taken from this Set.

Returns:
a Set of Data 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 Object setAttribute(String name,
                           Object obj)
Stores an attribute in this query.
If the object passed in is null, the effect is the same as calling removeAttribute(java.lang.String).

Parameters:
name - a String specifying the name of the attribute
obj - the Object to be stored
Returns:
previous value associated with specified name, or null if there was no mapping for name. A null return can also indicate that null was associated with the specified name.
Since:
jcms-5.7.2

removeAttribute

public Object removeAttribute(String name)
Removes an attribute from this result.

Parameters:
name - a String specifying
Returns:
previous value associated with specified name, or null if there was no mapping for name. A null return can also indicate that null was associated with the specified name.
Since:
jcms-5.7.2

getAttribute

public Object getAttribute(String name)
Returns the value of the named attribute as an Object, or null if no attribute of the given name exists.

Parameters:
name - a String specifying the name of the attribute
Returns:
an Object containing the value of the attribute, or null if the attribute does not exist
Since:
jcms-5.7.2

getAttributeMap

public Map<String,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 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 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 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


Copyright © 2001-2007 Jalios SA. All Rights Reserved.