org.opencms.file.types
Class CmsResourceTypePlain

java.lang.Object
  extended by org.opencms.file.types.A_CmsResourceType
      extended by org.opencms.file.types.CmsResourceTypePlain
All Implemented Interfaces:
I_CmsConfigurationParameterHandler, I_CmsResourceType

public class CmsResourceTypePlain
extends A_CmsResourceType

Resource type descriptor for the type "plain".

Since:
6.0.0
Version:
$Revision: 1.20 $
Author:
Alexander Kandzior

Field Summary
protected  CmsJspLoader m_jspLoader
          JSP Loader instance.
 
Fields inherited from class org.opencms.file.types.A_CmsResourceType
CONFIGURATION_INTERNAL, m_addititionalModuleResourceType, m_className, m_copyResources, m_defaultProperties, m_frozen, m_mappings, m_typeId, m_typeName, MACRO_RESOURCE_FOLDER_PATH, MACRO_RESOURCE_FOLDER_PATH_TOUCH, MACRO_RESOURCE_NAME, MACRO_RESOURCE_PARENT_PATH, MACRO_RESOURCE_ROOT_PATH, MACRO_RESOURCE_SITE_PATH
 
Fields inherited from interface org.opencms.file.types.I_CmsResourceType
ADD_MAPPING_METHOD, ADD_RESOURCE_TYPE_METHOD, CONFIGURATION_PROPERTY_CREATE, CONFIGURATION_RESOURCE_TYPE_ID, CONFIGURATION_RESOURCE_TYPE_NAME, PROPERTY_ON_RESOURCE, PROPERTY_ON_STRUCTURE
 
Fields inherited from interface org.opencms.configuration.I_CmsConfigurationParameterHandler
ADD_PARAMETER_METHOD, INIT_CONFIGURATION_METHOD
 
Constructor Summary
CmsResourceTypePlain()
          Default constructor, used to initialize member variables.
 
Method Summary
 void chtype(CmsObject cms, CmsSecurityManager securityManager, CmsResource resource, int type)
          Changes the resource type of a resource.
 void deleteResource(CmsObject cms, CmsSecurityManager securityManager, CmsResource resource, CmsResource.CmsResourceDeleteMode siblingMode)
          Deletes a resource given its name.
 java.lang.String getCachePropertyDefault()
          A plain resource might appear as a sub-element in a JSP, therefore it needs cache properties.
 int getLoaderId()
          Returns the loader type id of this resource type.
protected  java.util.Set getReferencingStrongLinks(CmsObject cms, CmsResource resource)
          Returns a set of root paths of files that are including the given resource using the 'link.strong' macro.
static int getStaticTypeId()
          Returns the static type id of this (default) resource type.
static java.lang.String getStaticTypeName()
          Returns the static type name of this (default) resource type.
 void initConfiguration(java.lang.String name, java.lang.String id, java.lang.String className)
          Special version of the configuration initialization used with resource types to set resource type, id and class name, required for the XML configuration.
 void initialize(CmsObject cms)
          Initializes this resource type.
 void moveResource(CmsObject cms, CmsSecurityManager securityManager, CmsResource resource, java.lang.String destination)
          Moves a resource to the given destination.
protected  void removeReferencingFromCache(java.util.Set references)
          Removes the referencing resources from the cache.
 void replaceResource(CmsObject cms, CmsSecurityManager securityManager, CmsResource resource, int type, byte[] content, java.util.List properties)
          Replaces the content, type and properties of a resource.
 void restoreResource(CmsObject cms, CmsSecurityManager securityManager, CmsResource resource, int version)
          Restores a resource in the current project with a version from the historical archive.
 void setDateExpired(CmsObject cms, CmsSecurityManager securityManager, CmsResource resource, long dateExpired, boolean recursive)
          Changes the "expire" date of a resource.
 void setDateLastModified(CmsObject cms, CmsSecurityManager securityManager, CmsResource resource, long dateLastModified, boolean recursive)
          Changes the "last modified" date of a resource.
 void setDateReleased(CmsObject cms, CmsSecurityManager securityManager, CmsResource resource, long dateReleased, boolean recursive)
          Changes the "release" date of a resource.
 void undoChanges(CmsObject cms, CmsSecurityManager securityManager, CmsResource resource, CmsResource.CmsResourceUndoMode mode)
          Undos all changes in the resource by restoring the version from the online project to the current offline project.
 CmsFile writeFile(CmsObject cms, CmsSecurityManager securityManager, CmsFile resource)
          Writes a resource, including it's content.
 
