org.opencms.db.generic
Class CmsProjectDriver

java.lang.Object
  extended byorg.opencms.db.generic.CmsProjectDriver
All Implemented Interfaces:
I_CmsDriver, I_CmsProjectDriver
Direct Known Subclasses:
CmsProjectDriver, CmsProjectDriver, CmsProjectDriver, CmsProjectDriver, CmsProjectDriver

public class CmsProjectDriver
extends java.lang.Object
implements I_CmsDriver, I_CmsProjectDriver

Generic (ANSI-SQL) implementation of the project driver methods.

Since:
6.0.0
Version:
$Revision: 1.241 $
Author:
Thomas Weckert, Carsten Weinholz

Field Summary
protected  CmsDriverManager m_driverManager
          The driver manager.
protected  int[] m_maxIds
          Array containing all max-ids for the tables.
protected  CmsSqlManager m_sqlManager
          The SQL manager.
protected static java.lang.String TABLE_PROJECTS
          Table key for projects.
 
Fields inherited from interface org.opencms.db.I_CmsProjectDriver
DRIVER_TYPE_ID, TEMP_FILE_PROJECT_NAME
 
Constructor Summary
CmsProjectDriver()
           
 
Method Summary
 CmsProject createProject(CmsDbContext dbc, CmsUser owner, CmsGroup group, CmsGroup managergroup, CmsTask task, java.lang.String name, java.lang.String description, int flags, int type, java.lang.Object reservedParam)
          Creates a new project.
 void createProjectResource(CmsDbContext dbc, int projectId, java.lang.String resourcePath, java.lang.Object reservedParam)
          Creates a new projectResource from a given CmsResource object.
 void deleteAllStaticExportPublishedResources(CmsDbContext dbc, CmsProject currentProject, int linkType)
          Deletes all entries in the published resource table.
 void deleteProject(CmsDbContext dbc, CmsProject project)
          Deletes a project from the cms.
 void deleteProjectResource(CmsDbContext dbc, int projectId, java.lang.String resourceName)
          Delete a projectResource from an given CmsResource object.
 void deleteProjectResources(CmsDbContext dbc, CmsProject project)
          Deletes a specified project.
 void deletePublishHistory(CmsDbContext dbc, int projectId, int maxBackupTagId)
          Deletes all publish history entries with backup tag IDs >=0 and < the specified max. backup tag ID.
 void deletePublishHistoryEntry(CmsDbContext dbc, int projectId, CmsUUID publishHistoryId, CmsPublishedResource publishedResource)
          Deletes a publish history entry with backup tag IDs >=0 and < the specified max. backup tag ID.
 void deleteStaticExportPublishedResource(CmsDbContext dbc, CmsProject currentProject, java.lang.String resourceName, int linkType, java.lang.String linkParameter)
          Deletes an entry in the published resource table.
 void destroy()
          Destroys this driver.
 void fillDefaults(CmsDbContext dbc)
          Fills the OpenCms database tables with default values.
protected  void finalize()
           
 CmsSqlManager getSqlManager()
          Returns the SqlManager of this driver.
 void init(CmsDbContext dbc, CmsConfigurationManager configurationManager, java.util.List successiveDrivers, CmsDriverManager driverManager)
          Initializes the driver.
 CmsSqlManager initSqlManager(java.lang.String classname)
          Initializes the SQL manager for this driver.
