org.opencms.file.collectors
Class CmsCategoryResourceCollector

java.lang.Object
  extended by org.opencms.file.collectors.A_CmsResourceCollector
      extended by org.opencms.file.collectors.CmsCategoryResourceCollector
All Implemented Interfaces:
java.lang.Comparable, I_CmsResourceCollector

public class CmsCategoryResourceCollector
extends A_CmsResourceCollector

A collector to fetch XML contents in a folder or the current site filtered by one or more given category types.

The return list will also be filtered by given key value pairs which are given as a collector parameter.

Usage: <cms:contentload collector="allKeyValuePairFiltered" param="resource=[filename]|resourceType=[resource type]|categoryTypes=[category1,category2,...]|subTree=[boolean]|sortBy=[category|date]|sortAsc=[boolean]">

Since:
7.0.0
Version:
$Revision: 1.9 $
Author:
Raphael Schnuck

Field Summary
static java.util.Comparator COMPARE_DATE_RELEASED_DESC
          Compares the release date of resources in descending order.
protected static org.apache.commons.logging.Log LOG
          The log object for this class.
 
Fields inherited from class org.opencms.file.collectors.A_CmsResourceCollector
m_order, SEPARATOR_TEMPLATEFILE
 
Constructor Summary
CmsCategoryResourceCollector()
           
 
Method Summary
protected  java.util.List allKeyValuePairFiltered(CmsObject cms, java.lang.String param)
          Collects all resources for the given categories filtered and sorted by the given collector parameter.
 java.util.List getCollectorNames()
          Returns a list of all collector names (Strings) this collector implementation supports.
 java.lang.String getCreateLink(CmsObject cms, java.lang.String collectorName, java.lang.String param)
          Returns the link that must be executed when a user clicks on the direct edit "new" button on a list created by the named collector.
 java.lang.String getCreateParam(CmsObject cms, java.lang.String collectorName, java.lang.String param)
          Returns the parameter that must be passed to the I_CmsResourceCollector.getCreateLink(CmsObject, String, String) method.
 java.util.List getResults(CmsObject cms, java.lang.String collectorName, java.lang.String param)
          Returns a list of CmsResource Objects that are gathered in the VFS using the named collector.
 
Methods inherited from class org.opencms.file.collectors.A_CmsResourceCollector
checkParams, compareTo, equals, getCreateInFolder, getCreateInFolder, getCreateLink, getCreateParam, getDefaultCollectorName, getDefaultCollectorParam, getOrder, getResults, hashCode, setDefaultCollectorName, setDefaultCollectorParam, setOrder, shrinkToFit
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMPARE_DATE_RELEASED_DESC

public static final java.util.Comparator COMPARE_DATE_RELEASED_DESC
Compares the release date of resources in descending order.


LOG

protected static final org.apache.commons.logging.Log LOG
The log object for this class.

Constructor Detail

CmsCategoryResourceCollector

public CmsCategoryResourceCollector()
Method Detail

getCollectorNames

public java.util.List getCollectorNames()
Description copied from interface: I_CmsResourceCollector
Returns a list of all collector names (Strings) this collector implementation supports.

Returns:
a list of all collector names this collector implementation supports
See Also:
I_CmsResourceCollector.getCollectorNames()

getCreateLink

public java.lang.String getCreateLink(CmsObject cms,
                                      java.lang.String collectorName,
                                      java.lang.String param)
                               throws CmsException,
                                      CmsDataAccessException
Description copied from interface: I_CmsResourceCollector
Returns the link that must be executed when a user clicks on the direct edit "new" button on a list created by the named collector.

If this method returns null, it indicated that the selected collector implementation does not support a "create link", and so no "new" button will should shown on lists generated with this collector.

Parameters:
cms - the current CmsObject
collectorName - the name of the collector to use
param - an optional collector parameter
Returns:
the link to execute after a "new" button was clicked
Throws:
CmsException - if something goes wrong
CmsDataAccessException - if the parameter attribute of the corresponding collector tag is invalid
See Also:
I_CmsResourceCollector.getCreateLink(org.opencms.file.CmsObject, java.lang.String, java.lang.String)

getCreateParam

public java.lang.String getCreateParam(CmsObject cms,
                                       java.lang.String collectorName,
                                       java.lang.String param)
                                throws CmsDataAccessException
Description copied from interface: I_CmsResourceCollector
Returns the parameter that must be passed to the I_CmsResourceCollector.getCreateLink(CmsObject, String, String) method.

If this method returns null, it indicates that the selected collector implementation does not support a "create link", and so no "new" button will should shown on lists generated with this collector.

Parameters:
cms - the current CmsObject
collectorName - the name of the collector to use
param - an optional collector parameter from the current page context
Returns:
the parameter that will be passed to the I_CmsResourceCollector.getCreateLink(CmsObject, String, String) method, or null
Throws:
CmsDataAccessException - if the parameter attribute of the corresponding collector tag is invalid
See Also:
I_CmsResourceCollector.getCreateParam(org.opencms.file.CmsObject, java.lang.String, java.lang.String)

getResults

public java.util.List getResults(CmsObject cms,
                                 java.lang.String collectorName,
                                 java.lang.String param)
                          throws CmsDataAccessException,
                                 CmsException
Description copied from interface: I_CmsResourceCollector
Returns a list of CmsResource Objects that are gathered in the VFS using the named collector.

Parameters:
cms - the current CmsObject
collectorName - the name of the collector to use
param - an optional collector parameter
Returns:
a list of CmsXmlContent objects
Throws:
CmsDataAccessException - if the parameter attribute of the corresponding collector tag is invalid
CmsException - if something goes wrong
See Also:
I_CmsResourceCollector.getResults(org.opencms.file.CmsObject, java.lang.String, java.lang.String)

allKeyValuePairFiltered

protected java.util.List allKeyValuePairFiltered(CmsObject cms,
                                                 java.lang.String param)
                                          throws CmsException
Collects all resources for the given categories filtered and sorted by the given collector parameter.

Parameters:
cms - the current OpenCms user context
param - value parameter to filter the resources
Returns:
a list of resources filtered and sorted by the given collector parameter
Throws:
CmsException - if something goes wrong