Package com.jalios.jcms
Class QueryManager
- java.lang.Object
-
- com.jalios.jcms.QueryManager
-
- All Implemented Interfaces:
JcmsConstants,JaliosConstants
public class QueryManager extends java.lang.Object implements JcmsConstants
This class manages queries on publications- Since:
- jcms-5.0.0
- Author:
- Olivier Dedieu, Olivier Jaquemet
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classQueryManager.QueryPublicationSelectorstatic classQueryManager.QueryStepQuery manager steps, used to determintate which query processing is being performed.
-
Field Summary
Fields Modifier and Type Field Description protected intidCountstatic java.lang.StringQUERY_MANAGER_STEP_ATTRIBUTEQueryHandler attribute key of the current QueryManager processing step of the QueryManager.protected java.util.Set<QueryFilter>queryFilterSet-
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
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddQueryFilter(QueryFilter qf)Add the given QueryFilter.booleancallFilterDBResult(PublicationCriteria pubCriteria)voidfilterCriteria(PublicationCriteria pubCriteria, org.hibernate.Criteria criteria)Invoke all QueryFilter to allow them to modify the Hibernate Criteria used for a DB Query.booleanfilterDBResult(Publication pub, java.util.Map context)protected java.util.Date[]getBeginAndEndDates(QueryHandler qh)Compute begin and end date of a query from QueryHandler values.CategorySearchEnginegetCategorySearchEngine()protected static intgetDateType(QueryHandler qh)Return an integer describing the type of search date from a QueryHandler.static QueryManagergetInstance()PublicationSearchEnginegetPublicationSearchEngine()protected java.util.HashSet<Category>getQueryAvoidCategorySet(QueryHandler qh)Compute aHashSetofCategoryto exclude during query from the "cidsOff" value of the given QueryHandler.protected java.util.HashSet<java.lang.Class<? extends Publication>>getQueryAvoidClassSet(QueryHandler qh)Compute aHashSetofClass(type) to include during query from the "typesOff" value of the given QueryHandler.protected java.util.HashSet<Group>getQueryAvoidGroupSet(QueryHandler qh)Compute aHashSetofGroupto exclude during query from the "gidsOff" value of the given QueryHandler.protected java.util.HashSet<Member>getQueryAvoidMemberSet(QueryHandler qh)Compute aHashSetofMemberto exclude during query from the "midsOff" value of the given QueryHandler.protected java.util.HashSet<Category>getQueryCategorySet(QueryHandler qh)Compute aHashSetofCategoryto include during query from the "cids" value of the given QueryHandler.protected java.util.HashSet<java.lang.Class<? extends Publication>>getQueryClassSet(QueryHandler qh, boolean addFileDoc)Compute aHashSetofClass(type) to include during query from the "types" value of the given QueryHandler.java.util.Set<QueryFilter>getQueryFilterSet()Returns all the query filter.protected java.util.HashSet<Group>getQueryGroupSet(QueryHandler qh)Compute aHashSetofGroupto include during query from the "gids" value of the given QueryHandler.static QueryManagergetQueryManager()protected java.util.HashSet<Member>getQueryMemberSet(QueryHandler qh)Compute aHashSetofMemberto include during query from the "mids" value of the given QueryHandler.protected java.util.HashSet<PortalElement>getQueryPortalElementSet(QueryHandler qh)Compute aHashSetofPortalElementincluding all portal ands its children from the "portalIds" value of the given QueryHandler.java.util.SortedSet<? extends Publication>getRelatedPublicationSet(Publication pub, QueryHandler qh)Returns a set of publications related to the given publication and the given query handler.java.util.SortedSet<? extends Publication>getRelatedPublicationSet(Publication pub, Member mbr, java.lang.Class... classes)Returns a set of publications related to the given publication and the given types for the given member.java.util.SortedSet<? extends Publication>getRelatedPublicationSet(java.util.Set<Category> catSet, QueryHandler qh, java.util.Comparator<? extends Publication> superComparator)Returns a set of publications related to the given category set and the given query handler.static booleanmatchLucenePublicationRefinement(QueryHandler qh, Publication pub)protected QueryResultSetperformJStoreQuery(QueryHandler qh, javax.servlet.http.HttpServletRequest request, java.util.Set<? extends Publication> proposedDataSet)voidprepareExternalResult(Publication pub)Prepare the given publication to be displayed in the result list.QueryResultSetquery(QueryHandler qh, javax.servlet.ServletRequest request, java.util.Set<? extends Publication> proposedDataSet)Perform a query using parameters specified in the givenQueryHandler.protected voidreduceDataSetWithCategories(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)Fill the givenHashSetwithDatato keep and to exclude using Categories options (cids/cidsOff) of the QueryHandler.protected QueryResultSetreduceDataSetWithHistoryRefinement(QueryHandler qh, java.util.Set<? extends Publication> proposedDataSet, javax.servlet.http.HttpServletRequest request, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)Fill the givenHashSetwithDatato keep and to exclude using query History (hist) of the QueryHandler.protected voidreduceDataSetWithMembers(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)Fill the givenHashSetwithDatato keep and to exclude using Members options (mids/midsOff) of the QueryHandler.protected voidreduceDataSetWithPortalElements(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)Fill the givenHashSetwithDatato keep and to exclude using PortalElement options (mids/midsOff) of the QueryHandler.protected voidreduceDataSetWithTextEngine(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)Fill the givenHashSetwithDatato keep and to exclude using Text Search options of the QueryHandler.protected booleanreduceDataSetWithTypes(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)Fill the givenHashSetwithDatato keep and to exclude using Types options (types/typesOff) of the QueryHandler.voidremoveQueryFilter(QueryFilter qf)Remove the given QueryFilter.protected voidreplaceFileDocByReferrers(QueryHandler qh, QueryResultSet resultSet, DataSelector replacedFileDocSelector)This method replace any FileDocuments inside the givenQueryResultSetby their referrer (see getLinkIndexedDataSet(Publication.class)).protected booleansearchFulltext(QueryHandler qh, java.util.HashSet<Publication> dataSet, QueryResultSet resultSet)Perform a full-text search.
-
-
-
Field Detail
-
QUERY_MANAGER_STEP_ATTRIBUTE
public static final java.lang.String QUERY_MANAGER_STEP_ATTRIBUTE
QueryHandler attribute key of the current QueryManager processing step of the QueryManager.- See Also:
QueryManager.QueryStep, Constant Field Values
-
queryFilterSet
protected java.util.Set<QueryFilter> queryFilterSet
-
idCount
protected int idCount
-
-
Method Detail
-
getQueryManager
public static QueryManager getQueryManager()
-
getInstance
public static QueryManager getInstance()
-
getPublicationSearchEngine
public PublicationSearchEngine getPublicationSearchEngine()
- Returns:
- the PublicationSearchEngine
- Since:
- jcms-5.5.0
-
getCategorySearchEngine
public CategorySearchEngine getCategorySearchEngine()
- Returns:
- the CategorySearchEngine
- Since:
- jcms-5.5.0
-
addQueryFilter
public void addQueryFilter(QueryFilter qf)
Add the given QueryFilter.- Parameters:
qf- the QueryFilter to be added- Since:
- jcms-5.0.0
-
removeQueryFilter
public void removeQueryFilter(QueryFilter qf)
Remove the given QueryFilter.- Parameters:
qf- the QueryFilter to be removed- Since:
- jcms-5.0.0
-
getQueryFilterSet
public java.util.Set<QueryFilter> getQueryFilterSet()
Returns all the query filter. DO NOT alter the returned set, clone prior modification.- Returns:
- the queryFilterSet
- Since:
- jcms-5.5.0
-
prepareExternalResult
public void prepareExternalResult(Publication pub)
Prepare the given publication to be displayed in the result list. Fill the publication with fake id, cdate, mdate and pdate, and author.- Parameters:
pub- the publication to be prepared- Since:
- jcms-5.0.0
-
query
public QueryResultSet query(QueryHandler qh, javax.servlet.ServletRequest request, java.util.Set<? extends Publication> proposedDataSet)
Perform a query using parameters specified in the givenQueryHandler.
Search in the givenCollectionofPublicationor in allPublicationif not specified.- Parameters:
qh- theQueryHandlerfrom which to retrieve the query parameters, MUST NOT be null.request- theServletHttpRequestused to set some error or warning messages in the attributes, can be null.proposedDataSet- theCollectionofPublicationin which to search and apply query parameters, if null, search is done in allPublication.- Returns:
- a
QueryResultSetcontaining all results of this query, it is aHashSetand therefore it is NOT sorted. use eitherQueryResultSet.getAsSortedSet()orQueryResultSet.getAsSortedSet(java.util.Comparator)to obtain a sorted Set. - Since:
- jcms-5.0.0
-
performJStoreQuery
protected QueryResultSet performJStoreQuery(QueryHandler qh, javax.servlet.http.HttpServletRequest request, java.util.Set<? extends Publication> proposedDataSet)
- Parameters:
qh- the queryHandlerrequest- the requestproposedDataSet- the proposed data set- Returns:
- see QueryManager#query(QueryHandler, ServletRequest, Set)
- See Also:
query(QueryHandler, ServletRequest, Set)
-
getDateType
protected static int getDateType(QueryHandler qh)
Return an integer describing the type of search date from a QueryHandler.- Parameters:
qh- theQueryHandlerto use.- Returns:
- an integer, see ?DATE_SEARCH constants.
-
getBeginAndEndDates
protected java.util.Date[] getBeginAndEndDates(QueryHandler qh)
Compute begin and end date of a query from QueryHandler values.- Parameters:
qh- theQueryHandlerto use.- Returns:
- an array of two
Date, the first is the begin date, the second the end Date.
-
getQueryCategorySet
protected java.util.HashSet<Category> getQueryCategorySet(QueryHandler qh)
Compute aHashSetofCategoryto include during query from the "cids" value of the given QueryHandler.- Parameters:
qh- the QueryHandler- Returns:
- a
HashSetofCategory
-
getQueryAvoidCategorySet
protected java.util.HashSet<Category> getQueryAvoidCategorySet(QueryHandler qh)
Compute aHashSetofCategoryto exclude during query from the "cidsOff" value of the given QueryHandler.- Parameters:
qh- the QueryHandler- Returns:
- a
HashSetofCategory
-
getQueryMemberSet
protected java.util.HashSet<Member> getQueryMemberSet(QueryHandler qh)
Compute aHashSetofMemberto include during query from the "mids" value of the given QueryHandler.- Parameters:
qh- the QueryHandler- Returns:
- a
HashSetofMember
-
getQueryAvoidMemberSet
protected java.util.HashSet<Member> getQueryAvoidMemberSet(QueryHandler qh)
Compute aHashSetofMemberto exclude during query from the "midsOff" value of the given QueryHandler.- Parameters:
qh- the QueryHandler- Returns:
- a
HashSetofMember
-
getQueryGroupSet
protected java.util.HashSet<Group> getQueryGroupSet(QueryHandler qh)
Compute aHashSetofGroupto include during query from the "gids" value of the given QueryHandler. Return null if the computed hashset is empty.- Parameters:
qh- the QueryHandler- Returns:
- a
HashSetofGroup
-
getQueryAvoidGroupSet
protected java.util.HashSet<Group> getQueryAvoidGroupSet(QueryHandler qh)
Compute aHashSetofGroupto exclude during query from the "gidsOff" value of the given QueryHandler.- Parameters:
qh- the QueryHandler- Returns:
- a
HashSetofGroup
-
getQueryPortalElementSet
protected java.util.HashSet<PortalElement> getQueryPortalElementSet(QueryHandler qh)
Compute aHashSetofPortalElementincluding all portal ands its children from the "portalIds" value of the given QueryHandler.- Parameters:
qh- the QueryHandler- Returns:
- a
HashSetofPortalElement
-
getQueryClassSet
protected java.util.HashSet<java.lang.Class<? extends Publication>> getQueryClassSet(QueryHandler qh, boolean addFileDoc)
Compute aHashSetofClass(type) to include during query from the "types" value of the given QueryHandler.- Parameters:
qh- the QueryHandleraddFileDoc- if true add the FileDocument class- Returns:
- a
HashSetofClass
-
getQueryAvoidClassSet
protected java.util.HashSet<java.lang.Class<? extends Publication>> getQueryAvoidClassSet(QueryHandler qh)
Compute aHashSetofClass(type) to include during query from the "typesOff" value of the given QueryHandler.- Parameters:
qh- the QueryHandler- Returns:
- a
HashSetofClass
-
reduceDataSetWithTextEngine
protected void reduceDataSetWithTextEngine(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)
Fill the givenHashSetwithDatato keep and to exclude using Text Search options of the QueryHandler.- Parameters:
qh- the QueryHandlerdataToKeepSet- the set of data to keepdataToExcludeSet- the set of data to excludeindexUsed- a flag to mark if data set is to keep or to exclude- Since:
- jcms-6.1.0
-
reduceDataSetWithTypes
protected boolean reduceDataSetWithTypes(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)
Fill the givenHashSetwithDatato keep and to exclude using Types options (types/typesOff) of the QueryHandler.- Parameters:
qh- the QueryHandlerdataToKeepSet- the set of data to keepdataToExcludeSet- the set of data to excludeindexUsed- a flag to mark if data set is to keep or to exclude- Returns:
- true if the reduction using dataToKeepSet was performed, false otherwise.
-
reduceDataSetWithCategories
protected void reduceDataSetWithCategories(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)
Fill the givenHashSetwithDatato keep and to exclude using Categories options (cids/cidsOff) of the QueryHandler.- Parameters:
qh- the QueryHandlerdataToKeepSet- the set of data to keepdataToExcludeSet- the set of data to excludeindexUsed- a flag to mark if data set is to keep or to exclude
-
reduceDataSetWithMembers
protected void reduceDataSetWithMembers(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)
Fill the givenHashSetwithDatato keep and to exclude using Members options (mids/midsOff) of the QueryHandler.- Parameters:
qh- the QueryHandlerdataToKeepSet- the set of data to keepdataToExcludeSet- the set of data to excludeindexUsed- a flag to mark if data set is to keep or to exclude
-
reduceDataSetWithPortalElements
protected void reduceDataSetWithPortalElements(QueryHandler qh, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)
Fill the givenHashSetwithDatato keep and to exclude using PortalElement options (mids/midsOff) of the QueryHandler.- Parameters:
qh- the QueryHandlerdataToKeepSet- the set of data to keepdataToExcludeSet- the set of data to excludeindexUsed- a flag to mark if data set is to keep or to exclude
-
reduceDataSetWithHistoryRefinement
protected QueryResultSet reduceDataSetWithHistoryRefinement(QueryHandler qh, java.util.Set<? extends Publication> proposedDataSet, javax.servlet.http.HttpServletRequest request, java.util.HashSet<Publication> dataToKeepSet, java.util.HashSet<Publication> dataToExcludeSet, boolean[] indexUsed)
Fill the givenHashSetwithDatato keep and to exclude using query History (hist) of the QueryHandler.- Parameters:
qh- the QueryHandlerproposedDataSet- the proposed set of data to seach on.request- the requestdataToKeepSet- the set of data to keepdataToExcludeSet- the set of data to excludeindexUsed- a flag to mark if data set is to keep or to exclude- Returns:
- the QueryResultSet which was used for history refinement if any, or null otherwise
-
replaceFileDocByReferrers
protected void replaceFileDocByReferrers(QueryHandler qh, QueryResultSet resultSet, DataSelector replacedFileDocSelector)
This method replace any FileDocuments inside the givenQueryResultSetby their referrer (see getLinkIndexedDataSet(Publication.class)).It keeps score of original FileDocument (except if the publication was already part of the result.
It removes FileDocument from the resultSet and add other Publications (if they match authorization and query params).- Parameters:
qh- the QueryHandlerresultSet- the QueryResultSetreplacedFileDocSelector- a DataSelector- Since:
- jcms-4.1
-
searchFulltext
protected boolean searchFulltext(QueryHandler qh, java.util.HashSet<Publication> dataSet, QueryResultSet resultSet)
Perform a full-text search. It fills the givenresultSetwith results from the dataSet matching critera of qh.- Parameters:
qh- the QueryhandlerdataSet- aHashSetcontaining all the publication to search.resultSet- aQueryResultSetin which to put all the results.- Returns:
- true if the search has been performed.
- Since:
- jcms-5.0.0
-
matchLucenePublicationRefinement
public static boolean matchLucenePublicationRefinement(QueryHandler qh, Publication pub)
-
callFilterDBResult
public boolean callFilterDBResult(PublicationCriteria pubCriteria)
-
filterCriteria
public void filterCriteria(PublicationCriteria pubCriteria, org.hibernate.Criteria criteria)
Invoke all QueryFilter to allow them to modify the Hibernate Criteria used for a DB Query.- Parameters:
pubCriteria- the criteria of the query.criteria- the hibernate criteria computed by JPlatform core- Since:
- jcms-10.0.7 / JCMS-9561
-
filterDBResult
public boolean filterDBResult(Publication pub, java.util.Map context)
-
getRelatedPublicationSet
public java.util.SortedSet<? extends Publication> getRelatedPublicationSet(Publication pub, Member mbr, java.lang.Class... classes)
Returns a set of publications related to the given publication and the given types for the given member.- Parameters:
pub- the publication to search related publications.mbr- the logged memberclasses- an array of publication classes- Returns:
- a set of publications related to the given publication and the given types for the given member.
- Since:
- jcms-10.0.4
-
getRelatedPublicationSet
public java.util.SortedSet<? extends Publication> getRelatedPublicationSet(Publication pub, QueryHandler qh)
Returns a set of publications related to the given publication and the given query handler.- Parameters:
pub- the publication to search related publications.qh- the QueryHandler- Returns:
- a set of publications related to the given publication and the given query handler.
- Since:
- jcms-10.0.0
-
getRelatedPublicationSet
public java.util.SortedSet<? extends Publication> getRelatedPublicationSet(java.util.Set<Category> catSet, QueryHandler qh, java.util.Comparator<? extends Publication> superComparator)
Returns a set of publications related to the given category set and the given query handler.- Parameters:
catSet- the set of category to search related publications.qh- the QueryHandlersuperComparator- if not null use this comparator in case of equality on the common category count.- Returns:
- a set of publications related to the given category set and the given query handler.
- Since:
- jcms-10.0.0
-
-