protected  void internalResetResourceState(CmsDbContext dbc, CmsResource resource)
          Resets the state to UNCHANGED and the last-modified-in-project-ID to the current project for a specified resource.
 void publishDeletedFolder(CmsDbContext dbc, I_CmsReport report, int m, int n, CmsProject onlineProject, CmsFolder currentFolder, boolean backupEnabled, long publishDate, CmsUUID publishHistoryId, int backupTagId, int maxVersions)
          Publishes a deleted folder.
 void publishFile(CmsDbContext dbc, I_CmsReport report, int m, int n, CmsProject onlineProject, CmsResource offlineResource, java.util.Set publishedContentIds, boolean backupEnabled, long publishDate, CmsUUID publishHistoryId, int backupTagId, int maxVersions)
          Publishes a new, changed or deleted file.
 CmsFile publishFileContent(CmsDbContext dbc, CmsProject offlineProject, CmsProject onlineProject, CmsResource offlineResource, java.util.Set publishedResourceIds)
          Publishes the content record of a file.
 void publishFolder(CmsDbContext dbc, I_CmsReport report, int m, int n, CmsProject onlineProject, CmsFolder offlineFolder, boolean backupEnabled, long publishDate, CmsUUID publishHistoryId, int backupTagId, int maxVersions)
          Publishes a new or changed folder.
 void publishProject(CmsDbContext dbc, I_CmsReport report, CmsProject onlineProject, CmsPublishList publishList, boolean backupEnabled, int backupTagId, int maxVersions)
          Publishes a specified project to the online project.
 CmsProject readProject(CmsDbContext dbc, int id)
          Reads a project given the projects id.
 CmsProject readProject(CmsDbContext dbc, java.lang.String name)
          Reads a project.
 java.lang.String readProjectResource(CmsDbContext dbc, int projectId, java.lang.String resourcePath, java.lang.Object reservedParam)
          Reads the project resource path for a given project and resource path, to validate if a resource path for a given project already exists.
 java.util.List readProjectResources(CmsDbContext dbc, CmsProject project)
          Reads the project resources for a specified project.
 java.util.List readProjects(CmsDbContext dbc, int state)
          Returns all projects with the given state.
 java.util.List readProjectsForGroup(CmsDbContext dbc, CmsGroup group)
          Returns all projects, which are accessible by a group.
 java.util.List readProjectsForManagerGroup(CmsDbContext dbc, CmsGroup group)
          Returns all projects, which are manageable by a group.
 java.util.List readProjectsForUser(CmsDbContext dbc, CmsUser user)
          Reads all projects which are owned by a specified user.
 java.util.List readProjectView(CmsDbContext dbc, int project, java.lang.String filter)
          Reads all resources that build the "view" of a project.
 java.util.List readPublishedResources(CmsDbContext dbc, int projectId, CmsUUID publishHistoryId)
          Reads the resources that were published during a publish process for a given publish history ID.
 java.lang.String readStaticExportPublishedResourceParameters(CmsDbContext dbc, CmsProject currentProject, java.lang.String rfsName)
          Returns the parameters of a resource in the table of all published template resources.
 java.util.List readStaticExportResources(CmsDbContext dbc, CmsProject currentProject, int parameterResources, long timestamp)
          Returns a list of all template resources which must be processed during a static export.
 void unmarkProjectResources(CmsDbContext dbc, CmsProject project)
          Removes the project id from all resources within a project.
 void writeProject(CmsDbContext dbc, CmsProject project)
          Writes an already existing project.
 void writePublishHistory(CmsDbContext dbc, CmsProject currentProject, CmsUUID publishId, CmsPublishedResource resource)
          Inserts an entry in the publish history for a published VFS resource.
 void writeStaticExportPublishedResource(CmsDbContext dbc, CmsProject currentProject, java.lang.String resourceName, int linkType, java.lang.String linkParameter, long timestamp)
          Inserts an entry in the published resource table.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.opencms.db.I_CmsDriver
toString
 

Field Detail

TABLE_PROJECTS

protected static final java.lang.String TABLE_PROJECTS
Table key for projects.

See Also:
Constant Field Values

m_driverManager

protected CmsDriverManager m_driverManager
The driver manager.


m_maxIds

protected int[] m_maxIds
Array containing all max-ids for the tables.


m_sqlManager

protected CmsSqlManager m_sqlManager
The SQL manager.

Constructor Detail

CmsProjectDriver