Methods inherited from class org.opencms.file.types.A_CmsResourceType
addConfigurationParameter, addCopyResource, addDefaultProperty, addMappingType, changeLock, chflags, copyResource, copyResourceToProject, createRelations, createResource, createSibling, equals, getClassName, getConfiguration, getConfiguredCopyResources, getConfiguredDefaultProperties, getConfiguredMappings, getMacroResolver, getResourceType, getTypeId, getTypeName, hashCode, importResource, initConfiguration, initConfiguration, isAdditionalModuleResourceType, isDirectEditable, isFolder, isIdentical, lockResource, processCopyResources, processDefaultProperties, removeResourceFromProject, restoreResourceBackup, setAdditionalModuleResourceType, toString, undelete, unlockResource, updateRelationForUndo, writePropertyObject, writePropertyObjects
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

m_jspLoader

protected CmsJspLoader m_jspLoader
JSP Loader instance.

Constructor Detail

CmsResourceTypePlain

public CmsResourceTypePlain()
Default constructor, used to initialize member variables.

Method Detail

getStaticTypeId

public static int getStaticTypeId()
Returns the static type id of this (default) resource type.

Returns:
the static type id of this (default) resource type

getStaticTypeName

public static java.lang.String getStaticTypeName()
Returns the static type name of this (default) resource type.

Returns:
the static type name of this (default) resource type

chtype

public void chtype(CmsObject cms,
                   CmsSecurityManager securityManager,
                   CmsResource resource,
                   int type)
            throws CmsException
Description copied from interface: I_CmsResourceType
Changes the resource type of a resource.

OpenCms handles resources according to the resource type, not the file suffix. This is e.g. why a JSP in OpenCms can have the suffix ".html" instead of ".jsp" only. Changing the resource type makes sense e.g. if you want to make a plain text file a JSP resource, or a binary file an image, etc.

Specified by:
chtype in interface I_CmsResourceType
Overrides:
chtype in class A_CmsResourceType
Parameters:
cms - the initialized CmsObject
securityManager - the initialized OpenCms security manager
resource - the resource to change the type for
type - the new resource type for this resource
Throws:
CmsException - if something goes wrong
See Also:
A_CmsResourceType.chtype(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsResource, int)

deleteResource

public void deleteResource(CmsObject cms,
                           CmsSecurityManager securityManager,
                           CmsResource resource,
                           CmsResource.CmsResourceDeleteMode siblingMode)
                    throws CmsException
Description copied from interface: I_CmsResourceType
Deletes a resource given its name.

The siblingMode parameter controls how to handle siblings during the delete operation.
Possible values for this parameter are:

Specified by:
deleteResource in interface I_CmsResourceType
Overrides:
deleteResource in class A_CmsResourceType
Parameters:
cms - the initialized CmsObject
securityManager - the initialized OpenCms security manager
resource - the resource to delete
siblingMode - indicates how to handle siblings of the deleted resource
Throws:
CmsException - if something goes wrong
See Also:
A_CmsResourceType.deleteResource(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsResource, org.opencms.file.CmsResource.CmsResourceDeleteMode)

getCachePropertyDefault

public java.lang.String getCachePropertyDefault()
A plain resource might appear as a sub-element in a JSP, therefore it needs cache properties.

Specified by:
getCachePropertyDefault in interface I_CmsResourceType
Overrides:
getCachePropertyDefault in class A_CmsResourceType
Returns:
the default for the cache property setting of this resource type
See Also:
I_CmsResourceType.getCachePropertyDefault()

getLoaderId

public int getLoaderId()
Description copied from interface: I_CmsResourceType
Returns the loader type id of this resource type.

Specified by:
getLoaderId in interface I_CmsResourceType
Specified by:
getLoaderId in class A_CmsResourceType
Returns:
the loader type id of this resource type
See Also:
I_CmsResourceType.getLoaderId()

initConfiguration

