org.opencms.file.wrapper
Class A_CmsResourceWrapper

java.lang.Object
  extended by org.opencms.file.wrapper.A_CmsResourceWrapper
All Implemented Interfaces:
I_CmsResourceWrapper
Direct Known Subclasses:
A_CmsResourceExtensionWrapper, CmsResourceWrapperPropertyFile, CmsResourceWrapperSystemFolder, CmsResourceWrapperXmlPage

public abstract class A_CmsResourceWrapper
extends java.lang.Object
implements I_CmsResourceWrapper

Default abstract implementation of the interface I_CmsResourceWrapper.

This class returns for all methods that the action is not handled by the resource wrapper.

Subclasses can only implement those methods where they want to change the default behaviour.

Since:
6.5.6
Version:
$Revision: 1.9 $
Author:
Peter Bonrad

Field Summary
protected  boolean m_isWrappedResource
          Is handled by this resource wrapper.
 
Constructor Summary
A_CmsResourceWrapper()
           
 
Method Summary
 java.util.List addResourcesToFolder(CmsObject cms, java.lang.String resourcename, CmsResourceFilter filter)
          Here it is possible to add additional (virtual) child resources to those already existing in the VFS.
 boolean copyResource(CmsObject cms, java.lang.String source, java.lang.String destination, CmsResource.CmsResourceCopyMode siblingMode)
          Copies a resource.
 CmsResource createResource(CmsObject cms, java.lang.String resourcename, int type, byte[] content, java.util.List properties)
          Creates a new resource of the given resource type with the provided content and properties.
 boolean deleteResource(CmsObject cms, java.lang.String resourcename, CmsResource.CmsResourceDeleteMode siblingMode)
          Deletes a resource given its name.
 CmsLock getLock(CmsObject cms, CmsResource resource)
          Returns the lock for the resource.
 boolean lockResource(CmsObject cms, java.lang.String resourcename)
          Locks a resource.
 boolean moveResource(CmsObject cms, java.lang.String source, java.lang.String destination)
          Moves a resource to the given destination.
 CmsFile readFile(CmsObject cms, java.lang.String resourcename, CmsResourceFilter filter)
          Reads a file resource (including it's binary content) from the VFS, using the specified resource filter.
 CmsResource readResource(CmsObject cms, java.lang.String resourcename, CmsResourceFilter filter)
          Reads a resource from the VFS, using the specified resource filter.
 java.lang.String restoreLink(CmsObject cms, java.lang.String uri)
          Returns the link to a existing resource in the VFS for the uri.
 java.lang.String rewriteLink(CmsObject cms, CmsResource res)
          Returns the link how it is for the resource after using this resource wrapper.
 boolean unlockResource(CmsObject cms, java.lang.String resourcename)
          Unlocks a resource.
 CmsResource wrapResource(CmsObject cms, CmsResource resource)
          Changes the given resource based on the implementation of this wrapper.
 CmsFile writeFile(CmsObject cms, CmsFile resource)
          Writes a resource, including it's content.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.opencms.file.wrapper.I_CmsResourceWrapper
isWrappedResource
 

Field Detail

m_isWrappedResource

protected boolean m_isWrappedResource
Is handled by this resource wrapper.

Constructor Detail

A_CmsResourceWrapper

public A_CmsResourceWrapper()
Method Detail

addResourcesToFolder

public java.util.List addResourcesToFolder(CmsObject cms,
                                           java.lang.String resourcename,
                                           CmsResourceFilter filter)
                                    throws CmsException
Description copied from interface: I_CmsResourceWrapper
Here it is possible to add additional (virtual) child resources to those already existing in the VFS.

Specified by:
addResourcesToFolder in interface I_CmsResourceWrapper
Parameters:
cms - the current users OpenCms context
resourcename - the full path of the resource where to add the child resources for
filter - the resource filter to use
Returns:
a list of all additionaly child CmsResources
Throws:
CmsException - if something goes wrong
See Also:
I_CmsResourceWrapper.addResourcesToFolder(org.opencms.file.CmsObject, java.lang.String, org.opencms.file.CmsResourceFilter)

copyResource

public boolean copyResource(CmsObject cms,
                            java.lang.String source,
                            java.lang.String destination,
                            CmsResource.CmsResourceCopyMode siblingMode)
                     throws CmsException,
                            CmsIllegalArgumentException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
copyResource in interface I_CmsResourceWrapper
Parameters:
cms - the initialized CmsObject
source - the name of the resource to copy
destination - the name of the copy destination with complete path
siblingMode - indicates how to handle siblings during copy
Returns:
true if the copy action was handled by this resource wrapper otherwise false
Throws:
CmsException - if something goes wrong
CmsIllegalArgumentException - if the destination argument is null or of length 0
See Also:
I_CmsResourceWrapper.copyResource(org.opencms.file.CmsObject, java.lang.String, java.lang.String, org.opencms.file.CmsResource.CmsResourceCopyMode)

createResource

public CmsResource createResource(CmsObject cms,
                                  java.lang.String resourcename,
                                  int type,
                                  byte[] content,
                                  java.util.List properties)
                           throws CmsException,
                                  CmsIllegalArgumentException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
createResource in interface I_CmsResourceWrapper
Parameters:
cms - the initialized CmsObject
resourcename - the name of the resource to create (full path)
type - the type of the resource to create
content - the content for the new resource
properties - the properties for the new resource
Returns:
the created resource or null if not handled by this resource wrapper
Throws:
CmsException - if something goes wrong
CmsIllegalArgumentException - if the source argument is null or of length 0
See Also:
I_CmsResourceWrapper.createResource(org.opencms.file.CmsObject, java.lang.String, int, byte[], java.util.List)

deleteResource

public boolean deleteResource(CmsObject cms,
                              java.lang.String resourcename,
                              CmsResource.CmsResourceDeleteMode siblingMode)
                       throws CmsException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
deleteResource in interface I_CmsResourceWrapper
Parameters:
cms - the initialized CmsObject
resourcename - the name of the resource to delete
siblingMode - 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:
I_CmsResourceWrapper.deleteResource(org.opencms.file.CmsObject, java.lang.String, org.opencms.file.CmsResource.CmsResourceDeleteMode)

getLock

public CmsLock getLock(CmsObject cms,
                       CmsResource resource)
                throws CmsException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
getLock in interface I_CmsResourceWrapper
Parameters:
cms - the initialized CmsObject
resource - 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:
I_CmsResourceWrapper.getLock(org.opencms.file.CmsObject, org.opencms.file.CmsResource)

lockResource

public boolean lockResource(CmsObject cms,
                            java.lang.String resourcename)
                     throws CmsException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
lockResource in interface I_CmsResourceWrapper
Parameters:
cms - the current users OpenCms context
resourcename - the name of the resource to lock (full path)
Returns:
true if this request could be handled by this wrapper or false if not
Throws:
CmsException - if something goes wrong
See Also:
I_CmsResourceWrapper.lockResource(CmsObject, String)

moveResource

public boolean moveResource(CmsObject cms,
                            java.lang.String source,
                            java.lang.String destination)
                     throws CmsException,
                            CmsIllegalArgumentException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
moveResource in interface I_CmsResourceWrapper
Parameters:
cms - the current cms context
source - the name of the resource to move
destination - the destination resource name
Returns:
true if the move action was handled by this resource wrapper otherwise false
Throws:
CmsException - if something goes wrong
CmsIllegalArgumentException - if the source argument is null or of length 0
See Also:
I_CmsResourceWrapper.moveResource(org.opencms.file.CmsObject, java.lang.String, java.lang.String)

readFile

public CmsFile readFile(CmsObject cms,
                        java.lang.String resourcename,
                        CmsResourceFilter filter)
                 throws CmsException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
readFile in interface I_CmsResourceWrapper
Parameters:
cms - the current users OpenCms context
resourcename - 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:
I_CmsResourceWrapper.readFile(org.opencms.file.CmsObject, java.lang.String, org.opencms.file.CmsResourceFilter)

readResource

public CmsResource readResource(CmsObject cms,
                                java.lang.String resourcename,
                                CmsResourceFilter filter)
                         throws CmsException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
readResource in interface I_CmsResourceWrapper
Parameters:
cms - the current users OpenCms context
resourcename - 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:
I_CmsResourceWrapper.readResource(org.opencms.file.CmsObject, java.lang.String, org.opencms.file.CmsResourceFilter)

restoreLink

public java.lang.String restoreLink(CmsObject cms,
                                    java.lang.String uri)
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
restoreLink in interface I_CmsResourceWrapper
Parameters:
cms - the initialized CmsObject
uri - 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:
I_CmsResourceWrapper.restoreLink(org.opencms.file.CmsObject, java.lang.String)

rewriteLink

public java.lang.String rewriteLink(CmsObject cms,
                                    CmsResource res)
Description copied from interface: I_CmsResourceWrapper
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".

Specified by:
rewriteLink in interface I_CmsResourceWrapper
Parameters:
cms - the initialized CmsObject
res - the resource where to rewrite the path
Returns:
the rewritten path or null if the wrapper is not responsible
See Also:
I_CmsResourceWrapper.rewriteLink(CmsObject, CmsResource)

unlockResource

public boolean unlockResource(CmsObject cms,
                              java.lang.String resourcename)
                       throws CmsException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
unlockResource in interface I_CmsResourceWrapper
Parameters:
cms - the current users OpenCms context
resourcename - 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:
I_CmsResourceWrapper.unlockResource(CmsObject, String)

wrapResource

public CmsResource wrapResource(CmsObject cms,
                                CmsResource resource)
Description copied from interface: I_CmsResourceWrapper
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 like CmsResourceTypeXmlPage are "exploded" into a folder / file structure.

Specified by:
wrapResource in interface I_CmsResourceWrapper
Parameters:
cms - the current users OpenCms context
resource - the resource to wrap
Returns:
a wrapped CmsResource object or null to not change the resource
See Also:
I_CmsResourceWrapper.wrapResource(org.opencms.file.CmsObject, org.opencms.file.CmsResource)

writeFile

public CmsFile writeFile(CmsObject cms,
                         CmsFile resource)
                  throws CmsException
Description copied from interface: I_CmsResourceWrapper
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.

Specified by:
writeFile in interface I_CmsResourceWrapper
Parameters:
cms - the current cms context
resource - 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:
I_CmsResourceWrapper.writeFile(org.opencms.file.CmsObject, org.opencms.file.CmsFile)