public CmsProjectDriver()
Method Detail

createProject

public CmsProject createProject(CmsDbContext dbc,
                                CmsUser owner,
                                CmsGroup group,
                                CmsGroup managergroup,
                                CmsTask task,
                                java.lang.String name,
                                java.lang.String description,
                                int flags,
                                int type,
                                java.lang.Object reservedParam)
                         throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Creates a new project.

Specified by:
createProject in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
owner - the owner of the project
group - the group for the project
managergroup - the managergroup for the project
task - the base workflow task for the project
name - the name of the project to create
description - the description for the project
flags - the flags for the project
type - the type for the project
reservedParam - reserved optional parameter, should be null on standard OpenCms installations
Returns:
the created CmsProject instance
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.createProject(org.opencms.db.CmsDbContext, org.opencms.file.CmsUser, org.opencms.file.CmsGroup, org.opencms.file.CmsGroup, org.opencms.workflow.CmsTask, java.lang.String, java.lang.String, int, int, java.lang.Object)

createProjectResource

public void createProjectResource(CmsDbContext dbc,
                                  int projectId,
                                  java.lang.String resourcePath,
                                  java.lang.Object reservedParam)
                           throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Creates a new projectResource from a given CmsResource object.

Specified by:
createProjectResource in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
projectId - The project in which the resource will be used
resourcePath - The resource to be written to the Cms
reservedParam - reserved optional parameter, should be null on standard OpenCms installations
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.createProjectResource(org.opencms.db.CmsDbContext, int, java.lang.String, java.lang.Object)

deleteAllStaticExportPublishedResources

public void deleteAllStaticExportPublishedResources(CmsDbContext dbc,
                                                    CmsProject currentProject,
                                                    int linkType)
                                             throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Deletes all entries in the published resource table.

Specified by:
deleteAllStaticExportPublishedResources in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
currentProject - the current project
linkType - the type of resource deleted (0= non-paramter, 1=parameter)
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.deleteAllStaticExportPublishedResources(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, int)

deleteProject

public void deleteProject(CmsDbContext dbc,
                          CmsProject project)
                   throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Deletes a project from the cms.

Therefore it deletes all files, resources and properties.

Specified by:
deleteProject in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
project - the project to delete
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.deleteProject(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject)

deleteProjectResource

public void deleteProjectResource(CmsDbContext dbc,
                                  int projectId,
                                  java.lang.String resourceName)
                           throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Delete a projectResource from an given CmsResource object.

Specified by:
deleteProjectResource in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
projectId - id of the project in which the resource is used
resourceName - name of the resource to be deleted from the Cms
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.deleteProjectResource(org.opencms.db.CmsDbContext, int, java.lang.String)

deleteProjectResources

public void deleteProjectResources(CmsDbContext dbc,
                                   CmsProject project)
                            throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Deletes a specified project.

Specified by:
deleteProjectResources in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
project - the project to be deleted
Throws:
CmsDataAccessException - if operation was not succesful
See Also:
I_CmsProjectDriver.deleteProjectResources(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject)

deletePublishHistory

public void deletePublishHistory(CmsDbContext dbc,
                                 int projectId,
                                 int maxBackupTagId)
                          throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Deletes all publish history entries with backup tag IDs >=0 and < the specified max. backup tag ID.

Specified by:
deletePublishHistory in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
projectId - the ID of the current project
maxBackupTagId - entries with backup tag IDs >=0 and < this max. backup tag ID get deleted
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.deletePublishHistory(org.opencms.db.CmsDbContext, int, int)

deletePublishHistoryEntry

public void deletePublishHistoryEntry(CmsDbContext dbc,
                                      int projectId,
                                      CmsUUID publishHistoryId,
                                      CmsPublishedResource publishedResource)
                               throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Deletes a publish history entry with backup tag IDs >=0 and < the specified max. backup tag ID.

