|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Definitions of all required VFS driver methods.
Field Summary | |
static int |
DRIVER_TYPE_ID
The type ID to identify user driver implementations. |
Method Summary | |
void |
createContent(CmsDbContext dbc,
CmsProject project,
CmsUUID resourceId,
byte[] content,
int versionId)
Creates a resource content with the specified id. |
CmsFile |
createFile(java.sql.ResultSet res,
int projectId)
Creates a CmsFile instance from a JDBC ResultSet. |
CmsFile |
createFile(java.sql.ResultSet res,
int projectId,
boolean hasFileContentInResultSet)
Creates a CmsFile instance from a JDBC ResultSet. |
CmsFolder |
createFolder(java.sql.ResultSet res,
int projectId,
boolean hasProjectIdInResultSet)
Creates a CmsFolder instance from a JDBC ResultSet. |
CmsPropertyDefinition |
createPropertyDefinition(CmsDbContext dbc,
int projectId,
java.lang.String name)
Creates a new property defintion in the database. |
CmsResource |
createResource(CmsDbContext dbc,
CmsProject project,
CmsResource resource,
byte[] content)
Creates a new resource from a given CmsResource object. |
CmsResource |
createResource(java.sql.ResultSet res,
int projectId)
Creates a CmsResource instance from a JDBC ResultSet. |
void |
createSibling(CmsDbContext dbc,
CmsProject project,
CmsResource resource)
Creates a new sibling for a specified resource. |
void |
deletePropertyDefinition(CmsDbContext dbc,
CmsPropertyDefinition name)
Deletes a property defintion. |
void |
deletePropertyObjects(CmsDbContext dbc,
int projectId,
CmsResource resource,
int deleteOption)
Deletes all property values of a file or folder. |
void |
destroy()
Destroys this driver. |
CmsSqlManager |
getSqlManager()
Returns the SqlManager of this driver. |
CmsSqlManager |
initSqlManager(java.lang.String classname)
Initializes the SQL manager for this driver. |
void |
publishResource(CmsDbContext dbc,
CmsProject onlineProject,
CmsResource onlineResource,
CmsResource offlineResource,
boolean writeFileContent)
Publishes the structure and resource records of an offline resource into it's online counterpart. |
java.util.List |
readChildResources(CmsDbContext dbc,
CmsProject currentProject,
CmsResource resource,
boolean getFolders,
boolean getFiles)
Reads all child-files and/or child-folders of a specified parent resource. |
CmsFile |
readFile(CmsDbContext dbc,
int projectId,
boolean includeDeleted,
CmsUUID structureId)
Reads a file specified by it's structure ID. |
CmsFolder |
readFolder(CmsDbContext dbc,
int projectId,
CmsUUID folderId)
Reads a folder specified by it's structure ID. |
CmsFolder |
readFolder(CmsDbContext dbc,
int projectId,
java.lang.String foldername)
Reads a folder specified by it's resource name. |
CmsPropertyDefinition |
readPropertyDefinition(CmsDbContext dbc,
java.lang.String name,
int projectId)
Reads a property definition for the soecified resource type. |
java.util.List |
readPropertyDefinitions(CmsDbContext dbc,
int projectId)
Reads all property definitions for the specified mapping type. |
CmsProperty |
readPropertyObject(CmsDbContext dbc,
java.lang.String key,
CmsProject project,
CmsResource resource)
Reads a property object from the database specified by it's key name mapped to a resource. |
java.util.List |
readPropertyObjects(CmsDbContext dbc,
CmsProject project,
CmsResource resource)
Reads all property objects mapped to a specified resource from the database. |
CmsResource |
readResource(CmsDbContext dbc,
int projectId,
CmsUUID structureId,
boolean includeDeleted)
Reads a resource specified by it's structure ID. |
CmsResource |
readResource(CmsDbContext dbc,
int projectId,
java.lang.String filename,
boolean includeDeleted)
Reads a resource specified by it's resource name. |
java.util.List |
readResources(CmsDbContext dbc,
int currentProject,
int state,
int mode)
Reads all resources inside a given project and with a given state. |
java.util.List |
readResourcesForPrincipalACE(CmsDbContext dbc,
CmsProject project,
CmsUUID principalId)
Returns all resources associated to a given principal via an ACE. |
java.util.List |
readResourcesForPrincipalAttr(CmsDbContext dbc,
CmsProject project,
CmsUUID principalId)
Returns all resources associated to a given principal through some of following attributes. |
java.util.List |
readResourcesWithProperty(CmsDbContext dbc,
int projectId,
CmsUUID propertyDefinition,
java.lang.String path)
Reads all resources that have a value set for the specified property (definition), in the given path. |
java.util.List |
readResourcesWithProperty(CmsDbContext dbc,
int projectId,
CmsUUID propertyDefinition,
java.lang.String path,
java.lang.String value)
Reads all resources that have a value (containing the specified value) set for the specified property (definition), in the given path. |
java.util.List |
readResourceTree(CmsDbContext dbc,
int projectId,
java.lang.String parent,
int type,
int state,
long startTime,
long endTime,
long releasedAfter,
long releasedBefore,
long expiredAfter,
long expiredBefore,
int mode)
Reads all resources inside a given project matching the criteria specified by parameter values. |
java.util.List |
readSiblings(CmsDbContext dbc,
CmsProject currentProject,
CmsResource resource,
boolean includeDeleted)
Reads all siblings that point to the resource record of a specified resource. |
void |
removeFile(CmsDbContext dbc,
CmsProject currentProject,
CmsResource resource,
boolean removeFileContent)
Removes a file physically in the database. |
void |
removeFolder(CmsDbContext dbc,
CmsProject currentProject,
CmsResource resource)
Removes a folder physically in the database. |
void |
replaceResource(CmsDbContext dbc,
CmsResource newResource,
byte[] newResourceContent,
int newResourceType)
Replaces the content and properties of an existing resource. |
void |
transferResource(CmsDbContext dbc,
CmsProject project,
CmsResource resource,
CmsUUID createdUser,
CmsUUID lastModifiedUser)
Transfers the attributes of a resource from to the given users. |
boolean |
validateResourceIdExists(CmsDbContext dbc,
int projectId,
CmsUUID resourceId)
Validates if the specified resource ID in the tables of the specified project {offline|online} exists. |
boolean |
validateStructureIdExists(CmsDbContext dbc,
int projectId,
CmsUUID structureId)
Validates if the specified structure ID in the tables of the specified project {offline|online} exists. |
void |
writeContent(CmsDbContext dbc,
CmsProject project,
CmsUUID resourceId,
byte[] content)
Writes the resource content with the specified content id. |
void |
writeLastModifiedProjectId(CmsDbContext dbc,
CmsProject project,
int projectId,
CmsResource resource)
Writes the "last-modified-in-project" ID of a resource. |
void |
writePropertyObject(CmsDbContext dbc,
CmsProject project,
CmsResource resource,
CmsProperty property)
Writes a property object to the database mapped to a specified resource. |
void |
writePropertyObjects(CmsDbContext dbc,
CmsProject project,
CmsResource resource,
java.util.List properties)
Writes a list of property objects to the database mapped to a specified resource. |
void |
writeResource(CmsDbContext dbc,
CmsProject project,
CmsResource resource,
int changed)
Writes the structure and/or resource record(s) of an existing file. |
void |
writeResourceState(CmsDbContext dbc,
CmsProject project,
CmsResource resource,
int changed)
Writes file state in either the structure or resource record, or both of them. |
Field Detail |
public static final int DRIVER_TYPE_ID
Method Detail |
public void createContent(CmsDbContext dbc, CmsProject project, CmsUUID resourceId, byte[] content, int versionId) throws CmsDataAccessException
dbc
- the current database contextproject
- the current projectresourceId
- the resource id to create the content forcontent
- the content to writeversionId
- for the content of a backup file you need to insert the versionId of the backup
CmsDataAccessException
- if something goes wrongpublic CmsFile createFile(java.sql.ResultSet res, int projectId) throws java.sql.SQLException
res
- the JDBC ResultSetprojectId
- the project id
java.sql.SQLException
- in case the result set does not include a requested table attributepublic CmsFile createFile(java.sql.ResultSet res, int projectId, boolean hasFileContentInResultSet) throws java.sql.SQLException
res
- the JDBC ResultSetprojectId
- the project idhasFileContentInResultSet
- flag to include the file content
java.sql.SQLException
- in case the result set does not include a requested table attributepublic CmsFolder createFolder(java.sql.ResultSet res, int projectId, boolean hasProjectIdInResultSet) throws java.sql.SQLException
res
- the JDBC ResultSetprojectId
- the ID of the current projecthasProjectIdInResultSet
- true if the SQL select query includes the PROJECT_ID table attribute
java.sql.SQLException
- in case the result set does not include a requested table attributepublic CmsPropertyDefinition createPropertyDefinition(CmsDbContext dbc, int projectId, java.lang.String name) throws CmsDataAccessException
dbc
- the current database contextprojectId
- the project in which the propertydefinition is createdname
- the name of the propertydefinitions to overwrite
CmsDataAccessException
- if something goes wrongpublic CmsResource createResource(CmsDbContext dbc, CmsProject project, CmsResource resource, byte[] content) throws CmsDataAccessException
This method works for both files and folders. Existing resources get overwritten.
dbc
- the current database contextproject
- the current projectresource
- the resource to be createdcontent
- the file content, or null in case of a folder
CmsDataAccessException
- if somethong goes wrongI_CmsResourceType.createResource(org.opencms.file.CmsObject, CmsSecurityManager, String, byte[], List)
,
I_CmsResourceType.importResource(org.opencms.file.CmsObject, CmsSecurityManager, String, CmsResource, byte[], List)
,
CmsObject.createResource(String, int, byte[], List)
,
CmsObject.importResource(String, CmsResource, byte[], List)
public CmsResource createResource(java.sql.ResultSet res, int projectId) throws java.sql.SQLException
res
- the JDBC ResultSetprojectId
- the ID of the current project to adjust the modification date in case the resource is a VFS link
java.sql.SQLException
- in case the result set does not include a requested table attributepublic void createSibling(CmsDbContext dbc, CmsProject project, CmsResource resource) throws CmsDataAccessException
dbc
- the current database contextproject
- the project where to create the linkresource
- the link prototype
CmsDataAccessException
- if something goes wrongpublic void deletePropertyDefinition(CmsDbContext dbc, CmsPropertyDefinition name) throws CmsDataAccessException
dbc
- the current database contextname
- the property definitions to be deleted
CmsDataAccessException
- if something goes wrongpublic void deletePropertyObjects(CmsDbContext dbc, int projectId, CmsResource resource, int deleteOption) throws CmsDataAccessException
You may specify which whether just structure or resource property values should be deleted, or both of them.
dbc
- the current database contextprojectId
- the id of the projectresource
- the resourcedeleteOption
- determines which property values should be deleted
CmsDataAccessException
- if something goes wrongCmsProperty.DELETE_OPTION_DELETE_STRUCTURE_AND_RESOURCE_VALUES
,
CmsProperty.DELETE_OPTION_DELETE_STRUCTURE_VALUES
,
CmsProperty.DELETE_OPTION_DELETE_RESOURCE_VALUES
public void destroy() throws java.lang.Throwable
java.lang.Throwable
- if something goes wrongpublic CmsSqlManager getSqlManager()
public CmsSqlManager initSqlManager(java.lang.String classname)
To obtain JDBC connections from different pools, further {online|offline|backup} pool Urls have to be specified.
classname
- the classname of the SQL manager
public void publishResource(CmsDbContext dbc, CmsProject onlineProject, CmsResource onlineResource, CmsResource offlineResource, boolean writeFileContent) throws CmsDataAccessException
dbc
- the current database contextonlineProject
- the online projectonlineResource
- the online resourceofflineResource
- the offline resourcewriteFileContent
- true, if also the content record of the specified offline resource should be written to the online table; false otherwise
CmsDataAccessException
- if somethong goes wrongpublic java.util.List readChildResources(CmsDbContext dbc, CmsProject currentProject, CmsResource resource, boolean getFolders, boolean getFiles) throws CmsDataAccessException
dbc
- the current database contextcurrentProject
- the current projectresource
- the parent foldergetFolders
- if true the child folders of the parent folder are returned in the result setgetFiles
- if true the child files of the parent folder are returned in the result set
CmsDataAccessException
- if something goes wrongpublic CmsFile readFile(CmsDbContext dbc, int projectId, boolean includeDeleted, CmsUUID structureId) throws CmsDataAccessException
dbc
- the current database contextprojectId
- the ID of the current projectincludeDeleted
- true if should be read even if it's state is deletedstructureId
- the id of the file
CmsDataAccessException
- if something goes wrongpublic CmsFolder readFolder(CmsDbContext dbc, int projectId, CmsUUID folderId) throws CmsDataAccessException
dbc
- the current database contextprojectId
- the project in which the resource will be usedfolderId
- the id of the folder to be read
CmsDataAccessException
- if something goes wrongpublic CmsFolder readFolder(CmsDbContext dbc, int projectId, java.lang.String foldername) throws CmsDataAccessException
dbc
- the current database contextprojectId
- the project in which the resource will be usedfoldername
- the name of the folder to be read
CmsDataAccessException
- if something goes wrongpublic CmsPropertyDefinition readPropertyDefinition(CmsDbContext dbc, java.lang.String name, int projectId) throws CmsDataAccessException
If no property definition with the given name is found,
null
is returned.
dbc
- the current database contextname
- the name of the propertydefinition to readprojectId
- the id of the project
null
if there is no property definition with the given name.
CmsDataAccessException
- if something goes wrongpublic java.util.List readPropertyDefinitions(CmsDbContext dbc, int projectId) throws CmsDataAccessException
dbc
- the current database contextprojectId
- the id of the project
CmsPropertyDefinition
objects (may be empty)
CmsDataAccessException
- if something goes wrongpublic CmsProperty readPropertyObject(CmsDbContext dbc, java.lang.String key, CmsProject project, CmsResource resource) throws CmsDataAccessException
The implementation must return CmsProperty.getNullProperty()
if the property is not found.
dbc
- the current database contextkey
- the key of the propertyproject
- the current projectresource
- the resource where the property is attached to
CmsDataAccessException
- if something goes wrongpublic java.util.List readPropertyObjects(CmsDbContext dbc, CmsProject project, CmsResource resource) throws CmsDataAccessException
The implementation must return an empty list if no properties are found at all.
dbc
- the current database contextproject
- the current projectresource
- the resource where the property is attached to
CmsDataAccessException
- if something goes wrongpublic CmsResource readResource(CmsDbContext dbc, int projectId, CmsUUID structureId, boolean includeDeleted) throws CmsDataAccessException
dbc
- the current database contextprojectId
- the Id of the projectstructureId
- the Id of the resourceincludeDeleted
- true if already deleted files are included
CmsDataAccessException
- if something goes wrongpublic CmsResource readResource(CmsDbContext dbc, int projectId, java.lang.String filename, boolean includeDeleted) throws CmsDataAccessException
dbc
- the current database contextprojectId
- the Id of the project in which the resource will be usedfilename
- the name of the fileincludeDeleted
- true if already deleted files are included
CmsDataAccessException
- if something goes wrongpublic java.util.List readResources(CmsDbContext dbc, int currentProject, int state, int mode) throws CmsDataAccessException
dbc
- the current database contextcurrentProject
- the current projectstate
- the state to matchmode
- flag signaling the read mode
CmsDataAccessException
- if somethong goes wrongpublic java.util.List readResourcesForPrincipalACE(CmsDbContext dbc, CmsProject project, CmsUUID principalId) throws CmsDataAccessException
dbc
- the current database contextproject
- the to read the entries fromprincipalId
- the id of the principal
CmsResource
objects
CmsDataAccessException
- if something goes wrongpublic java.util.List readResourcesForPrincipalAttr(CmsDbContext dbc, CmsProject project, CmsUUID principalId) throws CmsDataAccessException
dbc
- the current database contextproject
- the to read the entries fromprincipalId
- the id of the principal
CmsResource
objects
CmsDataAccessException
- if something goes wrongpublic java.util.List readResourcesWithProperty(CmsDbContext dbc, int projectId, CmsUUID propertyDefinition, java.lang.String path) throws CmsDataAccessException
Both individual and shared properties of a resource are checked.
dbc
- the current database contextprojectId
- the id of the projectpropertyDefinition
- the id of the property definitionpath
- the folder to get the resources with the property from
CmsResource
objects
that have a value set for the specified property.
CmsDataAccessException
- if something goes wrongpublic java.util.List readResourcesWithProperty(CmsDbContext dbc, int projectId, CmsUUID propertyDefinition, java.lang.String path, java.lang.String value) throws CmsDataAccessException
Both individual and shared properties of a resource are checked.
dbc
- the current database contextprojectId
- the id of the projectpropertyDefinition
- the id of the property definitionpath
- the folder to get the resources with the property fromvalue
- the string to search in the value of the property
CmsResource
objects
that have a value set for the specified property.
CmsDataAccessException
- if something goes wrongpublic java.util.List readResourceTree(CmsDbContext dbc, int projectId, java.lang.String parent, int type, int state, long startTime, long endTime, long releasedAfter, long releasedBefore, long expiredAfter, long expiredBefore, int mode) throws CmsDataAccessException
Important: If C_READMODE_EXCLUDE_TREE is true (or C_READMODE_INCLUDE_TREE is false), the provided parent String must be the UUID of the parent folder, NOT the parent folder path.
dbc
- the current database contextprojectId
- the project id for matching resources or C_READ_OFFLINE_PROJECTSparent
- the path to the resource used as root of the searched subtree or READ_IGNORE_PARENT (C_READMODE_EXCLUDE_TREE means to read immidiate children only)type
- the resource type of matching resources or C_READ_IGNORE_TYPES (meaning inverted by C_READMODE_EXCLUDE_TYPE)state
- the state of matching resources or READ_IGNORE_STATE (meaning inverted by C_READMODE_EXCLUDE_STATE)startTime
- the start of the time range for the last modification date of matching resources or READ_IGNORE_TIMEendTime
- the end of the time range for the last modification date of matching resources or READ_IGNORE_TIMEreleasedAfter
- the start of the time range for the release date of matching resourcesreleasedBefore
- the end of the time range for the release date of matching resourcesexpiredAfter
- the start of the time range for the expire date of matching resourcesexpiredBefore
- the end of the time range for the expire date of matching resourcesmode
- additional mode flags:
C_READMODE_INCLUDE_TREE
C_READMODE_EXCLUDE_TREE
C_READMODE_INCLUDE_PROJECT
C_READMODE_EXCLUDE_TYPE
C_READMODE_EXCLUDE_STATE
CmsDataAccessException
- if somethong goes wrongpublic java.util.List readSiblings(CmsDbContext dbc, CmsProject currentProject, CmsResource resource, boolean includeDeleted) throws CmsDataAccessException
dbc
- the current database contextcurrentProject
- the current projectresource
- the specified resourceincludeDeleted
- true
if deleted siblings should be included in the result list
CmsResource
s that
are siblings to the specified resource,
including the specified resource itself.
CmsDataAccessException
- if something goes wrongpublic void removeFile(CmsDbContext dbc, CmsProject currentProject, CmsResource resource, boolean removeFileContent) throws CmsDataAccessException
dbc
- the current database contextcurrentProject
- the current projectresource
- the resourceremoveFileContent
- if true, the content record is also removed; if false, only the structure/resource records are removed
CmsDataAccessException
- if something goes wrongpublic void removeFolder(CmsDbContext dbc, CmsProject currentProject, CmsResource resource) throws CmsDataAccessException
dbc
- the current database contextcurrentProject
- the current projectresource
- the folder
CmsDataAccessException
- if something goes wrongpublic void replaceResource(CmsDbContext dbc, CmsResource newResource, byte[] newResourceContent, int newResourceType) throws CmsDataAccessException
dbc
- the current database contextnewResource
- the new resourcenewResourceContent
- the new contentnewResourceType
- the resource type
CmsDataAccessException
- if something goes wrongpublic void transferResource(CmsDbContext dbc, CmsProject project, CmsResource resource, CmsUUID createdUser, CmsUUID lastModifiedUser) throws CmsDataAccessException
dbc
- the current database contextproject
- the current projectresource
- the resource to modifycreatedUser
- the id of the user to be set as the creator of the resourcelastModifiedUser
- the id of the user to be set as the las modificator of the resource
CmsDataAccessException
- if something goes wrongpublic boolean validateResourceIdExists(CmsDbContext dbc, int projectId, CmsUUID resourceId) throws CmsDataAccessException
dbc
- the current database contextprojectId
- the project idresourceId
- the resource id to test for
CmsDataAccessException
- if something goes wrongpublic boolean validateStructureIdExists(CmsDbContext dbc, int projectId, CmsUUID structureId) throws CmsDataAccessException
dbc
- the current database contextprojectId
- the ID of current projectstructureId
- the structure id
CmsDataAccessException
- if something goes wrongpublic void writeContent(CmsDbContext dbc, CmsProject project, CmsUUID resourceId, byte[] content) throws CmsDataAccessException
dbc
- the current database contextproject
- the current projectresourceId
- the id of the resource used to identify the content to updatecontent
- the new content of the file
CmsDataAccessException
- if something goes wrongpublic void writeLastModifiedProjectId(CmsDbContext dbc, CmsProject project, int projectId, CmsResource resource) throws CmsDataAccessException
dbc
- the current database contextproject
- the resource record is updated with the ID of this projectprojectId
- the project id to write into the reourceresource
- the resource that gets updated
CmsDataAccessException
- if something goes wrongpublic void writePropertyObject(CmsDbContext dbc, CmsProject project, CmsResource resource, CmsProperty property) throws CmsDataAccessException
dbc
- the current database contextproject
- the current projectresource
- the resource where the property should be attached toproperty
- a CmsProperty object containing both the structure and resource value of the property
CmsDataAccessException
- if something goes wrongpublic void writePropertyObjects(CmsDbContext dbc, CmsProject project, CmsResource resource, java.util.List properties) throws CmsDataAccessException
dbc
- the current database contextproject
- the current projectresource
- the resource where the property should be attached toproperties
- a list of CmsProperty objects
CmsDataAccessException
- if something goes wrongpublic void writeResource(CmsDbContext dbc, CmsProject project, CmsResource resource, int changed) throws CmsDataAccessException
Common usages of this method are saving the resource information
after creating, importing or restoring complete files
where all file header attribs are changed. Both the structure and resource
records get written. Thus, using this method affects all siblings of
a resource! Use writeResourceState(CmsDbContext, CmsProject, CmsResource, int)
instead if you just want to update the file state, e.g. of a single sibling.
The file state is set to "changed", unless the current state is "new" or "deleted". The "changed" argument allows to choose whether the structure or resource state, or none of them, is set to "changed".
The rating of the file state values is as follows:
unchanged < changed < new < deleted
Second, the "state" of the resource is the structure state, if the structure state has a higher file state value than the resource state. Otherwise the file state is the resource state.
dbc
- the current database contextproject
- the current projectresource
- the resource to be updatedchanged
- determines whether the structure or resource state, or none of them, is set to "changed"
CmsDataAccessException
- if something goes wrongCmsDriverManager.UPDATE_RESOURCE_STATE
,
CmsDriverManager.UPDATE_STRUCTURE_STATE
,
CmsDriverManager.NOTHING_CHANGED
,
writeResourceState(CmsDbContext, CmsProject, CmsResource, int)
public void writeResourceState(CmsDbContext dbc, CmsProject project, CmsResource resource, int changed) throws CmsDataAccessException
This method allows to change the resource state to any state by setting the desired state value in the specified CmsResource instance.
This method is frequently used while resources are published to set the file state back to "unchanged".
Only file state attribs. get updated here. Use writeResource(CmsDbContext, CmsProject, CmsResource, int)
instead to write the complete file header.
Please refer to the javadoc of writeResource(CmsDbContext, CmsProject, CmsResource, int)
to read
how setting resource state values affects the file state.
dbc
- the current database contextproject
- the current projectresource
- the resource to be updatedchanged
- determines whether the structure or resource state, or none of them, is set to "changed"
CmsDataAccessException
- if somethong goes wrongCmsDriverManager.UPDATE_RESOURCE_STATE
,
CmsDriverManager.UPDATE_STRUCTURE_STATE
,
CmsDriverManager.UPDATE_ALL
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |