Interface I_CmsResourceWrapper
- All Known Implementing Classes:
A_CmsResourceExtensionWrapper
,A_CmsResourceWrapper
,CmsResourceExtensionWrapperJsp
,CmsResourceExtensionWrapperXmlContent
,CmsResourceExtensionWrapperXmlPage
,CmsResourceWrapperModules
,CmsResourceWrapperModulesNonLazy
,CmsResourceWrapperPreventCreateNameCI
,CmsResourceWrapperPreventCreateNameRegex
,CmsResourceWrapperPropertyFile
,CmsResourceWrapperReplaceDeleted
,CmsResourceWrapperSystemFolder
,CmsResourceWrapperXmlPage
CmsObjectWrapper
to create a different view to the
resources in the VFS.
It is possible to create "new" virtual resource in the view to the clients using the
CmsObjectWrapper
or to change the existing ones. For example adding the correct
file extension for resources, because it is not always given that resources of type jsp have
the extension ".jsp". A resource wrapper just could add this extension, so that clients can
handle that resource correctly.
Each method in the implementing classes first have to check in every method if it is
responsible for the action to execute, because the CmsObjectWrapper
iterates
through all configured resource wrappers and the first which feels responsible wins and the
others won't even called.
- Since:
- 6.2.4
-
Method Summary
Modifier and TypeMethodDescriptionaddResourcesToFolder
(CmsObject cms, String resourcename, CmsResourceFilter filter) Here it is possible to add additional (virtual) child resources to those already existing in the VFS.void
If there is a configuration string for the wrapper, this method will be called with the configuration string before it is used.boolean
copyResource
(CmsObject cms, String source, String destination, CmsResource.CmsResourceCopyMode siblingMode) Copies a resource.createResource
(CmsObject cms, String resourcename, int type, byte[] content, List<CmsProperty> properties) Creates a new resource of the given resource type with the provided content and properties.boolean
deleteResource
(CmsObject cms, String resourcename, CmsResource.CmsResourceDeleteMode siblingMode) Deletes a resource given its name.getLock
(CmsObject cms, CmsResource resource) Returns the lock for the resource.boolean
isWrappedResource
(CmsObject cms, CmsResource res) Is called to check if the given resource is handled by this wrapper.boolean
lockResource
(CmsObject cms, String resourcename, boolean temporary) Locks a resource.boolean
moveResource
(CmsObject cms, String source, String destination) Moves a resource to the given destination.readFile
(CmsObject cms, String resourcename, CmsResourceFilter filter) Reads a file resource (including it's binary content) from the VFS, using the specified resource filter.readResource
(CmsObject cms, String resourcename, CmsResourceFilter filter) Reads a resource from the VFS, using the specified resource filter.restoreLink
(CmsObject cms, String uri) Returns the link to a existing resource in the VFS for the uri.rewriteLink
(CmsObject cms, CmsResource res) Returns the link how it is for the resource after using this resource wrapper.boolean
unlockResource
(CmsObject cms, String resourcename) Unlocks a resource.wrapResource
(CmsObject cms, CmsResource resource) Changes the given resource based on the implementation of this wrapper.Writes a resource, including it's content.
-
Method Details
-
addResourcesToFolder
List<CmsResource> addResourcesToFolder(CmsObject cms, String resourcename, CmsResourceFilter filter) throws CmsException Here it is possible to add additional (virtual) child resources to those already existing in the VFS.- Parameters:
cms
- the current users OpenCms contextresourcename
- the full path of the resource where to add the child resources forfilter
- the resource filter to use- Returns:
- a list of all additionaly child
sCmsResource
- Throws:
CmsException
- if something goes wrong- See Also:
-
configure
If there is a configuration string for the wrapper, this method will be called with the configuration string before it is used.Otherwise, it will not be called.
- Parameters:
configuration
- the configuration string for the wrapper
-
copyResource
boolean copyResource(CmsObject cms, String source, String destination, CmsResource.CmsResourceCopyMode siblingMode) throws CmsException, CmsIllegalArgumentException Copies a resource.First should be a check if the source and/or the destination are handled by this resource wrapper.
It is possible that the path in the source or in the destination are virtual paths and so has to be translated into valid paths existing in the VFS to copy the resource.
- Parameters:
cms
- the initialized CmsObjectsource
- the name of the resource to copydestination
- the name of the copy destination with complete pathsiblingMode
- indicates how to handle siblings during copy- Returns:
- true if the copy action was handled by this resource wrapper otherwise false
- Throws:
CmsIllegalArgumentException
- if thedestination
argument is null or of length 0CmsException
- if something goes wrong- See Also:
-
createResource
CmsResource createResource(CmsObject cms, String resourcename, int type, byte[] content, List<CmsProperty> properties) throws CmsException, CmsIllegalArgumentException Creates a new resource of the given resource type with the provided content and properties.First should be a check if the resourcename is handled by this resource wrapper.
It is possible that the path in the resourcename is a virtual path and so has to be translated into a valid path existing in the VFS to create the resource.
- Parameters:
cms
- the initialized CmsObjectresourcename
- the name of the resource to create (full path)type
- the type of the resource to createcontent
- the content for the new resourceproperties
- the properties for the new resource- Returns:
- the created resource or null if not handled by this resource wrapper
- Throws:
CmsException
- if something goes wrongCmsIllegalArgumentException
- if thesource
argument is null or of length 0- See Also:
-
deleteResource
boolean deleteResource(CmsObject cms, String resourcename, CmsResource.CmsResourceDeleteMode siblingMode) throws CmsException Deletes a resource given its name.First should be a check if the resourcename is handled by this resource wrapper.
It is possible that the path in the resourcename is a virtual path and so has to be translated into a valid path existing in the VFS to delete the resource.
- Parameters:
cms
- the initialized CmsObjectresourcename
- the name of the resource to deletesiblingMode
- indicates how to handle siblings of the deleted resource- Returns:
- true if the delete action was handled by this resource wrapper otherwise false
- Throws:
CmsException
- if something goes wrong- See Also:
-
getLock
Returns the lock for the resource.First should be a check if the resource is handled by this resource wrapper.
It is possible that the path in the resource is a virtual path and so has to be translated into a valid path existing in the VFS to get the lock for the resource.
- Parameters:
cms
- the initialized CmsObjectresource
- the resource to check the lock for- Returns:
- the lock state of the resource or null if the action couldn't be handled by this resource wrapper
- Throws:
CmsException
- if something goes wrong- See Also:
-
isWrappedResource
Is called to check if the given resource is handled by this wrapper.- Parameters:
cms
- the initialized CmsObjectres
- the resource to check- Returns:
- true if the resource will be handled by the wrapper otherwise false
- See Also:
-
lockResource
Locks a resource.First should be a check if the resourcename is handled by this resource wrapper.
It is possible that the path in the resourcename is a virtual path and so has to be translated into a valid path existing in the VFS to lock the resource.
- Parameters:
cms
- the current users OpenCms contextresourcename
- the name of the resource to lock (full path)temporary
- true if the resource should only be locked temporarily- Returns:
- true if this request could be handled by this wrapper or false if not
- Throws:
CmsException
- if something goes wrong- See Also:
-
moveResource
boolean moveResource(CmsObject cms, String source, String destination) throws CmsException, CmsIllegalArgumentException Moves a resource to the given destination.First should be a check if the source and/or the destination are handled by this resource wrapper.
It is possible that the path in the source or in the destination are virtual paths and so has to be translated into valid paths existing in the VFS to move the resource.
- Parameters:
cms
- the current cms contextsource
- the name of the resource to movedestination
- the destination resource name- Returns:
- true if the move action was handled by this resource wrapper otherwise false
- Throws:
CmsException
- if something goes wrongCmsIllegalArgumentException
- if thesource
argument is null or of length 0- See Also:
-
readFile
Reads a file resource (including it's binary content) from the VFS, using the specified resource filter.First should be a check if the resourcename is handled by this resource wrapper.
It is possible that the path in the resourcename is a virtual path and so has to be translated into a valid path existing in the VFS to read the resource.
- Parameters:
cms
- the current users OpenCms contextresourcename
- the name of the resource to read (full path)filter
- the resource filter to use while reading- Returns:
- the file resource that was read or null if it could not be handled by this resource wrapper
- Throws:
CmsException
- if the file resource could not be read for any reason- See Also:
-
readResource
CmsResource readResource(CmsObject cms, String resourcename, CmsResourceFilter filter) throws CmsException Reads a resource from the VFS, using the specified resource filter.First should be a check if the resourcename is handled by this resource wrapper.
It is possible that the path in the resourcename is a virtual path and so has to be translated into a valid path existing in the VFS to read the resource.
- Parameters:
cms
- the current users OpenCms contextresourcename
- The name of the resource to read (full path)filter
- the resource filter to use while reading- Returns:
- the resource that was read or null if it could not be handled by this resource wrapper
- Throws:
CmsException
- if the resource could not be read for any reason- See Also:
-
restoreLink
Returns the link to a existing resource in the VFS for the uri.Turns the virtual path into a real path to a resource in the VFS.
- Parameters:
cms
- the initialized CmsObjecturi
- the (virtual) uri to be restored- Returns:
- the uri where to find the resource in the VFS or null if the wrapper is not responsible
- See Also:
-
rewriteLink
Returns the link how it is for the resource after using this resource wrapper.For example: in the VFS: "/sites/default/index.html" and this resource wrapper adds the extension "jsp" then link returned should be "/sites/default/index.html.jsp".
- Parameters:
cms
- the initialized CmsObjectres
- the resource where to rewrite the path- Returns:
- the rewritten path or null if the wrapper is not responsible
- See Also:
-
unlockResource
Unlocks a resource.First should be a check if the resourcename is handled by this resource wrapper.
It is possible that the path in the resourcename is a virtual path and so has to be translated into a valid path existing in the VFS to unlock the resource.
- Parameters:
cms
- the current users OpenCms contextresourcename
- the name of the resource to unlock (full path)- Returns:
- true if this request could be handled by this wrapper of false if not
- Throws:
CmsException
- if something goes wrong- See Also:
-
wrapResource
Changes the given resource based on the implementation of this wrapper.For example, some resource types like
CmsResourceTypeJsp
just get a.jsp
extension, while other types likeCmsResourceTypeXmlPage
are "exploded" into a folder / file structure.- Parameters:
cms
- the current users OpenCms contextresource
- the resource to wrap- Returns:
- a wrapped
CmsResource
object ornull
to not change the resource - See Also:
-
writeFile
Writes a resource, including it's content.First should be a check if the resource is handled by this resource wrapper.
It is possible that the path in the resource is a virtual path and so has to be translated into a valid path existing in the VFS to write the resource.
- Parameters:
cms
- the current cms contextresource
- the resource to apply this operation to- Returns:
- the written resource or null if the action could not be handled by this resource wrapper
- Throws:
CmsException
- if something goes wrong- See Also:
-