Specified by:
deletePublishHistoryEntry in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
projectId - the ID of the current project
publishHistoryId - the id of the history to delete the entry from
publishedResource - the entry to delete
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.deletePublishHistoryEntry(org.opencms.db.CmsDbContext, int, org.opencms.util.CmsUUID, org.opencms.db.CmsPublishedResource)

deleteStaticExportPublishedResource

public void deleteStaticExportPublishedResource(CmsDbContext dbc,
                                                CmsProject currentProject,
                                                java.lang.String resourceName,
                                                int linkType,
                                                java.lang.String linkParameter)
                                         throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Deletes an entry in the published resource table.

Specified by:
deleteStaticExportPublishedResource in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
currentProject - the current project
resourceName - The name of the resource to be deleted in the static export
linkType - the type of resource deleted (0= non-paramter, 1=parameter)
linkParameter - the parameters of the resource
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.deleteStaticExportPublishedResource(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, java.lang.String, int, java.lang.String)

destroy

public void destroy()
             throws java.lang.Throwable
Description copied from interface: I_CmsProjectDriver
Destroys this driver.

Specified by:
destroy in interface I_CmsProjectDriver
Throws:
java.lang.Throwable - if something goes wrong
See Also:
I_CmsProjectDriver.destroy()

fillDefaults

public void fillDefaults(CmsDbContext dbc)
                  throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Fills the OpenCms database tables with default values.

Specified by:
fillDefaults in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.fillDefaults(org.opencms.db.CmsDbContext)

getSqlManager

public CmsSqlManager getSqlManager()
Description copied from interface: I_CmsProjectDriver
Returns the SqlManager of this driver.

Specified by:
getSqlManager in interface I_CmsProjectDriver
Returns:
the SqlManager of this driver
See Also:
I_CmsProjectDriver.getSqlManager()

init

public void init(CmsDbContext dbc,
                 CmsConfigurationManager configurationManager,
                 java.util.List successiveDrivers,
                 CmsDriverManager driverManager)
Description copied from interface: I_CmsDriver
Initializes the driver.

Specified by:
init in interface I_CmsDriver
Parameters:
dbc - the current database context
configurationManager - the configuration manager
successiveDrivers - a list of successive drivers to be initialized
driverManager - the initialized OpenCms driver manager
See Also:
I_CmsDriver.init(org.opencms.db.CmsDbContext, org.opencms.configuration.CmsConfigurationManager, java.util.List, org.opencms.db.CmsDriverManager)

initSqlManager

public CmsSqlManager initSqlManager(java.lang.String classname)
Description copied from interface: I_CmsProjectDriver
Initializes the SQL manager for this driver.

To obtain JDBC connections from different pools, further {online|offline|backup} pool Urls have to be specified.

Specified by:
initSqlManager in interface I_CmsProjectDriver
Parameters:
classname - the classname of the SQL manager
Returns:
the SQL manager for this driver
See Also:
I_CmsProjectDriver.initSqlManager(String)

publishDeletedFolder

public void publishDeletedFolder(CmsDbContext dbc,
                                 I_CmsReport report,
                                 int m,
                                 int n,
                                 CmsProject onlineProject,
                                 CmsFolder currentFolder,
                                 boolean backupEnabled,
                                 long publishDate,
                                 CmsUUID publishHistoryId,
                                 int backupTagId,
                                 int maxVersions)
                          throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Publishes a deleted folder.

Specified by:
publishDeletedFolder in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
report - the report to log the output to
m - the number of the folder to publish
n - the number of all folders to publish
onlineProject - the online project
currentFolder - the offline folder to publish
backupEnabled - flag if backup is enabled
publishDate - the publishing date
publishHistoryId - the publish history id
backupTagId - the backup tag id
maxVersions - the maxmum number of backup versions for each resource
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.publishDeletedFolder(org.opencms.db.CmsDbContext, org.opencms.report.I_CmsReport, int, int, org.opencms.file.CmsProject, org.opencms.file.CmsFolder, boolean, long, org.opencms.util.CmsUUID, int, int)

