org.opencms.file
Class CmsFile

java.lang.Object
  extended by org.opencms.file.CmsResource
      extended by org.opencms.file.CmsFile
All Implemented Interfaces:
Serializable, Cloneable, Comparable<I_CmsResource>, I_CmsResource
Direct Known Subclasses:
CmsHistoryFile

public class CmsFile
extends CmsResource

A file resource in the OpenCms VFS.

A file resource is a CmsResource that contains an additional byte array of binary data, which is the file content.

A file object is not allowed to have sub-resources.

Since:
6.0.0
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.opencms.file.CmsResource
CmsResource.CmsResourceCopyMode, CmsResource.CmsResourceDeleteMode, CmsResource.CmsResourceUndoMode
 
Nested classes/interfaces inherited from interface org.opencms.file.I_CmsResource
I_CmsResource.CmsResourceAttribute
 
Field Summary
 
Fields inherited from class org.opencms.file.CmsResource
COPY_AS_NEW, COPY_AS_SIBLING, COPY_PRESERVE_SIBLING, DATE_EXPIRED_DEFAULT, DATE_RELEASED_DEFAULT, DATE_RELEASED_EXPIRED_IGNORE, DELETE_PRESERVE_SIBLINGS, DELETE_REMOVE_SIBLINGS, FLAG_INTERNAL, FLAG_LABELED, FLAG_TEMPFILE, m_dateContent, m_length, NAME_CONSTRAINTS, STATE_CHANGED, STATE_DELETED, STATE_KEEP, STATE_NEW, STATE_UNCHANGED, TEMP_FILE_PREFIX, TOUCH_DATE_UNCHANGED, UNDO_CONTENT, UNDO_CONTENT_RECURSIVE, UNDO_MOVE_CONTENT, UNDO_MOVE_CONTENT_RECURSIVE, VFS_FOLDER_SITES, VFS_FOLDER_SYSTEM
 
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
CmsFile(CmsResource resource)
          Constructor, creates a new file Object from the given resource with an empty byte array as file content, if the resource does not implement a file.
CmsFile(CmsUUID structureId, CmsUUID resourceId, String path, int type, int flags, CmsUUID projectId, CmsResourceState state, long dateCreated, CmsUUID userCreated, long dateLastModified, CmsUUID userLastModified, long dateReleased, long dateExpired, int linkCount, int length, long dateContent, int version, byte[] content)
          Constructor, creates a new file object.
 
Method Summary
 Object clone()
          Returns a clone of this Objects instance.
 byte[] getContents()
          Returns the content of this file.
 int getLength()
          Returns the content length of this resource.
 boolean isFile()
          Returns true if the resource is a CmsFile, that is not a CmsFolder.
 boolean isFolder()
          Returns true if the resource is a CmsFolder, that is not a CmsFile.
 boolean isTemporaryFile()
          Returns true if this resource is a temporary file.
 void setContents(byte[] value)
          Sets the contents of this file.
 
Methods inherited from class org.opencms.file.CmsResource
checkResourceName, compareTo, equals, getCopy, getDateContent, getDateCreated, getDateExpired, getDateLastModified, getDateReleased, getFlags, getFolderPath, getName, getName, getParentFolder, getPathLevel, getPathPart, getProjectLastModified, getResourceId, getRootPath, getSiblingCount, getState, getStructureId, getTypeId, getUserCreated, getUserLastModified, getVersion, hashCode, isExpired, isFolder, isInternal, isLabeled, isReleased, isReleasedAndNotExpired, isTemporaryFileName, isTouched, setDateExpired, setDateLastModified, setDateReleased, setFlags, setState, setType, setUserLastModified, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CmsFile

public CmsFile(CmsResource resource)
Constructor, creates a new file Object from the given resource with an empty byte array as file content, if the resource does not implement a file.

Parameters:
resource - the base resource object to create a file from

CmsFile

public CmsFile(CmsUUID structureId,
               CmsUUID resourceId,
               String path,
               int type,
               int flags,
               CmsUUID projectId,
               CmsResourceState state,
               long dateCreated,
               CmsUUID userCreated,
               long dateLastModified,
               CmsUUID userLastModified,
               long dateReleased,
               long dateExpired,
               int linkCount,
               int length,
               long dateContent,
               int version,
               byte[] content)
Constructor, creates a new file object.

Parameters:
structureId - the id of this resources structure record
resourceId - the id of this resources resource record
path - the filename of this resource
type - the type of this resource
flags - the flags of this resource
projectId - the project id this resource was last modified in
state - the state of this resource
dateCreated - the creation date of this resource
userCreated - the id of the user who created this resource
dateLastModified - the date of the last modification of this resource
userLastModified - the id of the user who did the last modification of this resource
dateReleased - the release date of this resource
dateExpired - the expiration date of this resource
linkCount - the count of all siblings of this resource
length - the size of the file content of this resource
dateContent - the date of the last modification of the content of this resource
version - the version number of this resource
content - the binary content data of this file
Method Detail

clone

public Object clone()
Returns a clone of this Objects instance.

Overrides:
clone in class CmsResource
Returns:
a clone of this instance

getContents

public byte[] getContents()
Returns the content of this file.

Returns:
the content of this file

getLength

public int getLength()
Description copied from class: CmsResource
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 interface I_CmsResource
Overrides:
getLength in class CmsResource
Returns:
the content length of the content
See Also:
CmsResource.getLength()

isFile

public boolean isFile()
Description copied from class: CmsResource
Returns true if the resource is a CmsFile, that is not a CmsFolder.

Specified by:
isFile in interface I_CmsResource
Overrides:
isFile in class CmsResource
Returns:
true if this resource is a file, false otherwise
See Also:
CmsResource.isFile()

isFolder

public boolean isFolder()
Description copied from class: CmsResource
Returns true if the resource is a CmsFolder, that is not a CmsFile.

Specified by:
isFolder in interface I_CmsResource
Overrides:
isFolder in class CmsResource
Returns:
true if this resource is a folder, false otherwise
See Also:
CmsResource.isFolder()

isTemporaryFile

public boolean isTemporaryFile()
Description copied from class: CmsResource
Returns true if this resource is a temporary file.

A resource is considered a temporary file it is a file where the CmsResource.FLAG_TEMPFILE flag has been set, or if the file name (without parent folders) starts with the prefix char '~' (tilde).

Overrides:
isTemporaryFile in class CmsResource
Returns:
true if the given resource name is a temporary file
See Also:
CmsResource.isTemporaryFile()

setContents

public void setContents(byte[] value)
Sets the contents of this file.

This will also set the date content, but only if the content is already set.

Parameters:
value - the content of this file