Class CmsResourceManager
- Since:
- 6.0.0
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Bean containing a template resource and the name of the template. -
Field Summary
-
Constructor Summary
ConstructorDescriptionCreates a new instance for the resource manager, will be called by the VFS configuration manager. -
Method Summary
Modifier and TypeMethodDescriptionaddContentCollector
(String className, String order) Adds a given content collector class to the type manager.addHtmlConverter
(String name, String className) Adds a new HTML converter class to internal list of loaded converter classes.void
addLoader
(I_CmsResourceLoader loader) Adds a new loader to the internal list of loaded loaders.addMimeType
(String extension, String type) Adds a new MIME type from the XML configuration to the internal list of MIME types.addRelationType
(String name, String type) Adds a new relation type from the XML configuration to the list of user defined relation types.void
addResourceType
(I_CmsResourceType resourceType) Adds a new resource type from the XML configuration to the internal list of loaded resource types.Gets the map of forbidden contexts for resource types.getContentCollector
(String collectorName) Returns the configured content collector with the given name, ornull
if no collector with this name is configured.getDefaultTypeForName
(String resourcename) Returns the default resource type for the given resource name, using the configured resource type file extensions.Returns the file extensions (suffixes) mappings to resource types.Returns the file translator.Returns the folder translator.getHtmlConverter
(String name) Returns the matching HTML converter class name for the specified option name.Returns an unmodifiable List of the configuredCmsHtmlConverterOption
objects.getLoader
(int id) Returns the loader class instance for the given loader id.getLoader
(CmsResource resource) Returns the loader class instance for a given resource.Returns the (unmodifiable array) list with all initialized resource loaders.getMimeType
(String filename, String encoding) Returns the MIME type for a specified file name.getMimeType
(String filename, String encoding, String defaultMimeType) Returns the MIME type for a specified file name.Returns an unmodifiable List of the configuredCmsMimeType
objects.Returns the name generator for XML content file names.Returns an (unmodifiable) list of class names of all currently registered content collectors (I_CmsResourceCollector
objects).Returns an unmodifiable List of the configuredCmsRelationType
objects.getResourceType
(int typeId) Returns the initialized resource type instance for the given id.getResourceType
(String typeName) Returns the initialized resource type instance for the given resource type name.getResourceType
(CmsResource resource) Convenience method to get the initialized resource type instance for the given resource, with a fall back to special "unknown" resource types in case the resource type is not configured.Returns the (unmodifiable) list with all initialized resource types.Returns the (unmodifiable) list with all initialized resource types including unknown types.The configured default type for files when the resource type is missing.The configured default type for folders when the resource type is missing.getTemplateLoaderFacade
(CmsObject cms, javax.servlet.http.HttpServletRequest request, CmsResource resource, String templateProperty) Returns a template loader facade for the given file.getTemplateLoaderFacade
(CmsObject cms, CmsResource resource, String templateProperty) Returns a template loader facade for the given file.Returns the XSD translator.boolean
hasResourceType
(int typeId) Deprecated.boolean
hasResourceType
(String typeName) Checks if an initialized resource type instance for the given resource type name is available.boolean
Checks if an initialized resource type instance equal to the given resource type is available.void
void
initialize
(CmsObject cms) Initializes all additional resource types stored in the modules.void
loadResource
(CmsObject cms, CmsResource resource, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) Loads the requested resource and writes the contents to the response stream.boolean
matchResourceType
(String name, int id) Checks if there is a resource type with a given name whose id matches the given id.void
setNameGenerator
(I_CmsFileNameGenerator nameGenerator) Configures the URL name generator for XML contents.void
setTranslators
(CmsResourceTranslator folderTranslator, CmsResourceTranslator fileTranslator, CmsResourceTranslator xsdTranslator) Sets the folder, the file and the XSD translator.void
shutDown()
Shuts down this resource manage instance.
-
Field Details
-
DEFAULT_TEMPLATE
The path to the default template.- See Also:
-
MIMETYPE_HTML
The MIME type"text/html"
.- See Also:
-
MIMETYPE_TEXT
The MIME type"text/plain"
.- See Also:
-
-
Constructor Details
-
CmsResourceManager
public CmsResourceManager()Creates a new instance for the resource manager, will be called by the VFS configuration manager.
-
-
Method Details
-
addContentCollector
public I_CmsResourceCollector addContentCollector(String className, String order) throws CmsConfigurationException Adds a given content collector class to the type manager.- Parameters:
className
- the name of the class to addorder
- the order number for this collector- Returns:
- the created content collector instance
- Throws:
CmsConfigurationException
- in case the collector could not be properly initialized
-
addHtmlConverter
public I_CmsHtmlConverter addHtmlConverter(String name, String className) throws CmsConfigurationException Adds a new HTML converter class to internal list of loaded converter classes.- Parameters:
name
- the name of the option that should trigger the HTML converter classclassName
- the name of the class to add- Returns:
- the created HTML converter instance
- Throws:
CmsConfigurationException
- in case the HTML converter could not be properly initialized
-
addLoader
Adds a new loader to the internal list of loaded loaders.- Parameters:
loader
- the loader to add- Throws:
CmsConfigurationException
- in case the resource manager configuration is already initialized
-
addMimeType
Adds a new MIME type from the XML configuration to the internal list of MIME types.- Parameters:
extension
- the MIME type extensiontype
- the MIME type description- Returns:
- the created MIME type instance
- Throws:
CmsConfigurationException
- in case the resource manager configuration is already initialized
-
addRelationType
Adds a new relation type from the XML configuration to the list of user defined relation types.- Parameters:
name
- the name of the relation typetype
- the type of the relation type, weak or strong- Returns:
- the new created relation type instance
- Throws:
CmsConfigurationException
- in case the resource manager configuration is already initialized
-
addResourceType
Adds a new resource type from the XML configuration to the internal list of loaded resource types.Resource types can also be added from a module.
- Parameters:
resourceType
- the resource type to add- Throws:
CmsConfigurationException
- in case the resource manager configuration is already initialized
-
getAllowedContextMap
Gets the map of forbidden contexts for resource types.- Parameters:
cms
- the current CMS context- Returns:
- the map from resource types to the forbidden contexts
-
getContentCollector
Returns the configured content collector with the given name, ornull
if no collector with this name is configured.- Parameters:
collectorName
- the name of the collector to get- Returns:
- the configured content collector with the given name
-
getDefaultTypeForName
Returns the default resource type for the given resource name, using the configured resource type file extensions.In case the given name does not map to a configured resource type,
CmsResourceTypePlain
is returned.This is only required (and should not be used otherwise) when creating a new resource automatically during file upload or synchronization. Only in this case, the file type for the new resource is determined using this method. Otherwise the resource type is always stored as part of the resource, and is not related to the file name.
- Parameters:
resourcename
- the resource name to look up the resource type for- Returns:
- the default resource type for the given resource name
- Throws:
CmsException
- if something goes wrong
-
getExtensionMapping
Returns the file extensions (suffixes) mappings to resource types.- Returns:
- a Map with all known file extensions as keys and their resource types as values.
-
getFileTranslator
Returns the file translator.- Returns:
- the file translator
-
getFolderTranslator
Returns the folder translator.- Returns:
- the folder translator
-
getHtmlConverter
Returns the matching HTML converter class name for the specified option name.- Parameters:
name
- the name of the option that should trigger the HTML converter class- Returns:
- the matching HTML converter class name for the specified option name or
null
if no match is found
-
getHtmlConverters
Returns an unmodifiable List of the configuredCmsHtmlConverterOption
objects.- Returns:
- an unmodifiable List of the configured
CmsHtmlConverterOption
objects
-
getLoader
Returns the loader class instance for a given resource.- Parameters:
resource
- the resource- Returns:
- the appropriate loader class instance
- Throws:
CmsLoaderException
- if something goes wrong
-
getLoader
Returns the loader class instance for the given loader id.- Parameters:
id
- the id of the loader to return- Returns:
- the loader class instance for the given loader id
-
getLoaders
Returns the (unmodifiable array) list with all initialized resource loaders.- Returns:
- the (unmodifiable array) list with all initialized resource loaders
-
getMimeType
Returns the MIME type for a specified file name.If an encoding parameter that is not
null
is provided, the returned MIME type is extended with a; charset={encoding}
setting.If no MIME type for the given filename can be determined, the default
is used.MIMETYPE_HTML
- Parameters:
filename
- the file name to check the MIME type forencoding
- the default encoding (charset) in case of MIME types is of type "text"- Returns:
- the MIME type for a specified file
-
getMimeType
Returns the MIME type for a specified file name.If an encoding parameter that is not
null
is provided, the returned MIME type is extended with a; charset={encoding}
setting.If no MIME type for the given filename can be determined, the provided default is used.
- Parameters:
filename
- the file name to check the MIME type forencoding
- the default encoding (charset) in case of MIME types is of type "text"defaultMimeType
- the default MIME type to use if no matching type for the filename is found- Returns:
- the MIME type for a specified file
-
getMimeTypes
Returns an unmodifiable List of the configuredCmsMimeType
objects.- Returns:
- an unmodifiable List of the configured
CmsMimeType
objects
-
getNameGenerator
Returns the name generator for XML content file names.- Returns:
- the name generator for XML content file names.
-
getRegisteredContentCollectors
Returns an (unmodifiable) list of class names of all currently registered content collectors (I_CmsResourceCollector
objects).- Returns:
- an (unmodifiable) list of class names of all currently registered content collectors
(
I_CmsResourceCollector
objects)
-
getRelationTypes
Returns an unmodifiable List of the configuredCmsRelationType
objects.- Returns:
- an unmodifiable List of the configured
CmsRelationType
objects
-
getResourceType
Convenience method to get the initialized resource type instance for the given resource, with a fall back to special "unknown" resource types in case the resource type is not configured.- Parameters:
resource
- the resource to get the type for- Returns:
- the initialized resource type instance for the given resource
-
getResourceType
Returns the initialized resource type instance for the given id.- Parameters:
typeId
- the id of the resource type to get- Returns:
- the initialized resource type instance for the given id
- Throws:
CmsLoaderException
- if no resource type is available for the given id
-
getResourceType
Returns the initialized resource type instance for the given resource type name.- Parameters:
typeName
- the name of the resource type to get- Returns:
- the initialized resource type instance for the given name
- Throws:
CmsLoaderException
- if no resource type is available for the given name
-
getResourceTypes
Returns the (unmodifiable) list with all initialized resource types.- Returns:
- the (unmodifiable) list with all initialized resource types
-
getResourceTypesWithUnknown
Returns the (unmodifiable) list with all initialized resource types including unknown types.- Returns:
- the (unmodifiable) list with all initialized resource types including unknown types
-
getResTypeUnknownFile
The configured default type for files when the resource type is missing.- Returns:
- the configured default type for files
-
getResTypeUnknownFolder
The configured default type for folders when the resource type is missing.- Returns:
- The configured default type for folders
-
getTemplateLoaderFacade
public CmsTemplateLoaderFacade getTemplateLoaderFacade(CmsObject cms, CmsResource resource, String templateProperty) throws CmsException Returns a template loader facade for the given file.- Parameters:
cms
- the current OpenCms user contextresource
- the requested filetemplateProperty
- the property to read for the template- Returns:
- a resource loader facade for the given file
- Throws:
CmsException
- if something goes wrong
-
getTemplateLoaderFacade
public CmsTemplateLoaderFacade getTemplateLoaderFacade(CmsObject cms, javax.servlet.http.HttpServletRequest request, CmsResource resource, String templateProperty) throws CmsException Returns a template loader facade for the given file.- Parameters:
cms
- the current OpenCms user contextrequest
- the current requestresource
- the requested filetemplateProperty
- the property to read for the template- Returns:
- a resource loader facade for the given file
- Throws:
CmsException
- if something goes wrong
-
getXsdTranslator
Returns the XSD translator.- Returns:
- the XSD translator
-
hasResourceType
Checks if an initialized resource type instance equal to the given resource type is available.- Parameters:
type
- the resource type to check- Returns:
true
if such a resource type has been configured,false
otherwise- See Also:
-
hasResourceType
Deprecated.UsehasResourceType(I_CmsResourceType)
orhasResourceType(I_CmsResourceType)
instead. Resource types should always be referenced either by its type class (preferred) or by type name. Use of int based resource type references will be discontinued in a future OpenCms release.Checks if an initialized resource type instance for the given resource type is is available.- Parameters:
typeId
- the id of the resource type to check- Returns:
true
if such a resource type has been configured,false
otherwise- See Also:
-
hasResourceType
Checks if an initialized resource type instance for the given resource type name is available.- Parameters:
typeName
- the name of the resource type to check- Returns:
true
if such a resource type has been configured,false
otherwise- See Also:
-
initConfiguration
- Throws:
CmsConfigurationException
- in case of duplicate resource types in the configuration- See Also:
-
initialize
Initializes all additional resource types stored in the modules.- Parameters:
cms
- an initialized OpenCms user context with "module manager" role permissions- Throws:
CmsRoleViolationException
- in case the provided OpenCms user context did not have "module manager" role permissionsCmsConfigurationException
- in case of duplicate resource types in the configuration
-
loadResource
public void loadResource(CmsObject cms, CmsResource resource, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws javax.servlet.ServletException, IOException, CmsException Loads the requested resource and writes the contents to the response stream.- Parameters:
req
- the current HTTP requestres
- the current HTTP responsecms
- the current OpenCms user contextresource
- the requested resource- Throws:
javax.servlet.ServletException
- if something goes wrongIOException
- if something goes wrongCmsException
- if something goes wrong
-
matchResourceType
Checks if there is a resource type with a given name whose id matches the given id.This will return 'false' if no resource type with the given name is registered.
- Parameters:
name
- a resource type nameid
- a resource type id- Returns:
- true if a matching resource type with the given name and id was found
-
setNameGenerator
Configures the URL name generator for XML contents.- Parameters:
nameGenerator
- the configured name generator class- Throws:
CmsConfigurationException
- if something goes wrong
-
setTranslators
public void setTranslators(CmsResourceTranslator folderTranslator, CmsResourceTranslator fileTranslator, CmsResourceTranslator xsdTranslator) Sets the folder, the file and the XSD translator.- Parameters:
folderTranslator
- the folder translator to setfileTranslator
- the file translator to setxsdTranslator
- the XSD translator to set
-
shutDown
Shuts down this resource manage instance.- Throws:
Exception
- in case of errors during shutdown
-
hasResourceType(I_CmsResourceType)
orhasResourceType(I_CmsResourceType)
instead.