publishFile

public void publishFile(CmsDbContext dbc,
                        I_CmsReport report,
                        int m,
                        int n,
                        CmsProject onlineProject,
                        CmsResource offlineResource,
                        java.util.Set publishedContentIds,
                        boolean backupEnabled,
                        long publishDate,
                        CmsUUID publishHistoryId,
                        int backupTagId,
                        int maxVersions)
                 throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Publishes a new, changed or deleted file.

Specified by:
publishFile in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
report - the report to log the output to
m - the number of the file to publish
n - the number of all files to publish
onlineProject - the online project
offlineResource - the offline file to publish
publishedContentIds - contains the UUIDs of already published content records
backupEnabled - flag if backup is enabled
publishDate - the publishing date
publishHistoryId - the publish history id
backupTagId - the backup tag id
maxVersions - the maxmum number of backup versions for each resource
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.publishFile(org.opencms.db.CmsDbContext, org.opencms.report.I_CmsReport, int, int, org.opencms.file.CmsProject, org.opencms.file.CmsResource, java.util.Set, boolean, long, org.opencms.util.CmsUUID, int, int)

publishFileContent

public CmsFile publishFileContent(CmsDbContext dbc,
                                  CmsProject offlineProject,
                                  CmsProject onlineProject,
                                  CmsResource offlineResource,
                                  java.util.Set publishedResourceIds)
                           throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Publishes the content record of a file.

The content record is only published unless it's UUID is not contained in publishedContentIds. The calling method has to take care about whether an existing content record has to be deleted before or not.

The intention of this method is to get overloaded in a project driver for a specific DB server to shift the binary content from the offline into the online table in a more sophisticated way than in the generic ANSI-SQL implementation of this interface.

Specified by:
publishFileContent in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
offlineProject - the offline project to read data
onlineProject - the online project to write data
offlineResource - the offline header of the file of which the content gets published
publishedResourceIds - a Set with the UUIDs of the already published content records
Returns:
the published file (online)
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.publishFileContent(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, org.opencms.file.CmsProject, org.opencms.file.CmsResource, java.util.Set)

publishFolder

public void publishFolder(CmsDbContext dbc,
                          I_CmsReport report,
                          int m,
                          int n,
                          CmsProject onlineProject,
                          CmsFolder offlineFolder,
                          boolean backupEnabled,
                          long publishDate,
                          CmsUUID publishHistoryId,
                          int backupTagId,
                          int maxVersions)
                   throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Publishes a new or changed folder.

Specified by:
publishFolder in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
report - the report to log the output to
m - the number of the folder to publish
n - the number of all folders to publish
onlineProject - the online project
offlineFolder - the offline folder to publish
backupEnabled - flag if backup is enabled
publishDate - the publishing date
publishHistoryId - the publish history id
backupTagId - the backup tag id
maxVersions - the maxmum number of backup versions for each resource
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.publishFolder(org.opencms.db.CmsDbContext, org.opencms.report.I_CmsReport, int, int, org.opencms.file.CmsProject, org.opencms.file.CmsFolder, boolean, long, org.opencms.util.CmsUUID, int, int)

publishProject

public void publishProject(CmsDbContext dbc,
                           I_CmsReport report,
                           CmsProject onlineProject,
                           CmsPublishList publishList,
                           boolean backupEnabled,
                           int backupTagId,
                           int maxVersions)
                    throws CmsException
Description copied from interface: I_CmsProjectDriver
Publishes a specified project to the online project.

Specified by:
publishProject in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
report - an I_CmsReport instance to print output messages
onlineProject - the online project
publishList - a Cms publish list
backupEnabled - true if published resources should be written to the Cms backup
backupTagId - the backup tag ID
maxVersions - maximum number of backup versions
Throws:
CmsException - if something goes wrong
See Also:
I_CmsProjectDriver.publishProject(org.opencms.db.CmsDbContext, org.opencms.report.I_CmsReport, org.opencms.file.CmsProject, org.opencms.db.CmsPublishList, boolean, int, int)

