001/* 002 * This library is part of OpenCms - 003 * the Open Source Content Management System 004 * 005 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com) 006 * 007 * This library is free software; you can redistribute it and/or 008 * modify it under the terms of the GNU Lesser General Public 009 * License as published by the Free Software Foundation; either 010 * version 2.1 of the License, or (at your option) any later version. 011 * 012 * This library is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * For further information about Alkacon Software GmbH & Co. KG, please see the 018 * company website: http://www.alkacon.com 019 * 020 * For further information about OpenCms, please see the 021 * project website: http://www.opencms.org 022 * 023 * You should have received a copy of the GNU Lesser General Public 024 * License along with this library; if not, write to the Free Software 025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 026 */ 027 028package org.opencms.db; 029 030import org.opencms.db.log.CmsLogEntry; 031import org.opencms.db.log.CmsLogFilter; 032import org.opencms.db.userpublishlist.CmsUserPublishListEntry; 033import org.opencms.file.CmsDataAccessException; 034import org.opencms.file.CmsFile; 035import org.opencms.file.CmsFolder; 036import org.opencms.file.CmsGroup; 037import org.opencms.file.CmsProject; 038import org.opencms.file.CmsProject.CmsProjectType; 039import org.opencms.file.CmsResource; 040import org.opencms.file.CmsUser; 041import org.opencms.lock.CmsLock; 042import org.opencms.main.CmsException; 043import org.opencms.publish.CmsPublishJobInfoBean; 044import org.opencms.report.I_CmsReport; 045import org.opencms.util.CmsUUID; 046 047import java.util.List; 048import java.util.Set; 049 050/** 051 * Definitions of all required project driver methods. <p> 052 * 053 * @since 6.0.0 054 */ 055public interface I_CmsProjectDriver { 056 057 /** The type ID to identify project driver implementations. */ 058 int DRIVER_TYPE_ID = 1; 059 060 /** Name of the setup project. */ 061 String SETUP_PROJECT_NAME = "_setupProject"; 062 063 /** The name of the temp file project. */ 064 String TEMP_FILE_PROJECT_NAME = "tempFileProject"; 065 066 /** 067 * Creates a new project.<p> 068 * 069 * @param dbc the current database context 070 * @param id the project id 071 * @param owner the owner of the project 072 * @param group the group for the project 073 * @param managergroup the manager group for the project 074 * @param name the name of the project to create 075 * @param description the description for the project 076 * @param flags the flags for the project 077 * @param type the type for the project 078 * 079 * @return the created <code>{@link CmsProject}</code> instance 080 * 081 * @throws CmsDataAccessException if something goes wrong 082 */ 083 CmsProject createProject( 084 CmsDbContext dbc, 085 CmsUUID id, 086 CmsUser owner, 087 CmsGroup group, 088 CmsGroup managergroup, 089 String name, 090 String description, 091 int flags, 092 CmsProjectType type) throws CmsDataAccessException; 093 094 /** 095 * Creates a new projectResource from a given CmsResource object.<p> 096 * 097 * @param dbc the current database context 098 * @param projectId The project in which the resource will be used 099 * @param resourceName The resource to be written to the Cms 100 * 101 * @throws CmsDataAccessException if something goes wrong 102 */ 103 void createProjectResource(CmsDbContext dbc, CmsUUID projectId, String resourceName) throws CmsDataAccessException; 104 105 /** 106 * Inserts an entry for a publish job .<p> 107 * 108 * @param dbc the current database context 109 * @param publishJob the publish job data 110 * 111 * @throws CmsDataAccessException if something goes wrong 112 */ 113 void createPublishJob(CmsDbContext dbc, CmsPublishJobInfoBean publishJob) throws CmsDataAccessException; 114 115 /** 116 * Deletes all entries in the published resource table.<p> 117 * 118 * @param dbc the current database context 119 * @param linkType the type of resource deleted (0= non-paramter, 1=parameter) 120 * 121 * @throws CmsDataAccessException if something goes wrong 122 */ 123 void deleteAllStaticExportPublishedResources(CmsDbContext dbc, int linkType) throws CmsDataAccessException; 124 125 /** 126 * Deletes log entries matching the given filter.<p> 127 * 128 * @param dbc the database context 129 * @param filter the log entry filter 130 * 131 * @throws CmsDataAccessException if something goes wrong 132 */ 133 void deleteLog(CmsDbContext dbc, CmsLogFilter filter) throws CmsDataAccessException; 134 135 /** 136 * Deletes a project from the cms.<p> 137 * 138 * Therefore it deletes all files, resources and properties. 139 * 140 * @param dbc the current database context 141 * @param project the project to delete 142 * @throws CmsDataAccessException if something goes wrong 143 */ 144 void deleteProject(CmsDbContext dbc, CmsProject project) throws CmsDataAccessException; 145 146 /** 147 * Delete a projectResource from an given CmsResource object.<p> 148 * 149 * @param dbc the current database context 150 * @param projectId id of the project in which the resource is used 151 * @param resourceName name of the resource to be deleted from the Cms 152 * 153 * @throws CmsDataAccessException if something goes wrong 154 */ 155 void deleteProjectResource(CmsDbContext dbc, CmsUUID projectId, String resourceName) throws CmsDataAccessException; 156 157 /** 158 * Deletes a specified project.<p> 159 * 160 * @param dbc the current database context 161 * @param project the project to be deleted 162 * 163 * @throws CmsDataAccessException if operation was not succesful 164 */ 165 void deleteProjectResources(CmsDbContext dbc, CmsProject project) throws CmsDataAccessException; 166 167 /** 168 * Deletes all publish history entries with publish tags >=0 and < the specified max. publish tag.<p> 169 * 170 * @param dbc the current database context 171 * @param projectId the ID of the current project 172 * @param maxPublishTag entries with publish tags >=0 and < this max. publish tag get deleted 173 * 174 * @throws CmsDataAccessException if something goes wrong 175 */ 176 void deletePublishHistory(CmsDbContext dbc, CmsUUID projectId, int maxPublishTag) throws CmsDataAccessException; 177 178 /** 179 * Deletes a publish history entry with publish tags >=0 and < the specified max. publish tag.<p> 180 * 181 * @param dbc the current database context 182 * @param publishHistoryId the id of the history to delete the entry from 183 * @param publishResource the entry to delete 184 * 185 * @throws CmsDataAccessException if something goes wrong 186 */ 187 void deletePublishHistoryEntry(CmsDbContext dbc, CmsUUID publishHistoryId, CmsPublishedResource publishResource) 188 throws CmsDataAccessException; 189 190 /** 191 * Deletes a publish job identified by its history id.<p> 192 * 193 * @param dbc the current database context 194 * @param publishHistoryId the history id identifying the publish job 195 * @throws CmsDataAccessException if something goes wrong 196 */ 197 void deletePublishJob(CmsDbContext dbc, CmsUUID publishHistoryId) throws CmsDataAccessException; 198 199 /** 200 * Deletes the publish list assigned to a publish job.<p> 201 * 202 * @param dbc the current database context 203 * @param publishHistoryId the history id identifying the publish job 204 * @throws CmsDataAccessException if something goes wrong 205 */ 206 void deletePublishList(CmsDbContext dbc, CmsUUID publishHistoryId) throws CmsDataAccessException; 207 208 /** 209 * Deletes an entry in the published resource table.<p> 210 * 211 * @param dbc the current database context 212 * @param resourceName The name of the resource to be deleted in the static export 213 * @param linkType the type of resource deleted (0= non-paramter, 1=parameter) 214 * @param linkParameter the parameters of the resource 215 * 216 * @throws CmsDataAccessException if something goes wrong 217 */ 218 void deleteStaticExportPublishedResource(CmsDbContext dbc, String resourceName, int linkType, String linkParameter) 219 throws CmsDataAccessException; 220 221 /** 222 * Deletes multiple publish list entries from the database.<p> 223 * 224 * @param dbc the current database context 225 * @param publishListDeletions the publish list entries to remove from the database 226 * @throws CmsDataAccessException if something goes wrong 227 */ 228 void deleteUserPublishListEntries(CmsDbContext dbc, List<CmsUserPublishListEntry> publishListDeletions) 229 throws CmsDataAccessException; 230 231 /** 232 * Destroys this driver.<p> 233 * 234 * @throws Throwable if something goes wrong 235 */ 236 void destroy() throws Throwable; 237 238 /** 239 * Fills the OpenCms database tables with default values.<p> 240 * 241 * @param dbc the current database context 242 * 243 * @throws CmsDataAccessException if something goes wrong 244 */ 245 void fillDefaults(CmsDbContext dbc) throws CmsDataAccessException; 246 247 /** 248 * Returns the SqlManager of this driver.<p> 249 * 250 * @return the SqlManager of this driver 251 */ 252 CmsSqlManager getSqlManager(); 253 254 /** 255 * Returns the given user's publish list.<p> 256 * 257 * @param dbc the database context 258 * @param userId the user's id 259 * 260 * @return the given user's publish list 261 * 262 * @throws CmsDataAccessException if something goes wrong 263 */ 264 List<CmsResource> getUsersPubList(CmsDbContext dbc, CmsUUID userId) throws CmsDataAccessException; 265 266 /** 267 * Initializes the SQL manager for this driver.<p> 268 * 269 * To obtain JDBC connections from different pools, further 270 * {online|offline|history} pool Urls have to be specified.<p> 271 * 272 * @param classname the classname of the SQL manager 273 * 274 * @return the SQL manager for this driver 275 */ 276 CmsSqlManager initSqlManager(String classname); 277 278 /** 279 * Logs the given log entries.<p> 280 * 281 * @param dbc the database context 282 * @param logEntries the log entries to write 283 * 284 * @throws CmsDataAccessException if something goes wrong 285 */ 286 void log(CmsDbContext dbc, List<CmsLogEntry> logEntries) throws CmsDataAccessException; 287 288 /** 289 * Publishes a deleted folder.<p> 290 * 291 * @param dbc the current database context 292 * @param report the report to log the output to 293 * @param m the number of the folder to publish 294 * @param n the number of all folders to publish 295 * @param onlineProject the online project 296 * @param offlineFolder the offline folder to publish 297 * @param publishHistoryId the publish history id 298 * @param publishTag the publish tag 299 * 300 * @throws CmsDataAccessException if something goes wrong 301 */ 302 void publishDeletedFolder( 303 CmsDbContext dbc, 304 I_CmsReport report, 305 int m, 306 int n, 307 CmsProject onlineProject, 308 CmsFolder offlineFolder, 309 CmsUUID publishHistoryId, 310 int publishTag) throws CmsDataAccessException; 311 312 /** 313 * Publishes a new, changed or deleted file.<p> 314 * 315 * @param dbc the current database context 316 * @param report the report to log the output to 317 * @param m the number of the file to publish 318 * @param n the number of all files to publish 319 * @param onlineProject the online project 320 * @param offlineResource the offline file to publish 321 * @param publishedContentIds contains the UUIDs of already published content records 322 * @param publishHistoryId the publish history id 323 * @param publishTag the publish tag 324 * 325 * @throws CmsDataAccessException if something goes wrong 326 */ 327 void publishFile( 328 CmsDbContext dbc, 329 I_CmsReport report, 330 int m, 331 int n, 332 CmsProject onlineProject, 333 CmsResource offlineResource, 334 Set<CmsUUID> publishedContentIds, 335 CmsUUID publishHistoryId, 336 int publishTag) throws CmsDataAccessException; 337 338 /** 339 * Publishes the content record of a file.<p> 340 * 341 * The content record is only published unless it's UUID is not contained in publishedContentIds. 342 * The calling method has to take care about whether an existing content record has to be deleted 343 * before or not.<p> 344 * 345 * The intention of this method is to get overloaded in a project driver 346 * for a specific DB server to shift the binary content from the offline into the online table 347 * in a more sophisticated way than in the generic ANSI-SQL implementation of this interface. 348 * 349 * @param dbc the current database context 350 * @param offlineProject the offline project to read data 351 * @param onlineProject the online project to write data 352 * @param offlineFileHeader the offline header of the file of which the content gets published 353 * @param publishedResourceIds a Set with the UUIDs of the already published content records 354 * @param needToUpdateContent <code>true</code> if the content record has to be updated 355 * @param publishTag the publish tag 356 * 357 * @return the published file (online) 358 * 359 * @throws CmsDataAccessException if something goes wrong 360 */ 361 CmsFile publishFileContent( 362 CmsDbContext dbc, 363 CmsProject offlineProject, 364 CmsProject onlineProject, 365 CmsResource offlineFileHeader, 366 Set<CmsUUID> publishedResourceIds, 367 boolean needToUpdateContent, 368 int publishTag) throws CmsDataAccessException; 369 370 /** 371 * Publishes a new or changed folder.<p> 372 * 373 * @param dbc the current database context 374 * @param report the report to log the output to 375 * @param m the number of the folder to publish 376 * @param n the number of all folders to publish 377 * @param onlineProject the online project 378 * @param currentFolder the offline folder to publish 379 * @param publishHistoryId the publish history id 380 * @param publishTag the publish tag 381 * 382 * @throws CmsDataAccessException if something goes wrong 383 */ 384 void publishFolder( 385 CmsDbContext dbc, 386 I_CmsReport report, 387 int m, 388 int n, 389 CmsProject onlineProject, 390 CmsFolder currentFolder, 391 CmsUUID publishHistoryId, 392 int publishTag) throws CmsDataAccessException; 393 394 /** 395 * Publishes a specified project to the online project.<p> 396 * 397 * @param dbc the current database context 398 * @param report an I_CmsReport instance to print output messages 399 * @param onlineProject the online project 400 * @param publishList a Cms publish list 401 * @param publishTag the publish tag 402 * 403 * @throws CmsException if something goes wrong 404 */ 405 void publishProject( 406 CmsDbContext dbc, 407 I_CmsReport report, 408 CmsProject onlineProject, 409 CmsPublishList publishList, 410 int publishTag) throws CmsException; 411 412 /** 413 * Reads the <code>{@link List}<{@link org.opencms.lock.CmsLock};> </code> 414 * that were saved to the database in the previous run of OpenCms.<p> 415 * 416 * @param dbc the current database context 417 * 418 * @return the <code>{@link List}<{@link org.opencms.lock.CmsLock};> </code> 419 * that were saved to the database in the previous run of OpenCms. 420 * 421 * @throws CmsDataAccessException if something goes wrong 422 */ 423 List<CmsLock> readLocks(CmsDbContext dbc) throws CmsDataAccessException; 424 425 /** 426 * Reads log entries matching the given filter.<p> 427 * 428 * @param dbc the database context 429 * @param filter the log entry filter 430 * 431 * @return the list of log entries 432 * 433 * @throws CmsDataAccessException if something goes wrong 434 */ 435 List<CmsLogEntry> readLog(CmsDbContext dbc, CmsLogFilter filter) throws CmsDataAccessException; 436 437 /** 438 * Reads a project given the projects id.<p> 439 * 440 * @param dbc the current database context 441 * @param id the id of the project 442 * 443 * @return the project read 444 * 445 * @throws CmsDataAccessException if something goes wrong 446 */ 447 CmsProject readProject(CmsDbContext dbc, CmsUUID id) throws CmsDataAccessException; 448 449 /** 450 * Reads a project.<p> 451 * 452 * @param dbc the current database context 453 * @param name the name of the project 454 * 455 * @return the project with the given name 456 * @throws CmsDataAccessException if something goes wrong 457 */ 458 CmsProject readProject(CmsDbContext dbc, String name) throws CmsDataAccessException; 459 460 /** 461 * Reads the project resource path for a given project and resource path, 462 * to validate if a resource path for a given project already exists.<p> 463 * 464 * @param dbc the current database context 465 * @param projectId the ID of the project for which the resource path is read 466 * @param resourcename the project's resource path 467 * 468 * @return String the project's resource path 469 * @throws CmsDataAccessException if something goes wrong 470 */ 471 String readProjectResource(CmsDbContext dbc, CmsUUID projectId, String resourcename) throws CmsDataAccessException; 472 473 /** 474 * Reads the project resources for a specified project.<p> 475 * 476 * @param dbc the current database context 477 * @param project the project for which the resource path is read 478 * 479 * @return a list of all project resource paths 480 * 481 * @throws CmsDataAccessException if something goes wrong 482 */ 483 List<String> readProjectResources(CmsDbContext dbc, CmsProject project) throws CmsDataAccessException; 484 485 /** 486 * Returns all projects in the given organizational unit.<p> 487 * 488 * @param dbc the current database context 489 * @param ouFqn the fully qualified name of the organizational unit to get the projects for 490 * 491 * @return a list of objects of type <code>{@link CmsProject}</code> 492 * 493 * @throws CmsDataAccessException if something goes wrong 494 */ 495 List<CmsProject> readProjects(CmsDbContext dbc, String ouFqn) throws CmsDataAccessException; 496 497 /** 498 * Returns all projects, which are accessible by a group.<p> 499 * 500 * @param dbc the current database context 501 * @param group the requesting group 502 * 503 * @return a Vector of projects 504 * @throws CmsDataAccessException if something goes wrong 505 */ 506 List<CmsProject> readProjectsForGroup(CmsDbContext dbc, CmsGroup group) throws CmsDataAccessException; 507 508 /** 509 * Returns all projects, which are manageable by a group.<p> 510 * 511 * @param dbc the current database context 512 * @param group The requesting group 513 * @return a Vector of projects 514 * 515 * @throws CmsDataAccessException if something goes wrong 516 */ 517 List<CmsProject> readProjectsForManagerGroup(CmsDbContext dbc, CmsGroup group) throws CmsDataAccessException; 518 519 /** 520 * Reads all projects which are owned by a specified user.<p> 521 * 522 * @param dbc the current database context 523 * @param user the user 524 * 525 * @return a list of objects of type <code>{@link CmsProject}</code> 526 * 527 * @throws CmsDataAccessException if something goes wrong 528 */ 529 List<CmsProject> readProjectsForUser(CmsDbContext dbc, CmsUser user) throws CmsDataAccessException; 530 531 /** 532 * Reads the resources that were published during a publish process for a given publish history ID.<p> 533 * 534 * @param dbc the current database context 535 * @param publishHistoryId unique int ID to identify the publish process in the publish history 536 * 537 * @return a list of <code>{@link org.opencms.db.CmsPublishedResource}</code> objects 538 * 539 * @throws CmsDataAccessException if something goes wrong 540 */ 541 List<org.opencms.db.CmsPublishedResource> readPublishedResources(CmsDbContext dbc, CmsUUID publishHistoryId) 542 throws CmsDataAccessException; 543 544 /** 545 * Reads a single publish job identified by its publish history id.<p> 546 * 547 * @param dbc the current database context 548 * @param publishHistoryId unique id to identify the publish job in the publish history 549 * @return an object of type <code>{@link CmsPublishJobInfoBean}</code> 550 * 551 * @throws CmsDataAccessException if something goes wrong 552 */ 553 CmsPublishJobInfoBean readPublishJob(CmsDbContext dbc, CmsUUID publishHistoryId) throws CmsDataAccessException; 554 555 /** 556 * Reads all publish jobs finished in the given time range.<p> 557 * If <code>(0L, 0L)</code> is passed as time range, all pending jobs are returned. 558 * 559 * @param dbc the current database context 560 * @param startTime the start of the time range for finish time 561 * @param endTime the end of the time range for finish time 562 * @return a list of objects of type <code>{@link CmsPublishJobInfoBean}</code> 563 * 564 * @throws CmsDataAccessException if something goes wrong 565 */ 566 List<CmsPublishJobInfoBean> readPublishJobs(CmsDbContext dbc, long startTime, long endTime) 567 throws CmsDataAccessException; 568 569 /** 570 * Reads the publish list assigned to a publish job.<p> 571 * 572 * @param dbc the current database context 573 * @param publishHistoryId the history id identifying the publish job 574 * @return the assigned publish list 575 * @throws CmsDataAccessException if something goes wrong 576 */ 577 CmsPublishList readPublishList(CmsDbContext dbc, CmsUUID publishHistoryId) throws CmsDataAccessException; 578 579 /** 580 * Reads the publish report assigned to a publish job.<p> 581 * 582 * @param dbc the current database context 583 * @param publishHistoryId the history id identifying the publish job 584 * @return the content of the assigned publish report 585 * @throws CmsDataAccessException if something goes wrong 586 */ 587 byte[] readPublishReportContents(CmsDbContext dbc, CmsUUID publishHistoryId) throws CmsDataAccessException; 588 589 /** 590 * Returns the parameters of a resource in the table of all published template resources.<p> 591 * 592 * @param dbc the current database context 593 * @param rfsName the rfs name of the resource 594 * 595 * @return the paramter string of the requested resource 596 * 597 * @throws CmsDataAccessException if something goes wrong 598 */ 599 String readStaticExportPublishedResourceParameters(CmsDbContext dbc, String rfsName) throws CmsDataAccessException; 600 601 /** 602 * Returns a list of all template resources which must be processed during a static export.<p> 603 * 604 * @param dbc the current database context 605 * @param parameterResources flag for reading resources with parameters (1) or without (0) 606 * @param timestamp the time stamp information 607 * 608 * @return a list of template resources as <code>{@link String}</code> objects 609 * 610 * @throws CmsDataAccessException if something goes wrong 611 */ 612 List<String> readStaticExportResources(CmsDbContext dbc, int parameterResources, long timestamp) 613 throws CmsDataAccessException; 614 615 /** 616 * Sets the driver manager for this driver if possible.<p> 617 * 618 * @param driverManager the new driver manager 619 */ 620 void setDriverManager(CmsDriverManager driverManager); 621 622 /** 623 * Sets the SQL manager for this driver if possible.<p> 624 * 625 * @param sqlManager the new SQL manager 626 */ 627 void setSqlManager(CmsSqlManager sqlManager); 628 629 /** 630 * Removes the project id from all resources within a project.<p> 631 * 632 * This must be done when a project will deleted 633 * 634 * @param dbc the current database context 635 * @param project the project to delete 636 * @throws CmsDataAccessException if something goes wrong 637 */ 638 void unmarkProjectResources(CmsDbContext dbc, CmsProject project) throws CmsDataAccessException; 639 640 /** 641 * Writes the <code>{@link List}<{@link org.opencms.lock.CmsLock};> </code> 642 * to the database for reuse in the next run of OpenCms.<p> 643 * 644 * This method must only be called at startup or the in-memory locking will overwritten.<p> 645 * 646 * @param dbc the current database context 647 * 648 * @param locks the <code>{@link List}<{@link org.opencms.lock.CmsLock};></code> that 649 * currently exist in OpenCms ({@link org.opencms.lock.CmsLockManager}) 650 * 651 * @throws CmsDataAccessException if something goes wrong 652 */ 653 void writeLocks(CmsDbContext dbc, List<CmsLock> locks) throws CmsDataAccessException; 654 655 /** 656 * Writes an already existing project.<p> 657 * 658 * The project id has to be a valid OpenCms project id.<br> 659 * 660 * The project with the given id will be completely overriden 661 * by the given data.<p> 662 * 663 * @param dbc the current database context 664 * @param project the project that should be written 665 * 666 * @throws CmsDataAccessException if operation was not successful 667 */ 668 void writeProject(CmsDbContext dbc, CmsProject project) throws CmsDataAccessException; 669 670 /** 671 * Inserts an entry in the publish history for a published VFS resource.<p> 672 * 673 * @param dbc the current database context 674 * @param publishId the ID of the current publishing process 675 * @param resource the state of the resource *before* it was published 676 * 677 * @throws CmsDataAccessException if something goes wrong 678 */ 679 void writePublishHistory(CmsDbContext dbc, CmsUUID publishId, CmsPublishedResource resource) 680 throws CmsDataAccessException; 681 682 /** 683 * Writes a publish job.<p> 684 * 685 * @param dbc the current database context 686 * @param publishJob the publish job to write 687 * @throws CmsDataAccessException if something goes wrong 688 */ 689 void writePublishJob(CmsDbContext dbc, CmsPublishJobInfoBean publishJob) throws CmsDataAccessException; 690 691 /** 692 * Writes a publish report for a publish job.<p> 693 * 694 * @param dbc the current database context 695 * @param publishId the ID of the current publishing process 696 * @param content the report output 697 * @throws CmsDataAccessException if something goes wrong 698 */ 699 void writePublishReport(CmsDbContext dbc, CmsUUID publishId, byte[] content) throws CmsDataAccessException; 700 701 /** 702 * Inserts an entry in the published resource table.<p> 703 * 704 * This is done during static export.<p> 705 * 706 * @param dbc the current database context 707 * @param resourceName The name of the resource to be added to the static export 708 * @param linkType the type of resource exported (0= non-paramter, 1=parameter) 709 * @param linkParameter the parameters added to the resource 710 * @param timestamp a timestamp for writing the data into the db 711 * 712 * @throws CmsDataAccessException if something goes wrong 713 */ 714 void writeStaticExportPublishedResource( 715 CmsDbContext dbc, 716 String resourceName, 717 int linkType, 718 String linkParameter, 719 long timestamp) throws CmsDataAccessException; 720 721 /** 722 * Writes multiple user publish list entries to the database.<p> 723 * 724 * @param dbc the current database context 725 * @param publishListAdditions the user publish list entries to write 726 * @throws CmsDataAccessException if something goes wrong 727 */ 728 void writeUserPublishListEntries(CmsDbContext dbc, List<CmsUserPublishListEntry> publishListAdditions) 729 throws CmsDataAccessException; 730}