org.opencms.file
Class CmsFile

java.lang.Object
  extended by org.opencms.file.CmsResource
      extended by org.opencms.file.CmsFile
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable
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
Version:
$Revision: 1.35 $
Author:
Alexander Kandzior, Michael Emmerich
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.opencms.file.CmsResource
CmsResource.CmsResourceCopyMode, CmsResource.CmsResourceDeleteMode, CmsResource.CmsResourceUndoMode
 
Field Summary
 
Fields inherited from class org.opencms.file.CmsResource
COMPARE_DATE_RELEASED, COMPARE_ROOT_PATH, COMPARE_ROOT_PATH_IGNORE_CASE, COMPARE_ROOT_PATH_IGNORE_CASE_FOLDERS_FIRST, 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, TOUCH_DATE_UNCHANGED, UNDO_CONTENT, UNDO_CONTENT_RECURSIVE, UNDO_MOVE_CONTENT, UNDO_MOVE_CONTENT_RECURSIVE, VFS_FOLDER_SITES, VFS_FOLDER_SYSTEM
 
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, java.lang.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
 java.lang.Object clone()
          Returns a clone of this Objects instance.
 byte[] getContents()
          Returns the content of this file.
 int getLength()
          Returns the length of the 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.
 void setContents(byte[] value)
          Sets the contents of this file.
static CmsFile upgrade(CmsResource resource, CmsObject cms)
          Deprecated. use CmsObject.readFile(CmsResource) instead
 
Methods inherited from class org.opencms.file.CmsResource
checkResourceName, compareTo, equals, 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, 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,
               java.lang.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

upgrade

public static CmsFile upgrade(CmsResource resource,
                              CmsObject cms)
                       throws CmsException
Deprecated. use CmsObject.readFile(CmsResource) instead

Utility method to upgrade a CmsResource to a CmsFile.

Sometimes a CmsResource might already be a (casted) CmsFile that also has the contents read. This method tries to optimize read access to the VFS by "upgrading" the CmsResource to a CmsFile first. If this fails, the CmsFile is read from the VFS.

Parameters:
resource - the resource to upgrade
cms - permission context for accessing the VFS
Returns:
the upgraded (or read) file
Throws:
CmsException - if something goes wrong

clone

public java.lang.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 length of the 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.

Overrides:
getLength in class CmsResource
Returns:
the 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.

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.

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

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