public void initConfiguration(java.lang.String name,
                              java.lang.String id,
                              java.lang.String className)
                       throws CmsConfigurationException
Description copied from interface: I_CmsResourceType
Special version of the configuration initialization used with resource types to set resource type, id and class name, required for the XML configuration.

Please note: Many resource types defined in the core have in fact a fixed resource type and a fixed id. Configurable name and id is used only for certain types.

The provided named class must implement this interface (I_CmsResourceType). Usually the provided class name should be the class name of the resource type instance, but this may be different in special cases or configuration errors. For example, if a module is imported that contains it's own resource type class files, the included class file are usually not be available until the server is restarted. If the named class given in the XML configuration (or module manifest.xml) is not available, or not implementing I_CmsResourceType, then CmsResourceTypeUnknown is used for the resource type instance.

Specified by:
initConfiguration in interface I_CmsResourceType
Overrides:
initConfiguration in class A_CmsResourceType
Parameters:
name - the resource type name
id - the resource type id
className - the class name of the resource type (read from the XML configuration)
Throws:
CmsConfigurationException - if the configuration is invalid
See Also:
A_CmsResourceType.initConfiguration(java.lang.String, java.lang.String, String)

initialize

public void initialize(CmsObject cms)
Description copied from interface: I_CmsResourceType
Initializes this resource type.

This method will be called once during the OpenCms initialization processs. The VFS will already be available at the time the method is called.

Specified by:
initialize in interface I_CmsResourceType
Overrides:
initialize in class A_CmsResourceType
Parameters:
cms - a OpenCms context initialized with "Admin" permissions
See Also:
A_CmsResourceType.initialize(org.opencms.file.CmsObject)

moveResource

public void moveResource(CmsObject cms,
                         CmsSecurityManager securityManager,
                         CmsResource resource,
                         java.lang.String destination)
                  throws CmsException,
                         CmsIllegalArgumentException
Description copied from interface: I_CmsResourceType
Moves a resource to the given destination.

A move operation in OpenCms is always a copy (as sibling) followed by a delete, this is a result of the online/offline structure of the OpenCms VFS. This way you can see the deleted files/folders in the offline project, and you will be unable to undelete them.

Specified by:
moveResource in interface I_CmsResourceType
Overrides:
moveResource in class A_CmsResourceType
Parameters:
cms - the current cms context
securityManager - the initialized OpenCms security manager
resource - the resource to move
destination - the destination resource name
Throws:
CmsException - if something goes wrong
CmsIllegalArgumentException - if the source argument is null or of length 0
See Also:
A_CmsResourceType.moveResource(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsResource, java.lang.String)

replaceResource

public void replaceResource(CmsObject cms,
                            CmsSecurityManager securityManager,
                            CmsResource resource,
                            int type,
                            byte[] content,
                            java.util.List properties)
                     throws CmsException
Description copied from interface: I_CmsResourceType
Replaces the content, type and properties of a resource.

Specified by:
replaceResource in interface I_CmsResourceType
Overrides:
replaceResource in class A_CmsResourceType
Parameters:
cms - the current cms context
securityManager - the initialized OpenCms security manager
resource - the name of the resource to replace
type - the new type of the resource
content - the new content of the resource
properties - the new properties of the resource
Throws:
CmsException - if something goes wrong
See Also:
A_CmsResourceType.replaceResource(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsResource, int, byte[], java.util.List)

restoreResource

public void restoreResource(CmsObject cms,
                            CmsSecurityManager securityManager,
                            CmsResource resource,
                            int version)
                     throws CmsException
Description copied from interface: I_CmsResourceType
Restores a resource in the current project with a version from the historical archive.

Specified by:
restoreResource in interface I_CmsResourceType
Overrides:
restoreResource in class A_CmsResourceType
Parameters:
cms - the current cms context
securityManager - the initialized OpenCms security manager
resource - the resource to restore from the archive
version - the version number of the resource to restore
Throws:
CmsException - if something goes wrong
See Also:
A_CmsResourceType.restoreResource(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsResource, int)

setDateExpired

public void setDateExpired(CmsObject cms,
                           CmsSecurityManager securityManager,
                           CmsResource resource,
                           long dateExpired,
                           boolean recursive)
                    throws CmsException
Description copied from interface: I_CmsResourceType
Changes the "expire" date of a resource.

Specified by:
setDateExpired in interface I_CmsResourceType
Overrides:
setDateExpired in class A_CmsResourceType
Parameters:
cms - the current cms context
securityManager - the initialized OpenCms security manager
resource - the resource to touch
dateExpired - the new expire date of the changed resource
recursive - if this operation is to be applied recursively to all resources in a folder
Throws:
CmsException - if something goes wrong
See Also:
A_CmsResourceType.setDateExpired(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsResource, long, boolean)

setDateLastModified

public void setDateLastModified(CmsObject cms,
                                CmsSecurityManager securityManager,
                                CmsResource resource,
                                long dateLastModified,
                                boolean recursive)
                         throws CmsException
Description copied from interface: I_CmsResourceType
Changes the "last modified" date of a resource.

Specified by:
setDateLastModified in interface I_CmsResourceType
Overrides:
setDateLastModified in class A_CmsResourceType
Parameters:
cms - the current cms context
securityManager - the initialized OpenCms security manager
resource - the resource to touch
dateLastModified - timestamp the new timestamp of the changed resource
recursive - if this operation is to be applied recursively to all resources in a folder
Throws:
CmsException - if something goes wrong
See Also:
A_CmsResourceType.setDateLastModified(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsResource, long, boolean)

setDateReleased

public void setDateReleased(CmsObject cms,
                            CmsSecurityManager securityManager,
                            CmsResource resource,
                            long dateReleased,
                            boolean recursive)
                     throws CmsException
Description copied from interface: I_CmsResourceType
Changes the "release" date of a resource.

Specified by:
setDateReleased in interface I_CmsResourceType
Overrides:
setDateReleased in class A_CmsResourceType
Parameters:
cms - the current cms context
securityManager - the initialized OpenCms security manager
resource - the resource to touch
dateReleased - the new release date of the changed resource
recursive - if this operation is to be applied recursively to all resources in a folder
Throws:
CmsException - if something goes wrong
See Also:
A_CmsResourceType.setDateReleased(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsResource, long, boolean)

undoChanges

public void undoChanges(CmsObject cms,
                        CmsSecurityManager securityManager,
                        CmsResource resource,
                        CmsResource.CmsResourceUndoMode mode)
                 throws CmsException
Description copied from interface: I_CmsResourceType
Undos all changes in the resource by restoring the version from the online project to the current offline project.

Specified by:
undoChanges in interface I_CmsResourceType
Overrides:
undoChanges in class A_CmsResourceType
Parameters:
cms - the current cms context
securityManager - the initialized OpenCms security manager
resource - the resource to undo the changes for
mode - the undo mode, one of the CmsResource.CmsResourceUndoMode#UNDO_XXX constants
Throws:
CmsException - if something goes wrong
See Also:
A_CmsResourceType.undoChanges(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsResource, org.opencms.file.CmsResource.CmsResourceUndoMode)

writeFile

public CmsFile writeFile(CmsObject cms,
                         CmsSecurityManager securityManager,
                         CmsFile resource)
                  throws CmsException
Description copied from interface: I_CmsResourceType
Writes a resource, including it's content.

Applies only to resources of type CmsFile that have a binary content attached.

Specified by:
writeFile in interface I_CmsResourceType
Overrides:
writeFile in class A_CmsResourceType
Parameters:
cms - the current cms context
securityManager - the initialized OpenCms security manager
resource - the resource to apply this operation to
Returns:
the written resource
Throws:
CmsException - if something goes wrong
See Also:
A_CmsResourceType.writeFile(org.opencms.file.CmsObject, org.opencms.db.CmsSecurityManager, org.opencms.file.CmsFile)

getReferencingStrongLinks

protected java.util.Set getReferencingStrongLinks(CmsObject cms,
                                                  CmsResource resource)
                                           throws CmsException
Returns a set of root paths of files that are including the given resource using the 'link.strong' macro.

Parameters:
cms - the current cms context
resource - the resource to check
Returns:
the set of referencing paths
Throws:
CmsException - if something goes wrong

removeReferencingFromCache

protected void removeReferencingFromCache(java.util.Set references)
Removes the referencing resources from the cache.

Parameters:
references - the references to remove