Class CmsResource
- java.lang.Object
-
- org.opencms.file.CmsResource
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.lang.Comparable<I_CmsResource>
,I_CmsResource
- Direct Known Subclasses:
CmsFile
,CmsFolder
,CmsJspResourceWrapper
,CmsSearchResource
public class CmsResource extends java.lang.Object implements I_CmsResource, java.lang.Cloneable, java.io.Serializable, java.lang.Comparable<I_CmsResource>
Base class for all OpenCms VFS resources like
orCmsFile
.CmsFolder
The OpenCms VFS resource is an important object for using the OpenCms API. Basically, all entries in the OpenCms VFS are considered to be "resources". Currently, only two types of resources exists:
- Files, which are represented by the subclass
CmsFile
. - Folders (also called Directories), which are represented by the subclass
CmsFolder
.
isFile()
orisFolder()
to learn what kind of subclass you have. Please note that this is usually not required, as the only real difference between aCmsFile
and aCmsResource
is that theCmsFile
also has the contents of the file, which you can obtain usingCmsFile.getContents()
. As long as you don't need the content, you can use theCmsResource
for everything else. This is even more true for aCmsFolder
, here you will need the subclass only in special cases, since the signature is identical toCmsResource
.A OpenCms VFS resource can have any number of properties attached, which are represented by a
CmsProperty
. To read the properties for a resource, useCmsObject.readPropertyObject(CmsResource, String, boolean)
or useCmsObject.readPropertyObjects(CmsResource, boolean)
to read all properties of the resource.- Since:
- 6.0.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CmsResource.CmsResourceCopyMode
Enumeration class for resource copy modes.static class
CmsResource.CmsResourceDeleteMode
Enumeration class for resource delete modes.static class
CmsResource.CmsResourceUndoMode
Enumeration class for resource undo changes modes.-
Nested classes/interfaces inherited from interface org.opencms.file.I_CmsResource
I_CmsResource.CmsResourceAttribute
-
-
Field Summary
Fields Modifier and Type Field Description static CmsResource.CmsResourceCopyMode
COPY_AS_NEW
Copy mode for copy resources as new resource.static CmsResource.CmsResourceCopyMode
COPY_AS_SIBLING
Copy mode for copy resources as sibling.static CmsResource.CmsResourceCopyMode
COPY_PRESERVE_SIBLING
Copy mode to preserve siblings during copy.static long
DATE_EXPIRED_DEFAULT
The default expiration date of a resource, which is: never expires.static long
DATE_RELEASED_DEFAULT
The default release date of a resource, which is: always released.static long
DATE_RELEASED_EXPIRED_IGNORE
A special date that indicates release and expiration information are to be ignored.static CmsResource.CmsResourceDeleteMode
DELETE_PRESERVE_SIBLINGS
Signals that siblings of this resource should not be deleted.static CmsResource.CmsResourceDeleteMode
DELETE_REMOVE_SIBLINGS
Signals that siblings of this resource should be deleted.static int
FLAG_INTERNAL
Flag to indicate that this is an internal resource, that can't be accessed directly.static int
FLAG_LABELED
The resource is linked inside a site folder specified in the OpenCms configuration.static int
FLAG_TEMPFILE
Flag to indicate that this is a temporary resource.protected long
m_dateContent
The date of the last modification of the content of this resource.protected int
m_length
The size of the content.static java.lang.String
NAME_CONSTRAINTS
The name constraints when generating new resources.static CmsResourceState
STATE_CHANGED
Indicates if a resource has been changed in the offline version when compared to the online version.static CmsResourceState
STATE_DELETED
Indicates if a resource has been deleted in the offline version when compared to the online version.static CmsResourceState
STATE_KEEP
Special state value that indicates the current state must be kept on a resource, this value must never be written to the database.static CmsResourceState
STATE_NEW
Indicates if a resource is new in the offline version when compared to the online version.static CmsResourceState
STATE_UNCHANGED
Indicates if a resource is unchanged in the offline version when compared to the online version.static java.lang.String
TEMP_FILE_PREFIX
Prefix for temporary files in the VFS.static long
TOUCH_DATE_UNCHANGED
Flag for leaving a date unchanged during a touch operation.static CmsResource.CmsResourceUndoMode
UNDO_CONTENT
Indicates that the undo method will only undo content changes.static CmsResource.CmsResourceUndoMode
UNDO_CONTENT_RECURSIVE
Indicates that the undo method will only recursive undo content changes.static CmsResource.CmsResourceUndoMode
UNDO_MOVE_CONTENT
Indicates that the undo method will undo move operations and content changes.static CmsResource.CmsResourceUndoMode
UNDO_MOVE_CONTENT_RECURSIVE
Indicates that the undo method will undo move operations and recursive content changes.static java.lang.String
VFS_FOLDER_SITES
The vfs path of the sites master folder.static java.lang.String
VFS_FOLDER_SYSTEM
The vfs path of the system folder.-
Fields inherited from interface org.opencms.file.I_CmsResource
COMPARE_DATE_LAST_MODIFIED, COMPARE_DATE_RELEASED, COMPARE_ROOT_PATH, COMPARE_ROOT_PATH_IGNORE_CASE, COMPARE_ROOT_PATH_IGNORE_CASE_FOLDERS_FIRST
-
-
Constructor Summary
Constructors Constructor Description CmsResource(CmsUUID structureId, CmsUUID resourceId, java.lang.String rootPath, int type, boolean isFolder, int flags, CmsUUID projectId, CmsResourceState state, long dateCreated, CmsUUID userCreated, long dateLastModified, CmsUUID userLastModified, long dateReleased, long dateExpired, int linkCount, int size, long dateContent, int version)
Creates a new CmsRecource object.CmsResource(CmsUUID structureId, CmsUUID resourceId, java.lang.String rootPath, I_CmsResourceType type, int flags, CmsUUID projectId, CmsResourceState state, long dateCreated, CmsUUID userCreated, long dateLastModified, CmsUUID userLastModified, long dateReleased, long dateExpired, int linkCount, int size, long dateContent, int version)
Creates a new CmsRecource object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
checkResourceName(java.lang.String name)
Checks if the provided resource name is a valid resource name, that is contains only valid characters.java.lang.Object
clone()
Returns a clone of this Objects instance.int
compareTo(I_CmsResource obj)
Uses the resource root path to compare two resources.boolean
equals(java.lang.Object obj)
Two resources are considered equal in case their structure id is equal.CmsResource
getCopy()
Creates a copy of this resource.long
getDateContent()
Returns the date of the last modification of the content of this resource.long
getDateCreated()
Returns the date of the creation of this resource.long
getDateExpired()
Returns the expiration date this resource.long
getDateLastModified()
Returns the date of the last modification of this resource.long
getDateReleased()
Returns the release date this resource.static java.lang.String
getExtension(java.lang.String resourceName)
Returns the resource name extension if present.int
getFlags()
Returns the flags of this resource.static java.lang.String
getFolderPath(java.lang.String resource)
Returns the folder path of the resource with the given name.int
getLength()
Returns the content length of this resource.java.lang.String
getName()
Returns the file name of this resource without parent folders, for exampleindex.html
.static java.lang.String
getName(java.lang.String resource)
Returns the name of a resource without the path information.static java.lang.String
getParentFolder(java.lang.String resource)
Returns the absolute parent folder name of a resource.static int
getPathLevel(java.lang.String resource)
Returns the directory level of a resource.static java.lang.String
getPathPart(java.lang.String resource, int level)
Returns the name of a parent folder of the given resource, that is either minus levels up from the current folder, or that is plus levels down from the root folder.CmsUUID
getProjectLastModified()
Returns the id of theCmsProject
where this resource has been last modified.CmsUUID
getResourceId()
Returns the id of the database content record of this resource.java.lang.String
getRootPath()
Returns the name of this resource with it's full path from the top level root folder, for example/sites/default/myfolder/index.html
.int
getSiblingCount()
Returns the number of siblings of this resource, also counting this resource.CmsResourceState
getState()
Returns the state of this resource.CmsUUID
getStructureId()
Returns the id of the database structure record of this resource.int
getTypeId()
Returns the resource type id for this resource.CmsUUID
getUserCreated()
Returns the user id of theCmsUser
who created this resource.CmsUUID
getUserLastModified()
Returns the id of theCmsUser
who made the last modification on this resource.int
getVersion()
Returns the current version number of this resource.int
hashCode()
boolean
isExpired(long time)
Returnstrue
if this resource is expired at the given time according to the information stored ingetDateExpired()
.boolean
isFile()
boolean
isFolder()
static boolean
isFolder(java.lang.String resource)
Returns true if the resource name certainly denotes a folder, that is ends with a "/".boolean
isInternal()
Returnstrue
if the resource is marked as internal.boolean
isInternalOrInInternalFolder()
Checks if either the resource's 'internal' flag is set, or if it's below a list of forbidden folders.boolean
isLabeled()
Returnstrue
if the resource has to be labeled with a special icon in the explorer view.boolean
isReleased(long time)
Returnstrue
if this resource is released at the given time according to the information stored ingetDateReleased()
.boolean
isReleasedAndNotExpired(long time)
Returnstrue
if this resource is valid at the given time according to the information stored ingetDateReleased()
andgetDateExpired()
.boolean
isTemporaryFile()
Returnstrue
if this resource is a temporary file.static boolean
isTemporaryFileName(java.lang.String path)
Returnstrue
if the given resource path points to a temporary file name.boolean
isTouched()
Returnstrue
if this resource was touched.void
setDateExpired(long time)
Sets the expiration date this resource.void
setDateLastModified(long time)
Sets the date of the last modification of this resource.void
setDateReleased(long time)
Sets the release date this resource.void
setFlags(int flags)
Sets the flags of this resource.void
setInternal(boolean internal)
Sets or clears the internal flag.void
setState(CmsResourceState state)
Sets the state of this resource.void
setType(int type)
Sets the type of this resource.void
setUserLastModified(CmsUUID resourceLastModifiedByUserId)
Sets the user id of the user who changed this resource.java.lang.String
toString()
-
-
-
Field Detail
-
COPY_AS_NEW
public static final CmsResource.CmsResourceCopyMode COPY_AS_NEW
Copy mode for copy resources as new resource.
-
COPY_AS_SIBLING
public static final CmsResource.CmsResourceCopyMode COPY_AS_SIBLING
Copy mode for copy resources as sibling.
-
COPY_PRESERVE_SIBLING
public static final CmsResource.CmsResourceCopyMode COPY_PRESERVE_SIBLING
Copy mode to preserve siblings during copy.
-
DATE_EXPIRED_DEFAULT
public static final long DATE_EXPIRED_DEFAULT
The default expiration date of a resource, which is: never expires.- See Also:
- Constant Field Values
-
DATE_RELEASED_DEFAULT
public static final long DATE_RELEASED_DEFAULT
The default release date of a resource, which is: always released.- See Also:
- Constant Field Values
-
DATE_RELEASED_EXPIRED_IGNORE
public static final long DATE_RELEASED_EXPIRED_IGNORE
A special date that indicates release and expiration information are to be ignored.- See Also:
- Constant Field Values
-
DELETE_PRESERVE_SIBLINGS
public static final CmsResource.CmsResourceDeleteMode DELETE_PRESERVE_SIBLINGS
Signals that siblings of this resource should not be deleted.
-
DELETE_REMOVE_SIBLINGS
public static final CmsResource.CmsResourceDeleteMode DELETE_REMOVE_SIBLINGS
Signals that siblings of this resource should be deleted.
-
FLAG_INTERNAL
public static final int FLAG_INTERNAL
Flag to indicate that this is an internal resource, that can't be accessed directly.- See Also:
- Constant Field Values
-
FLAG_LABELED
public static final int FLAG_LABELED
The resource is linked inside a site folder specified in the OpenCms configuration.- See Also:
- Constant Field Values
-
FLAG_TEMPFILE
public static final int FLAG_TEMPFILE
Flag to indicate that this is a temporary resource.- See Also:
- Constant Field Values
-
NAME_CONSTRAINTS
public static final java.lang.String NAME_CONSTRAINTS
The name constraints when generating new resources.- See Also:
- Constant Field Values
-
STATE_CHANGED
public static final CmsResourceState STATE_CHANGED
Indicates if a resource has been changed in the offline version when compared to the online version.
-
STATE_DELETED
public static final CmsResourceState STATE_DELETED
Indicates if a resource has been deleted in the offline version when compared to the online version.
-
STATE_KEEP
public static final CmsResourceState STATE_KEEP
Special state value that indicates the current state must be kept on a resource, this value must never be written to the database.
-
STATE_NEW
public static final CmsResourceState STATE_NEW
Indicates if a resource is new in the offline version when compared to the online version.
-
STATE_UNCHANGED
public static final CmsResourceState STATE_UNCHANGED
Indicates if a resource is unchanged in the offline version when compared to the online version.
-
TEMP_FILE_PREFIX
public static final java.lang.String TEMP_FILE_PREFIX
Prefix for temporary files in the VFS.
-
TOUCH_DATE_UNCHANGED
public static final long TOUCH_DATE_UNCHANGED
Flag for leaving a date unchanged during a touch operation.- See Also:
- Constant Field Values
-
UNDO_CONTENT
public static final CmsResource.CmsResourceUndoMode UNDO_CONTENT
Indicates that the undo method will only undo content changes.
-
UNDO_CONTENT_RECURSIVE
public static final CmsResource.CmsResourceUndoMode UNDO_CONTENT_RECURSIVE
Indicates that the undo method will only recursive undo content changes.
-
UNDO_MOVE_CONTENT
public static final CmsResource.CmsResourceUndoMode UNDO_MOVE_CONTENT
Indicates that the undo method will undo move operations and content changes.
-
UNDO_MOVE_CONTENT_RECURSIVE
public static final CmsResource.CmsResourceUndoMode UNDO_MOVE_CONTENT_RECURSIVE
Indicates that the undo method will undo move operations and recursive content changes.
-
VFS_FOLDER_SITES
public static final java.lang.String VFS_FOLDER_SITES
The vfs path of the sites master folder.- See Also:
- Constant Field Values
-
VFS_FOLDER_SYSTEM
public static final java.lang.String VFS_FOLDER_SYSTEM
The vfs path of the system folder.- See Also:
- Constant Field Values
-
m_dateContent
protected long m_dateContent
The date of the last modification of the content of this resource.
-
m_length
protected int m_length
The size of the content.
-
-
Constructor Detail
-
CmsResource
public CmsResource(CmsUUID structureId, CmsUUID resourceId, java.lang.String rootPath, I_CmsResourceType type, int flags, CmsUUID projectId, CmsResourceState state, long dateCreated, CmsUUID userCreated, long dateLastModified, CmsUUID userLastModified, long dateReleased, long dateExpired, int linkCount, int size, long dateContent, int version)
Creates a new CmsRecource object.- Parameters:
structureId
- the id of this resources structure recordresourceId
- the id of this resources resource recordrootPath
- the root path to the resourcetype
- the type of this resourceflags
- the flags of this resourceprojectId
- the project id this resource was last modified instate
- the state of this resourcedateCreated
- the creation date of this resourceuserCreated
- the id of the user who created this resourcedateLastModified
- the date of the last modification of this resourceuserLastModified
- the id of the user who did the last modification of this resourcedateReleased
- the release date of this resourcedateExpired
- the expiration date of this resourcelinkCount
- the count of all siblings of this resourcesize
- the size of the file content of this resourcedateContent
- the date of the last modification of the content of this resourceversion
- the version number of this resource
-
CmsResource
public CmsResource(CmsUUID structureId, CmsUUID resourceId, java.lang.String rootPath, int type, boolean isFolder, int flags, CmsUUID projectId, CmsResourceState state, long dateCreated, CmsUUID userCreated, long dateLastModified, CmsUUID userLastModified, long dateReleased, long dateExpired, int linkCount, int size, long dateContent, int version)
Creates a new CmsRecource object.- Parameters:
structureId
- the id of this resources structure recordresourceId
- the id of this resources resource recordrootPath
- the root path to the resourcetype
- the type of this resourceisFolder
- must be true if the resource is a folder, or false if it is a fileflags
- the flags of this resourceprojectId
- the project id this resource was last modified instate
- the state of this resourcedateCreated
- the creation date of this resourceuserCreated
- the id of the user who created this resourcedateLastModified
- the date of the last modification of this resourceuserLastModified
- the id of the user who did the last modification of this resourcedateReleased
- the release date of this resourcedateExpired
- the expiration date of this resourcelinkCount
- the count of all siblings of this resourcesize
- the size of the file content of this resourcedateContent
- the date of the last modification of the content of this resourceversion
- the version number of this resource
-
-
Method Detail
-
checkResourceName
public static void checkResourceName(java.lang.String name) throws CmsIllegalArgumentException
Checks if the provided resource name is a valid resource name, that is contains only valid characters.A resource name can only be composed of digits, standard ASCII letters and the symbols defined in
NAME_CONSTRAINTS
. A resource name must also not contain only dots.- Parameters:
name
- the resource name to check- Throws:
CmsIllegalArgumentException
- if the given resource name is not valid
-
getExtension
public static java.lang.String getExtension(java.lang.String resourceName)
Returns the resource name extension if present.The extension will be always lower case.
- Parameters:
resourceName
- the resource name or path- Returns:
- the extension or
null
if not available
-
getFolderPath
public static java.lang.String getFolderPath(java.lang.String resource)
Returns the folder path of the resource with the given name.If the resource name denotes a folder (that is ends with a "/"), the complete path of the folder is returned (not the parent folder path).
This is achieved by just cutting of everything behind the last occurrence of a "/" character in the String, no check if performed if the resource exists or not in the VFS, only resources that end with a "/" are considered to be folders. Example: Returns
/system/def/
for the resource/system/def/file.html
and/system/def/
for the (folder) resource/system/def/
.- Parameters:
resource
- the name of a resource- Returns:
- the folder of the given resource
-
getName
public static java.lang.String getName(java.lang.String resource)
Returns the name of a resource without the path information.The resource name of a file is the name of the file. The resource name of a folder is the folder name with trailing "/". The resource name of the root folder is
/
.Example:
/system/workplace/
has the resource nameworkplace/
.- Parameters:
resource
- the resource to get the name for- Returns:
- the name of a resource without the path information
-
getParentFolder
public static java.lang.String getParentFolder(java.lang.String resource)
Returns the absolute parent folder name of a resource.The parent resource of a file is the folder of the file. The parent resource of a folder is the parent folder. The parent resource of the root folder is
null
.Example:
/system/workplace/
has the parent/system/
.- Parameters:
resource
- the resource to find the parent folder for- Returns:
- the calculated parent absolute folder path, or
null
for the root folder
-
getPathLevel
public static int getPathLevel(java.lang.String resource)
Returns the directory level of a resource.The root folder "/" has level 0, a folder "/foo/" would have level 1, a folfer "/foo/bar/" level 2 etc.
- Parameters:
resource
- the resource to determine the directory level for- Returns:
- the directory level of a resource
-
getPathPart
public static java.lang.String getPathPart(java.lang.String resource, int level)
Returns the name of a parent folder of the given resource, that is either minus levels up from the current folder, or that is plus levels down from the root folder.- Parameters:
resource
- the name of a resourcelevel
- of levels to walk up or down- Returns:
- the name of a parent folder of the given resource
-
isFolder
public static boolean isFolder(java.lang.String resource)
Returns true if the resource name certainly denotes a folder, that is ends with a "/".- Parameters:
resource
- the resource to check- Returns:
- true if the resource name certainly denotes a folder, that is ends with a "/"
-
isTemporaryFileName
public static boolean isTemporaryFileName(java.lang.String path)
Returnstrue
if the given resource path points to a temporary file name.A resource name is considered a temporary file name if the name of the file (without parent folders) starts with the prefix char
'~'
(tilde). Existing parent folder elements are removed from the path before the file name is checked.- Parameters:
path
- the resource path to check- Returns:
true
if the given resource name is a temporary file name- See Also:
isTemporaryFile()
-
clone
public java.lang.Object clone()
Returns a clone of this Objects instance.- Overrides:
clone
in classjava.lang.Object
- Returns:
- a clone of this instance
-
compareTo
public int compareTo(I_CmsResource obj)
Uses the resource root path to compare two resources.Please note a number of additional comparators for resources exists as members of this class.
- Specified by:
compareTo
in interfacejava.lang.Comparable<I_CmsResource>
- See Also:
Comparable.compareTo(java.lang.Object)
,I_CmsResource.COMPARE_DATE_RELEASED
,I_CmsResource.COMPARE_ROOT_PATH
,I_CmsResource.COMPARE_ROOT_PATH_IGNORE_CASE
,I_CmsResource.COMPARE_ROOT_PATH_IGNORE_CASE_FOLDERS_FIRST
-
equals
public boolean equals(java.lang.Object obj)
Two resources are considered equal in case their structure id is equal.- Overrides:
equals
in classjava.lang.Object
- See Also:
Object.equals(java.lang.Object)
-
getCopy
public CmsResource getCopy()
Creates a copy of this resource.This is useful in case you want to create a copy of a resource and really make sure won't get a
CmsFile
orCmsFolder
, which may happen if you just callclone()
.- Returns:
- a copy of this resource
-
getDateContent
public long getDateContent()
Returns the date of the last modification of the content of this resource.This applies only to resources of type
CmsFile
, since aCmsFolder
has no content. In case of a folder,-1
is always returned as content date.Any modification of a resource, including changes to the resource properties, will increase the "date of last modification" which is returned by
getDateLastModified()
. The "date of the content" as returned by this method only changes when the file content as returned byCmsFile.getContents()
is changed.- Specified by:
getDateContent
in interfaceI_CmsResource
- Returns:
- the date of the last modification of the content of this resource
- Since:
- 7.0.0
-
getDateCreated
public long getDateCreated()
Returns the date of the creation of this resource.- Specified by:
getDateCreated
in interfaceI_CmsResource
- Returns:
- the date of the creation of this resource
-
getDateExpired
public long getDateExpired()
Returns the expiration date this resource.If the expiration date has not been set,
DATE_EXPIRED_DEFAULT
is returned. This means: The resource does never expire.- Specified by:
getDateExpired
in interfaceI_CmsResource
- Returns:
- the expiration date of this resource
-
getDateLastModified
public long getDateLastModified()
Returns the date of the last modification of this resource.- Specified by:
getDateLastModified
in interfaceI_CmsResource
- Returns:
- the date of the last modification of this resource
-
getDateReleased
public long getDateReleased()
Returns the release date this resource.If the release date has not been set,
DATE_RELEASED_DEFAULT
is returned. This means: The resource has always been released.- Specified by:
getDateReleased
in interfaceI_CmsResource
- Returns:
- the release date of this resource
-
getFlags
public int getFlags()
Returns the flags of this resource.- Specified by:
getFlags
in interfaceI_CmsResource
- Returns:
- the flags of this resource
- See Also:
for an explanation of the resource flags
-
getLength
public int getLength()
Returns the content length of this resource.If the resource is a file, then this is the byte size of the file content. If the resource is a folder, then the size is always -1.
- Specified by:
getLength
in interfaceI_CmsResource
- Returns:
- the content length of the content
-
getName
public java.lang.String getName()
Returns the file name of this resource without parent folders, for exampleindex.html
.- Specified by:
getName
in interfaceI_CmsResource
- Returns:
- the file name of this resource without parent folders
-
getProjectLastModified
public CmsUUID getProjectLastModified()
Returns the id of theCmsProject
where this resource has been last modified.- Specified by:
getProjectLastModified
in interfaceI_CmsResource
- Returns:
- the id of the
CmsProject
where this resource has been last modified, ornull
-
getResourceId
public CmsUUID getResourceId()
Returns the id of the database content record of this resource.- Specified by:
getResourceId
in interfaceI_CmsResource
- Returns:
- the id of the database content record of this resource
-
getRootPath
public java.lang.String getRootPath()
Returns the name of this resource with it's full path from the top level root folder, for example/sites/default/myfolder/index.html
.In a presentation level application usually the current site root must be cut of from the root path. Use
CmsObject.getSitePath(CmsResource)
to get the "absolute" path of a resource in the current site.- Specified by:
getRootPath
in interfaceI_CmsResource
- Returns:
- the name of this resource with it's full path from the top level root folder
- See Also:
CmsObject.getSitePath(CmsResource)
,CmsRequestContext.getSitePath(CmsResource)
,CmsRequestContext.removeSiteRoot(String)
-
getSiblingCount
public int getSiblingCount()
Returns the number of siblings of this resource, also counting this resource.If a resource has no sibling, the total sibling count for this resource is
1
, if a resource hasn
siblings, the sibling count isn + 1
.- Specified by:
getSiblingCount
in interfaceI_CmsResource
- Returns:
- the number of siblings of this resource, also counting this resource
-
getState
public CmsResourceState getState()
Returns the state of this resource.This may be
STATE_UNCHANGED
,STATE_CHANGED
,STATE_NEW
orSTATE_DELETED
.- Specified by:
getState
in interfaceI_CmsResource
- Returns:
- the state of this resource
-
getStructureId
public CmsUUID getStructureId()
Returns the id of the database structure record of this resource.- Specified by:
getStructureId
in interfaceI_CmsResource
- Returns:
- the id of the database structure record of this resource
-
getTypeId
public int getTypeId()
Returns the resource type id for this resource.- Specified by:
getTypeId
in interfaceI_CmsResource
- Returns:
- the resource type id of this resource
-
getUserCreated
public CmsUUID getUserCreated()
Returns the user id of theCmsUser
who created this resource.- Specified by:
getUserCreated
in interfaceI_CmsResource
- Returns:
- the user id of the
CmsUser
who created this resource
-
getUserLastModified
public CmsUUID getUserLastModified()
Returns the id of theCmsUser
who made the last modification on this resource.- Specified by:
getUserLastModified
in interfaceI_CmsResource
- Returns:
- the id of the
CmsUser
who made the last modification on this resource
-
getVersion
public int getVersion()
Returns the current version number of this resource.- Specified by:
getVersion
in interfaceI_CmsResource
- Returns:
- the current version number of this resource
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
- See Also:
Object.hashCode()
-
isExpired
public boolean isExpired(long time)
Returnstrue
if this resource is expired at the given time according to the information stored ingetDateExpired()
.- Specified by:
isExpired
in interfaceI_CmsResource
- Parameters:
time
- the time to check the expiration date against- Returns:
true
if this resource is expired at the given time- See Also:
isReleased(long)
,isReleasedAndNotExpired(long)
,DATE_RELEASED_EXPIRED_IGNORE
,getDateReleased()
,CmsRequestContext.getRequestTime()
-
isFile
public boolean isFile()
- Specified by:
isFile
in interfaceI_CmsResource
- Returns:
- true if this resource is a file, false otherwise
-
isFolder
public boolean isFolder()
- Specified by:
isFolder
in interfaceI_CmsResource
- Returns:
- true if this resource is a folder, false otherwise
-
isInternal
public boolean isInternal()
Returnstrue
if the resource is marked as internal.An internal resource can be read by the OpenCms API, but it can not be delivered by a direct request from an outside user.
For example if the resource
/internal.xml
has been set as marked as internal, this resource can not be requested by an HTTP request, so when a user entershttp:/www.myserver.com/opencms/opencms/internal.xml
in the browser this will generate aCmsVfsResourceNotFoundException
.This state is stored as bit 1 in the resource flags.
- Specified by:
isInternal
in interfaceI_CmsResource
- Returns:
true
if the resource is internal
-
isInternalOrInInternalFolder
public boolean isInternalOrInInternalFolder()
Checks if either the resource's 'internal' flag is set, or if it's below a list of forbidden folders.- Returns:
- true if the resource should be treated as internal
-
isLabeled
public boolean isLabeled()
Returnstrue
if the resource has to be labeled with a special icon in the explorer view.This state is stored as bit 2 in the resource flags.
- Specified by:
isLabeled
in interfaceI_CmsResource
- Returns:
true
if the resource has to be labeled in the explorer view
-
isReleased
public boolean isReleased(long time)
Returnstrue
if this resource is released at the given time according to the information stored ingetDateReleased()
.- Specified by:
isReleased
in interfaceI_CmsResource
- Parameters:
time
- the time to check the release date against- Returns:
true
if this resource is released at the given time- See Also:
isExpired(long)
,isReleasedAndNotExpired(long)
,DATE_RELEASED_EXPIRED_IGNORE
,getDateReleased()
,CmsRequestContext.getRequestTime()
-
isReleasedAndNotExpired
public boolean isReleasedAndNotExpired(long time)
Returnstrue
if this resource is valid at the given time according to the information stored ingetDateReleased()
andgetDateExpired()
.A resource is valid if it is released and not yet expired.
- Specified by:
isReleasedAndNotExpired
in interfaceI_CmsResource
- Parameters:
time
- the time to check the release and expiration date against- Returns:
true
if this resource is valid at the given time- See Also:
isExpired(long)
,isReleased(long)
,DATE_RELEASED_EXPIRED_IGNORE
,getDateReleased()
,CmsRequestContext.getRequestTime()
-
isTemporaryFile
public boolean isTemporaryFile()
Returnstrue
if this resource is a temporary file.A resource is considered a temporary file it is a file where the
FLAG_TEMPFILE
flag has been set, or if the file name (without parent folders) starts with the prefix char'~'
(tilde).- Returns:
true
if the given resource name is a temporary file- See Also:
isTemporaryFileName(String)
-
isTouched
public boolean isTouched()
Returnstrue
if this resource was touched.- Specified by:
isTouched
in interfaceI_CmsResource
- Returns:
true
if this resource was touched
-
setDateExpired
public void setDateExpired(long time)
Sets the expiration date this resource.- Parameters:
time
- the expiration date to set
-
setDateLastModified
public void setDateLastModified(long time)
Sets the date of the last modification of this resource.- Parameters:
time
- the last modification date to set
-
setDateReleased
public void setDateReleased(long time)
Sets the release date this resource.- Parameters:
time
- the release date to set
-
setFlags
public void setFlags(int flags)
Sets the flags of this resource.The resource flags integer is used as bit set that contains special information about the resource. The following methods internally use the resource flags:
- Parameters:
flags
- the flags value to set
-
setInternal
public void setInternal(boolean internal)
Sets or clears the internal flag.- Parameters:
internal
- true if the internal flag should be set, false if it should be cleared
-
setState
public void setState(CmsResourceState state)
Sets the state of this resource.- Parameters:
state
- the state to set
-
setType
public void setType(int type)
Sets the type of this resource.- Parameters:
type
- the type to set
-
setUserLastModified
public void setUserLastModified(CmsUUID resourceLastModifiedByUserId)
Sets the user id of the user who changed this resource.- Parameters:
resourceLastModifiedByUserId
- the user id of the user who changed the resource
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
- See Also:
Object.toString()
-
-