readProject

public CmsProject readProject(CmsDbContext dbc,
                              int id)
                       throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Reads a project given the projects id.

Specified by:
readProject in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
id - the id of the project
Returns:
the project read
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readProject(org.opencms.db.CmsDbContext, int)

readProject

public CmsProject readProject(CmsDbContext dbc,
                              java.lang.String name)
                       throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Reads a project.

Specified by:
readProject in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
name - the name of the project
Returns:
the project with the given name
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readProject(org.opencms.db.CmsDbContext, java.lang.String)

readProjectResource

public java.lang.String readProjectResource(CmsDbContext dbc,
                                            int projectId,
                                            java.lang.String resourcePath,
                                            java.lang.Object reservedParam)
                                     throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Reads the project resource path for a given project and resource path, to validate if a resource path for a given project already exists.

Specified by:
readProjectResource in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
projectId - the ID of the project for which the resource path is read
resourcePath - the project's resource path
reservedParam - reserved optional parameter, should be null on standard OpenCms installations
Returns:
String the project's resource path
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readProjectResource(org.opencms.db.CmsDbContext, int, java.lang.String, java.lang.Object)

readProjectResources

public java.util.List readProjectResources(CmsDbContext dbc,
                                           CmsProject project)
                                    throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Reads the project resources for a specified project.

Specified by:
readProjectResources in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
project - the project for which the resource path is read
Returns:
a list of all project resource paths
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readProjectResources(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject)

readProjects

public java.util.List readProjects(CmsDbContext dbc,
                                   int state)
                            throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Returns all projects with the given state.

Specified by:
readProjects in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
state - the requested project state
Returns:
a list of objects of type CmsProject
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readProjects(org.opencms.db.CmsDbContext, int)

readProjectsForGroup

public java.util.List readProjectsForGroup(CmsDbContext dbc,
                                           CmsGroup group)
                                    throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Returns all projects, which are accessible by a group.

Specified by:
readProjectsForGroup in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
group - the requesting group
Returns:
a Vector of projects
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readProjectsForGroup(org.opencms.db.CmsDbContext, org.opencms.file.CmsGroup)

readProjectsForManagerGroup

public java.util.List readProjectsForManagerGroup(CmsDbContext dbc,
                                                  CmsGroup group)
                                           throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Returns all projects, which are manageable by a group.

Specified by:
readProjectsForManagerGroup in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
group - The requesting group
Returns:
a Vector of projects
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readProjectsForManagerGroup(org.opencms.db.CmsDbContext, org.opencms.file.CmsGroup)

readProjectsForUser

public java.util.List readProjectsForUser(CmsDbContext dbc,
                                          CmsUser user)
                                   throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Reads all projects which are owned by a specified user.

Specified by:
readProjectsForUser in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
user - the user
Returns:
a list of objects of type CmsProject
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readProjectsForUser(org.opencms.db.CmsDbContext, org.opencms.file.CmsUser)

readProjectView

public java.util.List readProjectView(CmsDbContext dbc,
                                      int project,
                                      java.lang.String filter)
                               throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Reads all resources that build the "view" of a project.

Specified by:
readProjectView in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
project - the id of the project in which the resource will be used
filter - the filter for the resources to read
Returns:
a List of resources
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readProjectView(org.opencms.db.CmsDbContext, int, java.lang.String)

readPublishedResources

public java.util.List readPublishedResources(CmsDbContext dbc,
                                             int projectId,
                                             CmsUUID publishHistoryId)
                                      throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Reads the resources that were published during a publish process for a given publish history ID.

