Interface I_CmsVfsDriver
- All Known Implementing Classes:
CmsVfsDriver
,CmsVfsDriver
,CmsVfsDriver
,CmsVfsDriver
,CmsVfsDriver
,CmsVfsDriver
,CmsVfsDriver
,CmsVfsDriver
- Since:
- 6.0.0
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The type ID to identify user driver implementations.static final String
The internal request attribute to indicate that the permissions have to be checked.static final String
The internal request attribute to indicate that resource organizational units have to be retrieved. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addUrlNameMappingEntry
(CmsDbContext dbc, boolean online, CmsUrlNameMappingEntry entry) Adds a new URL name mapping entry.int
countSiblings
(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId) Counts the number of siblings of a resource.void
createContent
(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId, byte[] content) Creates a content entry for the resource identified by the specified resource id.createFile
(ResultSet res, CmsUUID projectId) Creates aCmsFile
instance from a JDBC ResultSet.createFile
(ResultSet res, CmsUUID projectId, boolean hasFileContentInResultSet) Creates aCmsFile
instance from a JDBC ResultSet.createFolder
(ResultSet res, CmsUUID projectId, boolean hasProjectIdInResultSet) Creates aCmsFolder
instance from a JDBC ResultSet.void
createOnlineContent
(CmsDbContext dbc, CmsUUID resourceId, byte[] contents, int publishTag, boolean keepOnline, boolean needToUpdateContent) Creates a new content in the offline project.createPropertyDefinition
(CmsDbContext dbc, CmsUUID projectId, String name, CmsPropertyDefinition.CmsPropertyType type) Creates a new property definition in the database.void
createRelation
(CmsDbContext dbc, CmsUUID projectId, CmsRelation relation) Creates a newCmsRelation
object in the database.createResource
(ResultSet res, CmsUUID projectId) Creates a CmsResource instance from a JDBC ResultSet.createResource
(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, byte[] content) Creates a new resource from a givenCmsResource
object.void
createSibling
(CmsDbContext dbc, CmsProject project, CmsResource resource) Creates a new sibling for a specified resource.void
deleteAliases
(CmsDbContext dbc, CmsProject project, CmsAliasFilter filter) Deletes the aliases matching a given filter.void
Deletes a property definition.void
deletePropertyObjects
(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, int deleteOption) Deletes all property values of a file or folder.void
deleteRelations
(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, CmsRelationFilter filter) Deletes all relations with the given filter for the given resource.void
deleteRewriteAliases
(CmsDbContext dbc, CmsRewriteAliasFilter filter) Deletes rewrite aliases matching a given filter.void
deleteUrlNameMappingEntries
(CmsDbContext dbc, boolean online, CmsUrlNameMappingFilter filter) Deletes the URL name mapping entries which match a given filter.void
destroy()
Destroys this driver.getResourceOus
(CmsDbContext dbc, CmsUUID projectId, CmsResource resource) Returns all organizational units for the given resource.Returns the SqlManager of this driver.int
incrementCounter
(CmsDbContext dbc, String name) Gets the current value of a counter, creates it if it doesn't already exist, and increments it.initSqlManager
(String classname) Initializes the SQL manager for this driver.void
insertAlias
(CmsDbContext dbc, CmsProject project, CmsAlias alias) Adds an alias to the database.void
insertRewriteAliases
(CmsDbContext dbc, Collection<CmsRewriteAlias> rewriteAliases) Adds a list of rewrite aliases.void
moveResource
(CmsDbContext dbc, CmsUUID projectId, CmsResource source, String destinationPath) Moves the given resource to the specified destination path.void
publishResource
(CmsDbContext dbc, CmsProject onlineProject, CmsResource onlineResource, CmsResource offlineResource) Publishes the structure and resource records of an offline resource into it's online counterpart.void
publishVersions
(CmsDbContext dbc, CmsResource resource, boolean firstSibling) Copies the version number from the offline resource to the online resource, this has to be done during publishing, direct after copying the resource itself.readAliases
(CmsDbContext dbc, CmsProject project, CmsAliasFilter filter) Reads the aliases matching a given filter.readChildResources
(CmsDbContext dbc, CmsProject currentProject, CmsResource resource, boolean getFolders, boolean getFiles) Reads all child-files and/or child-folders of a specified parent resource.byte[]
readContent
(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId) Reads the content of a file specified by it's resource ID.readFolder
(CmsDbContext dbc, CmsUUID projectId, String foldername) Reads a folder specified by it's resource name.readFolder
(CmsDbContext dbc, CmsUUID projectId, CmsUUID folderId) Reads a folder specified by it's structure ID.readParentFolder
(CmsDbContext dbc, CmsUUID projectId, CmsUUID structureId) Reads the parent folder of a resource specified by it's structure ID.readPropertyDefinition
(CmsDbContext dbc, String name, CmsUUID projectId) Reads a property definition for the specified resource type.readPropertyDefinitions
(CmsDbContext dbc, CmsUUID projectId) Reads all property definitions for the specified mapping type.readPropertyObject
(CmsDbContext dbc, String key, CmsProject project, CmsResource resource) Reads a property object from the database specified by it's key name mapped to a resource.readPropertyObjects
(CmsDbContext dbc, CmsProject project, CmsResource resource) Reads all property objects mapped to a specified resource from the database.readRelations
(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, CmsRelationFilter filter) Reads all relations with the given filter for the given resource.readResource
(CmsDbContext dbc, CmsUUID projectId, String filename, boolean includeDeleted) Reads a resource specified by it's resource name.readResource
(CmsDbContext dbc, CmsUUID projectId, CmsUUID structureId, boolean includeDeleted) Reads a resource specified by it's structure ID.readResources
(CmsDbContext dbc, CmsUUID currentProject, CmsResourceState state, int mode) Reads all resources inside a given project and with a given state.readResourcesForPrincipalACE
(CmsDbContext dbc, CmsProject project, CmsUUID principalId) Returns all resources associated to a given principal via an ACE.readResourcesForPrincipalAttr
(CmsDbContext dbc, CmsProject project, CmsUUID principalId) Returns all resources associated to a given principal through some of following attributes.readResourcesWithProperty
(CmsDbContext dbc, CmsUUID projectId, CmsUUID propertyDefinition, String path, String value) Reads all resources that have a value (containing the specified value) set for the specified property (definition), in the given path.readResourceTree
(CmsDbContext dbc, CmsUUID projectId, String parent, int type, CmsResourceState 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.readRewriteAliases
(CmsDbContext dbc, CmsRewriteAliasFilter filter) Reads the rewrite aliases matching a given filter.readSiblings
(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, boolean includeDeleted) Reads all siblings that point to the resource record of a specified resource.readUrlNameMappingEntries
(CmsDbContext dbc, boolean online, CmsUrlNameMappingFilter filter) Reads the URL name mapping entries which match a given filter.readVersions
(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId, CmsUUID structureId) Reads a resource version numbers.void
removeFile
(CmsDbContext dbc, CmsUUID projectId, CmsResource resource) 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
setDriverManager
(CmsDriverManager driverManager) Sets the driver manager for this driver if possible.void
setSqlManager
(CmsSqlManager sqlManager) Sets the SQL manager for this driver if possible.void
transferResource
(CmsDbContext dbc, CmsProject project, CmsResource resource, CmsUUID createdUser, CmsUUID lastModifiedUser) Transfers the attributes of a resource from to the given users.void
updateRelations
(CmsDbContext dbc, CmsProject onlineProject, CmsResource offlineResource) Updates the relations on the online project copying the relations from the offline project.boolean
validateResourceIdExists
(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId) Validates if the specified resource ID in the tables of the specified project {offline|online} exists.boolean
validateStructureIdExists
(CmsDbContext dbc, CmsUUID projectId, CmsUUID structureId) Validates if the specified structure ID in the tables of the specified project {offline|online} exists.void
writeContent
(CmsDbContext dbc, CmsUUID resourceId, byte[] content) Writes the resource content with the specified resource id.void
writeLastModifiedProjectId
(CmsDbContext dbc, CmsProject project, CmsUUID 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, List<CmsProperty> properties) Writes a list of property objects to the database mapped to a specified resource.void
writeResource
(CmsDbContext dbc, CmsUUID projectId, 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, boolean isPublishing) Writes file state in either the structure or resource record, or both of them.
-
Field Details
-
DRIVER_TYPE_ID
The type ID to identify user driver implementations.- See Also:
-
REQ_ATTR_CHECK_PERMISSIONS
The internal request attribute to indicate that the permissions have to be checked.- See Also:
-
REQ_ATTR_RESOURCE_OUS
The internal request attribute to indicate that resource organizational units have to be retrieved.- See Also:
-
-
Method Details
-
addUrlNameMappingEntry
void addUrlNameMappingEntry(CmsDbContext dbc, boolean online, CmsUrlNameMappingEntry entry) throws CmsDataAccessException Adds a new URL name mapping entry.- Parameters:
dbc
- the current database contextonline
- if true, writes to the online tables, else to the offline tablesentry
- the entry to add- Throws:
CmsDataAccessException
- if something goes wrong
-
countSiblings
int countSiblings(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId) throws CmsDataAccessException Counts the number of siblings of a resource.- Parameters:
dbc
- the current database contextprojectId
- the current project idresourceId
- the resource id to count the number of siblings from- Returns:
- number of siblings
- Throws:
CmsDataAccessException
- if something goes wrong
-
createContent
void createContent(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId, byte[] content) throws CmsDataAccessException Creates a content entry for the resource identified by the specified resource id.- Parameters:
dbc
- the current database contextprojectId
- the id of the current projectresourceId
- the resource id of the resource to create the content forcontent
- the content to write- Throws:
CmsDataAccessException
- if something goes wrong
-
createFile
Creates aCmsFile
instance from a JDBC ResultSet.- Parameters:
res
- the JDBC ResultSetprojectId
- the project id- Returns:
- the created file
- Throws:
SQLException
- in case the result set does not include a requested table attribute
-
createFile
CmsFile createFile(ResultSet res, CmsUUID projectId, boolean hasFileContentInResultSet) throws SQLException Creates aCmsFile
instance from a JDBC ResultSet.- Parameters:
res
- the JDBC ResultSetprojectId
- the project idhasFileContentInResultSet
- flag to include the file content- Returns:
- the created file
- Throws:
SQLException
- in case the result set does not include a requested table attribute
-
createFolder
CmsFolder createFolder(ResultSet res, CmsUUID projectId, boolean hasProjectIdInResultSet) throws SQLException Creates aCmsFolder
instance from a JDBC ResultSet.- Parameters:
res
- the JDBC ResultSetprojectId
- the ID of the current projecthasProjectIdInResultSet
- true if the SQL select query includes the PROJECT_ID table attribute- Returns:
- the created folder
- Throws:
SQLException
- in case the result set does not include a requested table attribute
-
createOnlineContent
void createOnlineContent(CmsDbContext dbc, CmsUUID resourceId, byte[] contents, int publishTag, boolean keepOnline, boolean needToUpdateContent) throws CmsDataAccessException Creates a new content in the offline project.- Parameters:
dbc
- the current database contextresourceId
- the resource id of the content to writecontents
- the content to publishpublishTag
- the publish tagkeepOnline
- if the content is online or has to be put in the historyneedToUpdateContent
- if the content blob has to be updated- Throws:
CmsDataAccessException
- if something goes wrong
-
createPropertyDefinition
CmsPropertyDefinition createPropertyDefinition(CmsDbContext dbc, CmsUUID projectId, String name, CmsPropertyDefinition.CmsPropertyType type) throws CmsDataAccessException Creates a new property definition in the database.- Parameters:
dbc
- the current database contextprojectId
- the project in which the property definition is createdname
- the name of the property definitiontype
- the type of the property definition- Returns:
- the new property definition
- Throws:
CmsDataAccessException
- if something goes wrong
-
createRelation
void createRelation(CmsDbContext dbc, CmsUUID projectId, CmsRelation relation) throws CmsDataAccessException Creates a newCmsRelation
object in the database.- Parameters:
dbc
- the current database contextprojectId
- the id of the project to execute the query inrelation
- the relation to create- Throws:
CmsDataAccessException
- if something goes wrong
-
createResource
CmsResource createResource(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, byte[] content) throws CmsDataAccessException Creates a new resource from a givenCmsResource
object.This method works for both files and folders. Existing resources get overwritten.
- Parameters:
dbc
- the current database contextprojectId
- the id of the current projectresource
- the resource to be createdcontent
- the file content, or null in case of a folder- Returns:
- the created Cms resource
- Throws:
CmsDataAccessException
- if something goes wrong- See Also:
-
I_CmsResourceType.createResource(org.opencms.file.CmsObject, CmsSecurityManager, String, byte[], List)
org.opencms.file.types.I_CmsResourceType#importResource(org.opencms.file.CmsObject, CmsSecurityManager, String, CmsResource, byte[], List)
CmsObject.createResource(String, int, byte[], List)
CmsObject.importResource(String, CmsResource, byte[], List)
-
createResource
Creates a CmsResource instance from a JDBC ResultSet.- Parameters:
res
- the JDBC ResultSetprojectId
- the ID of the current project to adjust the modification date in case the resource is a VFS link- Returns:
- the created resource
- Throws:
SQLException
- in case the result set does not include a requested table attribute
-
createSibling
void createSibling(CmsDbContext dbc, CmsProject project, CmsResource resource) throws CmsDataAccessException Creates a new sibling for a specified resource.- Parameters:
dbc
- the current database contextproject
- the project where to create the linkresource
- the link prototype- Throws:
CmsDataAccessException
- if something goes wrong
-
deleteAliases
void deleteAliases(CmsDbContext dbc, CmsProject project, CmsAliasFilter filter) throws CmsDataAccessException Deletes the aliases matching a given filter.- Parameters:
dbc
- the database contextproject
- the current projectfilter
- the alias filter- Throws:
CmsDataAccessException
- if something goes wrong
-
deletePropertyDefinition
void deletePropertyDefinition(CmsDbContext dbc, CmsPropertyDefinition name) throws CmsDataAccessException Deletes a property definition.- Parameters:
dbc
- the current database contextname
- the property definitions to be deleted- Throws:
CmsDataAccessException
- if something goes wrong
-
deletePropertyObjects
void deletePropertyObjects(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, int deleteOption) throws CmsDataAccessException Deletes all property values of a file or folder.You may specify which whether just structure or resource property values should be deleted, or both of them.
- Parameters:
dbc
- the current database contextprojectId
- the id of the projectresource
- the resourcedeleteOption
- determines which property values should be deleted- Throws:
CmsDataAccessException
- if something goes wrong- See Also:
-
deleteRelations
void deleteRelations(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, CmsRelationFilter filter) throws CmsDataAccessException Deletes all relations with the given filter for the given resource.- Parameters:
dbc
- the current database contextprojectId
- the id of the project to execute the query inresource
- the base resource. May benull
for allfilter
- the filter to restrict the relations to remove- Throws:
CmsDataAccessException
- if something goes wrong
-
deleteRewriteAliases
void deleteRewriteAliases(CmsDbContext dbc, CmsRewriteAliasFilter filter) throws CmsDataAccessException Deletes rewrite aliases matching a given filter.- Parameters:
dbc
- the current database contextfilter
- the filter describing which rewrite aliases to delete- Throws:
CmsDataAccessException
- if something goes wrong
-
deleteUrlNameMappingEntries
void deleteUrlNameMappingEntries(CmsDbContext dbc, boolean online, CmsUrlNameMappingFilter filter) throws CmsDataAccessException Deletes the URL name mapping entries which match a given filter.- Parameters:
dbc
- the current database contextonline
- if true, changes the online URL name mappings, else the offline URL name mappingsfilter
- the URL name mapping entries to delete- Throws:
CmsDataAccessException
- if something goes wrong
-
destroy
Destroys this driver.- Throws:
Throwable
- if something goes wrong
-
getResourceOus
List<CmsOrganizationalUnit> getResourceOus(CmsDbContext dbc, CmsUUID projectId, CmsResource resource) throws CmsDataAccessException Returns all organizational units for the given resource.- Parameters:
dbc
- the database contextprojectId
- the id of the projectresource
- the resource- Returns:
- a list of
CmsOrganizationalUnit
objects - Throws:
CmsDataAccessException
- if something goes wrong
-
getSqlManager
Returns the SqlManager of this driver.- Returns:
- the SqlManager of this driver
-
incrementCounter
Gets the current value of a counter, creates it if it doesn't already exist, and increments it.- Parameters:
dbc
- the database contextname
- the name of the counter- Returns:
- the counter value before incrementing
- Throws:
CmsDataAccessException
- if something goes wrong
-
initSqlManager
Initializes the SQL manager for this driver.To obtain JDBC connections from different pools, further {online|offline|history} pool Urls have to be specified.
- Parameters:
classname
- the class name of the SQL manager- Returns:
- the SQL manager for this driver
-
insertAlias
void insertAlias(CmsDbContext dbc, CmsProject project, CmsAlias alias) throws CmsDataAccessException Adds an alias to the database.- Parameters:
dbc
- the current database contextproject
- the current projectalias
- the alias to write- Throws:
CmsDataAccessException
- if something goes wrong
-
insertRewriteAliases
void insertRewriteAliases(CmsDbContext dbc, Collection<CmsRewriteAlias> rewriteAliases) throws CmsDataAccessException Adds a list of rewrite aliases.When adding a rewrite alias, make sure that no alias with the same id is present in the database.
- Parameters:
dbc
- the current database contextrewriteAliases
- the rewrite aliases to save- Throws:
CmsDataAccessException
- if something goes wrong
-
moveResource
void moveResource(CmsDbContext dbc, CmsUUID projectId, CmsResource source, String destinationPath) throws CmsDataAccessException Moves the given resource to the specified destination path.- Parameters:
dbc
- the current database contextprojectId
- the Id of the projectsource
- the resource to movedestinationPath
- the root path of the destination resource- Throws:
CmsDataAccessException
- if something goes wrong
-
publishResource
void publishResource(CmsDbContext dbc, CmsProject onlineProject, CmsResource onlineResource, CmsResource offlineResource) throws CmsDataAccessException Publishes the structure and resource records of an offline resource into it's online counterpart.- Parameters:
dbc
- the current database contextonlineProject
- the online projectonlineResource
- the online resourceofflineResource
- the offline resource- Throws:
CmsDataAccessException
- if something goes wrong
-
publishVersions
void publishVersions(CmsDbContext dbc, CmsResource resource, boolean firstSibling) throws CmsDataAccessException Copies the version number from the offline resource to the online resource, this has to be done during publishing, direct after copying the resource itself.- Parameters:
dbc
- the current database contextresource
- the resource that has been publishfirstSibling
- if this is the first sibling to be publish- Throws:
CmsDataAccessException
- if something goes wrong
-
readAliases
List<CmsAlias> readAliases(CmsDbContext dbc, CmsProject project, CmsAliasFilter filter) throws CmsDataAccessException Reads the aliases matching a given filter.- Parameters:
dbc
- the database contextproject
- the current projectfilter
- the alias filter- Returns:
- the list of aliases which were read
- Throws:
CmsDataAccessException
- if something goes wrong
-
readChildResources
List<CmsResource> readChildResources(CmsDbContext dbc, CmsProject currentProject, CmsResource resource, boolean getFolders, boolean getFiles) throws CmsDataAccessException Reads all child-files and/or child-folders of a specified parent resource.- Parameters:
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- Returns:
- a list of all sub folders or sub files
- Throws:
CmsDataAccessException
- if something goes wrong
-
readContent
byte[] readContent(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId) throws CmsDataAccessException Reads the content of a file specified by it's resource ID.- Parameters:
dbc
- the current database contextprojectId
- the ID of the current projectresourceId
- the id of the resource- Returns:
- the file content
- Throws:
CmsDataAccessException
- if something goes wrong
-
readFolder
CmsFolder readFolder(CmsDbContext dbc, CmsUUID projectId, CmsUUID folderId) throws CmsDataAccessException Reads a folder specified by it's structure ID.- Parameters:
dbc
- the current database contextprojectId
- the project in which the resource will be usedfolderId
- the structure id of the folder to be read- Returns:
- the read folder
- Throws:
CmsDataAccessException
- if something goes wrong
-
readFolder
CmsFolder readFolder(CmsDbContext dbc, CmsUUID projectId, String foldername) throws CmsDataAccessException Reads a folder specified by it's resource name.- Parameters:
dbc
- the current database contextprojectId
- the project in which the resource will be usedfoldername
- the name of the folder to be read- Returns:
- the read folder
- Throws:
CmsDataAccessException
- if something goes wrong
-
readParentFolder
CmsFolder readParentFolder(CmsDbContext dbc, CmsUUID projectId, CmsUUID structureId) throws CmsDataAccessException Reads the parent folder of a resource specified by it's structure ID.The parent folder for the root '/' is defined as
null
.- Parameters:
dbc
- the current database contextprojectId
- the project in which the resource will be usedstructureId
- the id of the resource to read the parent folder for- Returns:
- the read folder, or
null
- Throws:
CmsDataAccessException
- if something goes wrong
-
readPropertyDefinition
CmsPropertyDefinition readPropertyDefinition(CmsDbContext dbc, String name, CmsUUID projectId) throws CmsDataAccessException Reads a property definition for the specified resource type.If no property definition with the given name is found,
null
is returned.- Parameters:
dbc
- the current database contextname
- the name of the property definition to readprojectId
- the id of the project- Returns:
- the property definition that was read
- Throws:
CmsDataAccessException
- a CmsDbEntryNotFoundException is thrown if the property definition does not exist
-
readPropertyDefinitions
List<CmsPropertyDefinition> readPropertyDefinitions(CmsDbContext dbc, CmsUUID projectId) throws CmsDataAccessException Reads all property definitions for the specified mapping type.- Parameters:
dbc
- the current database contextprojectId
- the id of the project- Returns:
- a list with the
objects (may be empty)CmsPropertyDefinition
- Throws:
CmsDataAccessException
- if something goes wrong
-
readPropertyObject
CmsProperty readPropertyObject(CmsDbContext dbc, String key, CmsProject project, CmsResource resource) throws CmsDataAccessException Reads a property object from the database specified by it's key name mapped to a resource.The implementation must return
CmsProperty.getNullProperty()
if the property is not found.TODO: change project parameter to project id
- Parameters:
dbc
- the current database contextkey
- the key of the propertyproject
- the current projectresource
- the resource where the property is attached to- Returns:
- a CmsProperty object containing both the structure and resource value of the property
- Throws:
CmsDataAccessException
- if something goes wrong
-
readPropertyObjects
List<CmsProperty> readPropertyObjects(CmsDbContext dbc, CmsProject project, CmsResource resource) throws CmsDataAccessException Reads all property objects mapped to a specified resource from the database.The implementation must return an empty list if no properties are found at all.
TODO: change project parameter to project id
- Parameters:
dbc
- the current database contextproject
- the current projectresource
- the resource where the property is attached to- Returns:
- a list with CmsProperty objects containing both the structure and resource value of the property
- Throws:
CmsDataAccessException
- if something goes wrong
-
readRelations
List<CmsRelation> readRelations(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, CmsRelationFilter filter) throws CmsDataAccessException Reads all relations with the given filter for the given resource.- Parameters:
dbc
- the current database contextprojectId
- the id of the project to execute the query inresource
- the resource to read the relations for, may benull
for allfilter
- the filter to restrict the relations to retrieve- Returns:
- the read relations
- Throws:
CmsDataAccessException
- if something goes wrong
-
readResource
CmsResource readResource(CmsDbContext dbc, CmsUUID projectId, CmsUUID structureId, boolean includeDeleted) throws CmsDataAccessException Reads a resource specified by it's structure ID.- Parameters:
dbc
- the current database contextprojectId
- the Id of the projectstructureId
- the Id of the resourceincludeDeleted
- true if already deleted files are included- Returns:
- the resource that was read
- Throws:
CmsDataAccessException
- if something goes wrong
-
readResource
CmsResource readResource(CmsDbContext dbc, CmsUUID projectId, String filename, boolean includeDeleted) throws CmsDataAccessException Reads a resource specified by it's resource name.- Parameters:
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- Returns:
- the resource that was read
- Throws:
CmsDataAccessException
- if something goes wrong
-
readResources
List<CmsResource> readResources(CmsDbContext dbc, CmsUUID currentProject, CmsResourceState state, int mode) throws CmsDataAccessException Reads all resources inside a given project and with a given state.- Parameters:
dbc
- the current database contextcurrentProject
- the current projectstate
- the state to matchmode
- flag signaling the read mode- Returns:
- a list with all resources that where read
- Throws:
CmsDataAccessException
- if something goes wrong
-
readResourcesForPrincipalACE
List<CmsResource> readResourcesForPrincipalACE(CmsDbContext dbc, CmsProject project, CmsUUID principalId) throws CmsDataAccessException Returns all resources associated to a given principal via an ACE.- Parameters:
dbc
- the current database contextproject
- the to read the entries fromprincipalId
- the id of the principal- Returns:
- a list of
objectsCmsResource
- Throws:
CmsDataAccessException
- if something goes wrong
-
readResourcesForPrincipalAttr
List<CmsResource> readResourcesForPrincipalAttr(CmsDbContext dbc, CmsProject project, CmsUUID principalId) throws CmsDataAccessException Returns all resources associated to a given principal through some of following attributes.- User Created
- User Last Modified
- Parameters:
dbc
- the current database contextproject
- the to read the entries fromprincipalId
- the id of the principal- Returns:
- a list of
objectsCmsResource
- Throws:
CmsDataAccessException
- if something goes wrong
-
readResourcesWithProperty
List<CmsResource> readResourcesWithProperty(CmsDbContext dbc, CmsUUID projectId, CmsUUID propertyDefinition, String path, String value) throws CmsDataAccessException Reads all resources that have a value (containing the specified value) set for the specified property (definition), in the given path.Both individual and shared properties of a resource are checked.
If the
value
parameter isnull
, all resources having the given property set are returned.- Parameters:
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- Returns:
- a list of all
objects that have a value set for the specified property.CmsResource
- Throws:
CmsDataAccessException
- if something goes wrong
-
readResourceTree
List<CmsResource> readResourceTree(CmsDbContext dbc, CmsUUID projectId, String parent, int type, CmsResourceState state, long startTime, long endTime, long releasedAfter, long releasedBefore, long expiredAfter, long expiredBefore, int mode) throws CmsDataAccessException Reads all resources inside a given project matching the criteria specified by parameter values.Important: If
CmsDriverManager.READMODE_EXCLUDE_TREE
is true (orCmsDriverManager.READMODE_INCLUDE_TREE
is false), the provided parent String must be the UUID of the parent folder, NOT the parent folder path.- Parameters:
dbc
- the current database contextprojectId
- the project id for matching resourcesparent
- the path to the resource used as root of the searched subtree orCmsDriverManager.READ_IGNORE_PARENT
,CmsDriverManager.READMODE_EXCLUDE_TREE
means to read immediate children onlytype
- the resource type of matching resources orCmsDriverManager.READ_IGNORE_TYPE
(meaning inverted byCmsDriverManager.READMODE_EXCLUDE_TYPE
state
- the state of matching resources (meaning inverted byCmsDriverManager.READMODE_EXCLUDE_STATE
ornull
to ignorestartTime
- 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:- Returns:
- a list of CmsResource objects matching the given criteria
- Throws:
CmsDataAccessException
- if something goes wrong
-
readRewriteAliases
List<CmsRewriteAlias> readRewriteAliases(CmsDbContext dbc, CmsRewriteAliasFilter filter) throws CmsDataAccessException Reads the rewrite aliases matching a given filter.- Parameters:
dbc
- the current database contextfilter
- the filter describing which rewrite aliases should be returned- Returns:
- the rewrite aliases which were found
- Throws:
CmsDataAccessException
- if something goes wrong
-
readSiblings
List<CmsResource> readSiblings(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, boolean includeDeleted) throws CmsDataAccessException Reads all siblings that point to the resource record of a specified resource.- Parameters:
dbc
- the current database contextprojectId
- the id of the current projectresource
- the specified resourceincludeDeleted
-true
if deleted siblings should be included in the result list- Returns:
- a list of
s that are siblings to the specified resource, including the specified resource itself.CmsResource
- Throws:
CmsDataAccessException
- if something goes wrong
-
readUrlNameMappingEntries
List<CmsUrlNameMappingEntry> readUrlNameMappingEntries(CmsDbContext dbc, boolean online, CmsUrlNameMappingFilter filter) throws CmsDataAccessException Reads the URL name mapping entries which match a given filter.- Parameters:
dbc
- the database contextonline
- if true, reads from the online mapping, else from the offline mappingfilter
- the filter which the entries to be read should match- Returns:
- the mapping entries which match the given filter
- Throws:
CmsDataAccessException
- if something goes wrong
-
readVersions
Map<String,Integer> readVersions(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId, CmsUUID structureId) throws CmsDataAccessException Reads a resource version numbers.- Parameters:
dbc
- the current database contextprojectId
- the project to read the versions fromresourceId
- the resource id of the resource to read the versions fromstructureId
- the structure id of the resource to read the versions from- Returns:
- a map with two entries with keys "structure" and "resource" for the
structure and resource version number respectively, the values are
Integer
objects and may be-1
if an entry could be found - Throws:
CmsDataAccessException
- if something goes wrong
-
removeFile
void removeFile(CmsDbContext dbc, CmsUUID projectId, CmsResource resource) throws CmsDataAccessException Removes a file physically in the database.- Parameters:
dbc
- the current database contextprojectId
- the id of the current projectresource
- the resource- Throws:
CmsDataAccessException
- if something goes wrong
-
removeFolder
void removeFolder(CmsDbContext dbc, CmsProject currentProject, CmsResource resource) throws CmsDataAccessException Removes a folder physically in the database.- Parameters:
dbc
- the current database contextcurrentProject
- the current projectresource
- the folder- Throws:
CmsDataAccessException
- if something goes wrong
-
replaceResource
void replaceResource(CmsDbContext dbc, CmsResource newResource, byte[] newResourceContent, int newResourceType) throws CmsDataAccessException Replaces the content and properties of an existing resource.- Parameters:
dbc
- the current database contextnewResource
- the new resourcenewResourceContent
- the new contentnewResourceType
- the resource type- Throws:
CmsDataAccessException
- if something goes wrong
-
setDriverManager
Sets the driver manager for this driver if possible.- Parameters:
driverManager
- the new driver manager
-
setSqlManager
Sets the SQL manager for this driver if possible.- Parameters:
sqlManager
- the new SQL manager
-
transferResource
void transferResource(CmsDbContext dbc, CmsProject project, CmsResource resource, CmsUUID createdUser, CmsUUID lastModifiedUser) throws CmsDataAccessException Transfers the attributes of a resource from to the given users.- Parameters:
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 last modificator of the resource- Throws:
CmsDataAccessException
- if something goes wrong
-
updateRelations
void updateRelations(CmsDbContext dbc, CmsProject onlineProject, CmsResource offlineResource) throws CmsDataAccessException Updates the relations on the online project copying the relations from the offline project.TODO: add offlineProject parameter
- Parameters:
dbc
- the current database contextonlineProject
- the online projectofflineResource
- the resource to update the relations for- Throws:
CmsDataAccessException
- is something goes wrong
-
validateResourceIdExists
boolean validateResourceIdExists(CmsDbContext dbc, CmsUUID projectId, CmsUUID resourceId) throws CmsDataAccessException Validates if the specified resource ID in the tables of the specified project {offline|online} exists.- Parameters:
dbc
- the current database contextprojectId
- the project idresourceId
- the resource id to test for- Returns:
- true if a resource with the given id was found, false otherwise
- Throws:
CmsDataAccessException
- if something goes wrong
-
validateStructureIdExists
boolean validateStructureIdExists(CmsDbContext dbc, CmsUUID projectId, CmsUUID structureId) throws CmsDataAccessException Validates if the specified structure ID in the tables of the specified project {offline|online} exists.- Parameters:
dbc
- the current database contextprojectId
- the ID of current projectstructureId
- the structure id- Returns:
- true, if the specified structure ID in the tables of the specified project {offline|online} exists
- Throws:
CmsDataAccessException
- if something goes wrong
-
writeContent
void writeContent(CmsDbContext dbc, CmsUUID resourceId, byte[] content) throws CmsDataAccessException Writes the resource content with the specified resource id.- Parameters:
dbc
- the current database contextresourceId
- the id of the resource used to identify the content to updatecontent
- the new content of the file- Throws:
CmsDataAccessException
- if something goes wrong
-
writeLastModifiedProjectId
void writeLastModifiedProjectId(CmsDbContext dbc, CmsProject project, CmsUUID projectId, CmsResource resource) throws CmsDataAccessException Writes the "last-modified-in-project" ID of a resource.- Parameters:
dbc
- the current database contextproject
- the resource record is updated with the ID of this projectprojectId
- the project id to write into the resourceresource
- the resource that gets updated- Throws:
CmsDataAccessException
- if something goes wrong
-
writePropertyObject
void writePropertyObject(CmsDbContext dbc, CmsProject project, CmsResource resource, CmsProperty property) throws CmsDataAccessException Writes a property object to the database mapped to a specified resource.- Parameters:
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- Throws:
CmsDataAccessException
- if something goes wrong
-
writePropertyObjects
void writePropertyObjects(CmsDbContext dbc, CmsProject project, CmsResource resource, List<CmsProperty> properties) throws CmsDataAccessException Writes a list of property objects to the database mapped to a specified resource.- Parameters:
dbc
- the current database contextproject
- the current projectresource
- the resource where the property should be attached toproperties
- a list of CmsProperty objects- Throws:
CmsDataAccessException
- if something goes wrong
-
writeResource
void writeResource(CmsDbContext dbc, CmsUUID projectId, CmsResource resource, int changed) throws CmsDataAccessException Writes the structure and/or resource record(s) of an existing file.Common usages of this method are saving the resource information after creating, importing or restoring complete files where all file header attributes 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, boolean)
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 < deletedSecond, 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.
- Parameters:
dbc
- the current database contextprojectId
- the id of the current projectresource
- the resource to be updatedchanged
- determines whether the structure or resource state, or none of them, is set to "changed"- Throws:
CmsDataAccessException
- if something goes wrong- See Also:
-
writeResourceState
void writeResourceState(CmsDbContext dbc, CmsProject project, CmsResource resource, int changed, boolean isPublishing) throws CmsDataAccessException Writes file state in either the structure or resource record, or both of them.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 attributes. get updated here. Use
writeResource(CmsDbContext, CmsUUID, CmsResource, int)
instead to write the complete file header.Please refer to the javadoc of
writeResource(CmsDbContext, CmsUUID, CmsResource, int)
to read how setting resource state values affects the file state.- Parameters:
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"isPublishing
- if this method is called during publishing to version numbers are updated- Throws:
CmsDataAccessException
- if something goes wrong- See Also:
-