Specified by:
readPublishedResources in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
projectId - the ID of the current project
publishHistoryId - unique int ID to identify the publish process in the publish history
Returns:
a list of CmsPublishedResource objects
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readPublishedResources(org.opencms.db.CmsDbContext, int, org.opencms.util.CmsUUID)

readStaticExportPublishedResourceParameters

public java.lang.String readStaticExportPublishedResourceParameters(CmsDbContext dbc,
                                                                    CmsProject currentProject,
                                                                    java.lang.String rfsName)
                                                             throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Returns the parameters of a resource in the table of all published template resources.

Specified by:
readStaticExportPublishedResourceParameters in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
currentProject - the current project
rfsName - the rfs name of the resource
Returns:
the paramter string of the requested resource
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readStaticExportPublishedResourceParameters(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, java.lang.String)

readStaticExportResources

public java.util.List readStaticExportResources(CmsDbContext dbc,
                                                CmsProject currentProject,
                                                int parameterResources,
                                                long timestamp)
                                         throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Returns a list of all template resources which must be processed during a static export.

Specified by:
readStaticExportResources in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
currentProject - the current project
parameterResources - flag for reading resources with parameters (1) or without (0)
timestamp - the timestamp information
Returns:
a list of template resources as String objects
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.readStaticExportResources(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, int, long)

unmarkProjectResources

public void unmarkProjectResources(CmsDbContext dbc,
                                   CmsProject project)
                            throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Removes the project id from all resources within a project.

This must be done when a project will deleted

Specified by:
unmarkProjectResources in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
project - the project to delete
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.unmarkProjectResources(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject)

writeProject

public void writeProject(CmsDbContext dbc,
                         CmsProject project)
                  throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Writes an already existing project.

The project id has to be a valid OpenCms project id.
The project with the given id will be completely overriden by the given data.

Specified by:
writeProject in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
project - the project that should be written
Throws:
CmsDataAccessException - if operation was not successful
See Also:
I_CmsProjectDriver.writeProject(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject)

writePublishHistory

public void writePublishHistory(CmsDbContext dbc,
                                CmsProject currentProject,
                                CmsUUID publishId,
                                CmsPublishedResource resource)
                         throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Inserts an entry in the publish history for a published VFS resource.

Specified by:
writePublishHistory in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
currentProject - the current project
publishId - the ID of the current publishing process
resource - the state of the resource *before* it was published
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.writePublishHistory(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, org.opencms.util.CmsUUID, org.opencms.db.CmsPublishedResource)

writeStaticExportPublishedResource

public void writeStaticExportPublishedResource(CmsDbContext dbc,
                                               CmsProject currentProject,
                                               java.lang.String resourceName,
                                               int linkType,
                                               java.lang.String linkParameter,
                                               long timestamp)
                                        throws CmsDataAccessException
Description copied from interface: I_CmsProjectDriver
Inserts an entry in the published resource table.

This is done during static export.

Specified by:
writeStaticExportPublishedResource in interface I_CmsProjectDriver
Parameters:
dbc - the current database context
currentProject - the current project
resourceName - The name of the resource to be added to the static export
linkType - the type of resource exported (0= non-paramter, 1=parameter)
linkParameter - the parameters added to the resource
timestamp - a timestamp for writing the data into the db
Throws:
CmsDataAccessException - if something goes wrong
See Also:
I_CmsProjectDriver.writeStaticExportPublishedResource(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, java.lang.String, int, java.lang.String, long)

finalize

protected void finalize()
                 throws java.lang.Throwable
Throws:
java.lang.Throwable
See Also:
Object.finalize()

internalResetResourceState

protected void internalResetResourceState(CmsDbContext dbc,
                                          CmsResource resource)
                                   throws CmsDataAccessException
Resets the state to UNCHANGED and the last-modified-in-project-ID to the current project for a specified resource.

Parameters:
dbc - the current database context
resource - the Cms resource
Throws:
CmsDataAccessException - if something goes wrong