001 /* 002 * file CcView.java 003 * 004 * Licensed Materials - Property of IBM 005 * Restricted Materials of IBM 006 * 007 * com.ibm.rational.wvcm.stp.cc.CcView 008 * 009 * (C) Copyright IBM Corporation 2004, 2015. All Rights Reserved. 010 * Note to U.S. Government Users Restricted Rights: Use, duplication or 011 * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 012 */ 013 014 package com.ibm.rational.wvcm.stp.cc; 015 016 import static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE; 017 018 import java.io.File; 019 import java.util.List; 020 import java.util.Map; 021 import java.util.Vector; 022 023 import javax.wvcm.Feedback; 024 import javax.wvcm.PropertyNameList.PropertyName; 025 import javax.wvcm.Resource; 026 import javax.wvcm.ResourceList; 027 import javax.wvcm.Stream; 028 import javax.wvcm.WvcmException; 029 030 import com.ibm.rational.wvcm.stp.StpActivity; 031 import com.ibm.rational.wvcm.stp.cc.CcFileAreaLockedCallback.CcFileAreaLockInfo; 032 import com.ibm.rational.wvcm.stp.cc.CcViewTag.ViewType; 033 import com.ibm.rational.wvcm.stpex.StpExEnumeration; 034 035 /** 036 * <p>A proxy for a ClearCase view. ClearCase "view" and WVCM "workspace" 037 * are equivalent terms for the same type of resource. 038 * </p> 039 * <p>As of the ClearCase 8.0.1.6 release, CM API supports web, dynamic and 040 * snapshot views. 041 * </p> 042 */ 043 public interface CcView 044 extends CcDirectory, javax.wvcm.Workspace 045 { 046 /** Values for view text mode */ 047 enum TextMode implements StpExEnumeration { 048 049 /** 050 * A transparent interop text mode. The line terminator for text files 051 * is a single <code>NL</code> character. The view does not transform 052 * text file line terminators in any way. This is the default text mode 053 * if no value is set upon view creation. 054 */ 055 TRANSPARENT("transparent"), 056 057 /** 058 * An insert_cr interop text mode. The view converts <code>NL</code> line 059 * terminators to the <code>CR NL</code> sequence when reading from a VOB, 060 * and <code>CR NL</code> line terminators to single <code>NL</code> 061 * characters when writing to the VOB. 062 */ 063 INSERT_CR("insert_cr"), 064 065 /** 066 * An nl_to_cr interop text mode. The view converts <code>NL</code> line 067 * terminators to <code>CR</code> characters when reading from a VOB, and 068 * <code>CR</code> line terminators to single <code>NL</code> characters 069 * wehn writing to the VOB. 070 */ 071 NL_TO_CR("cvt_nl_to_cr"), 072 073 /** 074 * A strip_cr interop text mode. The view converts <code>CR NL</code> line 075 * terminators to <code>NL</code> when reading from a VOB, and <code>NL</code> 076 * line terminators back to the <code>CR NL</code> sequence when writing to the VOB. 077 */ 078 STRIP_CR("strip_cr"); 079 080 private String m_name; 081 082 private TextMode(String name) { m_name = name; } 083 084 /* (non-Javadoc) 085 * @see java.lang.Object#toString() 086 */ 087 public String toString() { return m_name; } 088 } 089 090 /** Flags for the <code>doSynchronizeFileAreaDb</code> method */ 091 enum SynchronizeFileAreaDbFlag implements StpExEnumeration { 092 093 /** 094 * Synchronize the web view's client-side vob database with the 095 * correct information from the server. Specifying this flag 096 * requires a server connection. 097 */ 098 FILE_AREA_VOB_DB("file-area-vob-db"), 099 100 /** 101 * Synchronize the web view's client-side modified files database 102 * so that it correctly reflects files that have been modified 103 * as a result of checkouts or hijacks. Specifying this flag 104 * does <i>not</i> require a server connection. 105 */ 106 FILE_AREA_MODIFIED_FILES_DB("file-area-modified-files-db"); 107 108 private String m_name; 109 110 private SynchronizeFileAreaDbFlag(String name) { m_name = name; } 111 112 /* (non-Javadoc) 113 * @see java.lang.Object#toString() 114 */ 115 public String toString() { return m_name; } 116 } 117 118 /** Flags for the doFindMergeCandidates methods */ 119 enum FindmergeFlag { 120 121 /** 122 * Just search the directory itself when searching for merge candidates, 123 * do not search the child elements 124 */ 125 DIRECTORY_ONLY, 126 127 /** 128 * Follow VOB symbolic links when searching for merge candidates 129 */ 130 FOLLOW_SYMLINKS 131 } 132 133 /** 134 *<p> 135 * Binds a CcActivity proxy to a CqRecord proxy without making the 136 * activity the current one for this view. 137 * </p> 138 * <p> 139 * NOTE: Unlike most API methods, the optional property request will be executed 140 * on the returned StpActivity, not the CcView proxy on which the method 141 * was invoked. 142 * </p> 143 * 144 * <code>act</code> can either be a CcActivity proxy or a CqRecord proxy. 145 * <p> 146 * If <code>act</code> is a CcActivity proxy and the associated project is 147 * not CQ enabled, this operation simply executes the provided property 148 * request -- if any. If the project is CQ enabled, it additionally validates 149 * that the bound CQ record is in an active state. 150 * </p> 151 * <p> 152 * If <code>act</code> is a CqRecord proxy, this operation is more 153 * involved. First, <code>act</code> is automatically transitioned to an 154 * active state. If this transition involves required fields, the caller 155 * may be prompted to provide values for those fields. Next a CcActivity 156 * resource is created in this view's stream and is bound to 157 * <code>act</code>. 158 * </p> 159 * @param act the activity to work on - either a CqRecord or CcActivity 160 * @param feedback optional property request 161 * @return new proxy for the StpActivity, with requested properties 162 * @see javax.wvcm.Workspace#CURRENT_ACTIVITY 163 * @see com.ibm.rational.wvcm.stp.StpActivity#BOUND_CC_ACTIVITY 164 * @see com.ibm.rational.wvcm.stp.StpActivity#BOUND_CQ_RECORD 165 */ 166 public StpActivity doBindActivity(StpActivity act, Feedback feedback) throws WvcmException; 167 168 /** 169 * <p>Create a new ClearCase web view based on this CcView proxy. 170 * </p> 171 * <p> 172 * Preconditions: 173 * </p> 174 * <ul> 175 * <li>This proxy must have a file-based location representing the desired 176 * path of the root directory of the file area on the local machine. 177 * The directory must not yet exist.</li> 178 * <li>The location's leaf name (the directory name) will be used as 179 * the view tag of the new view. A view having that view-tag must not 180 * already exist.</li> 181 * <li>To create a view associated with a UCM stream, specify that stream 182 * by setting this view proxy's STREAM property.</li> 183 * </ul> 184 * <p> 185 * Postconditions: 186 * </p> 187 * <ul> 188 * <li>A ClearCase web view is created, with the view tag 189 * and local file area as described above.</li> 190 * <li>If the view proxy's STREAM property was set, the view will be 191 * associated with that stream.</li> 192 * <li>If the view proxy's VIEW_TAG_STRING property was set, the view will 193 * be assigned that tag. Otherwise, the file area's root directory name 194 * will be used.</li> 195 * </ul> 196 * @throws WvcmException if the preconditions are not met, or if there is an 197 * error creating the view. 198 */ 199 public CcView doCreateCcWebView(Feedback feedback) throws WvcmException; 200 201 /** 202 * <p>Create a new ClearCase dynamic view based on this CcView proxy. 203 * </p> 204 * <p> 205 * Preconditions: 206 * </p> 207 * <ul> 208 * <li>The view proxy's VIEW_TAG_STRING property must be set 209 * to the desired view tag of the new view. A view having that view 210 * tag must not already exist.</li> 211 * <li>The view proxy's VIEW_STORAGE_PATH property must be set 212 * to the desired storage path for the new view unless a storage location 213 * is being used. 214 * <li>If a storage location is desired, rather than an explicit path. 215 * then the VIEW_STORAGE_LOCATION property must be set to that storage 216 * location. 217 * <li>To create a view associated with a UCM stream, specify that stream 218 * by setting this view proxy's STREAM property.</li> 219 * <li>The proxy's location is ignored for creation.</li> 220 * </ul> 221 * <p> 222 * Postconditions: 223 * </p> 224 * <ul> 225 * <li>A ClearCase dynamic view is created, with the view tag 226 * and storage path as described above.</li> 227 * <li>If the view proxy's STREAM property was set, the view will be 228 * associated with that stream.</li> 229 * 230 * </ul> 231 * @throws WvcmException if the preconditions are not met, or if there is an 232 * error creating the view. 233 */ 234 public CcView doCreateCcDynamicView(Feedback feedback) throws WvcmException; 235 236 /** 237 * <p>Create a new ClearCase automatic view based on this CcView proxy. 238 * </p> 239 * <p> 240 * Preconditions: 241 * </p> 242 * <ul> 243 * <li>The view proxy's VIEW_TAG_STRING property must be set 244 * to the desired view tag of the new view. A view having that view 245 * tag must not already exist.</li> 246 * <li>The view proxy's VIEW_STORAGE_PATH property must be set 247 * to the desired storage path for the new view. 248 * <li>To create a view associated with a UCM stream, specify that stream 249 * by setting this view proxy's STREAM property.</li> 250 * <li>The proxy's location is ignored for creation.</li> 251 * </ul> 252 * <p> 253 * Postconditions: 254 * </p> 255 * <ul> 256 * <li>A ClearCase automatic view is created, with the view tag 257 * and storage path as described above.</li> 258 * <li>If the view proxy's STREAM property was set, the view will be 259 * associated with that stream.</li> 260 * 261 * </ul> 262 * @throws WvcmException if the preconditions are not met, or if there is an 263 * error creating the view. 264 */ 265 public CcView doCreateCcAutomaticView(Feedback feedback) throws WvcmException; 266 267 /** 268 * <p>Create a new ClearCase snapshot view based on this CcView proxy. 269 * </p> 270 * <p> 271 * Preconditions: 272 * </p> 273 * <ul> 274 * <li>The view proxy's VIEW_TAG_STRING property must be set 275 * to the desired view tag of the new view. A view having that view 276 * tag must not already exist.</li> 277 * <li>This proxy must have a file-based location representing the desired 278 * path of the root directory of the file area on the local machine. 279 * The directory must not yet exist.</li> 280 * <li>The view proxy's VIEW_STORAGE_PATH property must be set 281 * to the desired storage path for the new view unless a storage location 282 * or colocated storage is being used. 283 * <li>If a storage location is desired, rather than an explicit path, 284 * or a colocated storage, then the VIEW_STORAGE_LOCATION property 285 * must be set to that storage location. 286 * <li>If a colocated server storage is desired, rather than a storage 287 * location, or an explicit path, a global path should be used for the 288 * file-based location and COLOCATED_STORAGE property must be set to true. 289 * </li> 290 * <li>To create a view associated with a UCM stream, specify that stream 291 * by setting this view proxy's STREAM property.</li> 292 * </ul> 293 * <p> 294 * Postconditions: 295 * </p> 296 * <ul> 297 * <li>A ClearCase snapshot view is created, with the view tag, storage path 298 * and local file area as described above.</li> 299 * <li>If the view proxy's STREAM property was set, the view will be 300 * associated with that stream.</li> 301 * 302 * </ul> 303 * @throws WvcmException if the preconditions are not met, or if there is an 304 * error creating the view. 305 */ 306 public CcView doCreateCcSnapshotView(Feedback feedback) throws WvcmException; 307 308 /** 309 * <p>The rebase command reconfigures a stream by adding, dropping, or 310 * replacing one or more of the stream's foundation baselines. The file and 311 * directory versions selected by those new baselines (and thus their 312 * associated activities) then become visible in the stream's views. 313 * </p> 314 * <p> 315 * Preconditions: 316 * </p> 317 * <ul> 318 * <li>The baseline is not from the stream that is being rebased.</li> 319 * <li>The baseline is labeled. Baselines created by deliver operations are 320 * not labeled by default.</li> 321 * <li>Another rebase operation is not in progress.</li> 322 * <li>A deliver operation is not in progress.</li> 323 * </ul> 324 * Additional rules apply to integration streams and development 325 * streams in selecting a baseline: 326 * <ul> 327 * <li>An integration stream can be rebased only to a baseline created in 328 * another project or to an imported or initial baseline of that project.</li> 329 * <li>A development stream can be rebased to a baseline that meets one 330 * of the following criteria: 331 * <ul> 332 * <li>The baseline was created in its parent stream.</li> 333 * <li>The baseline is in its parent stream's foundation.</li> 334 * <li>The baseline is an ancestor of the development stream's parent 335 * foundation baseline and created on the same stream as the parent's 336 * foundation baseline.</li> 337 * <li>The baseline was created in a stream other than its parent 338 * stream and is contained in its parent stream. A baseline is 339 * contained in another baseline if all changes in the first baseline 340 * are included in the second baseline.</li> 341 * </ul> 342 * </li> 343 * </ul> 344 * <p> 345 * Postconditions: 346 * </p> 347 * <ul> 348 * <li>A rebase is started on the specified view. Use one of the other 349 * methods to resume, complete, or cancel the rebase.</li> 350 * <li>The activity is set to the rebase activity.</li> 351 * <li>If <code>baselineList</code> is specified and those baselines meet 352 * the preconditions above, the rebase will be started to those baselines.</li> 353 * <li>If <code>baselineList</code> is not specified, the rebase will be 354 * started to the source stream's recommended baselines.</li> 355 * <li>If <code>doAutoMerge</code> is true, elements needing merge will 356 * attempt to automatically merge on the server.</li> 357 * </ul> 358 * 359 * @param baselineList optional list of baselines to include 360 * @param doAutoMerge tells the rebase operation to attempt auto merges 361 * @param integrationListener optional listener to get feedback on operation 362 * @param updateListener optional listener to get feedback on view update 363 * changes 364 * @param feedback optional property request 365 * @return new proxy to the view with requested properties 366 * 367 * @throws WvcmException if there is an error starting the rebase operation 368 */ 369 public CcView doStartRebase( 370 List<CcBaseline> baselineList, 371 boolean doAutoMerge, 372 CcListener integrationListener, 373 CcListener updateListener, 374 Feedback feedback) throws WvcmException; 375 376 /** 377 * <p> 378 * Restarts a rebase operation from the point at which it has been 379 * suspended. A rebase operation can be interrupted or when it encounters an 380 * external error or condition that requires more information. However, you 381 * cannot resume a rebase operation that has been successfully halted with 382 * the <code>CcView.doCancelRebase()</code> operation. 383 * </p> 384 * 385 * @param doAutoMerge tells the rebase operation to attempt auto merges 386 * @param integrationListener optional listener to get feedback on operation 387 * @param updateListener optional listener to get feedback on view update 388 * changes 389 * @param feedback optional property request 390 * @return new proxy to the view with requested properties 391 * @throws WvcmException if there is an error resuming the rebase operation 392 */ 393 public CcView doResumeRebase( 394 boolean doAutoMerge, 395 CcListener integrationListener, 396 CcListener updateListener, 397 Feedback feedback) throws WvcmException; 398 399 400 /** 401 * <p> 402 * Completes a rebase operation taking the following actions: 403 * </p> 404 * <ul> 405 * <li>Resumes the rebase operation</li> 406 * <li>Verifies that needed merges were made</li> 407 * <li>Checks in any versions that are checked out</li> 408 * <li>Records changes in the change set for the rebase activity</li> 409 * </ul> 410 * 411 * @param integrationListener optional listener to get feedback on operation 412 * @param updateListener optional listener to get feedback on view update 413 * changes 414 * @param feedback optional property request 415 * @return new proxy to the view with requested properties 416 * @throws WvcmException if there is an error completing the 417 * rebase operation 418 */ 419 public CcView doCompleteRebase( 420 CcListener integrationListener, 421 CcListener updateListener, 422 Feedback feedback) throws WvcmException; 423 424 /** 425 * <p> 426 * Cancels a rebase operation and restores the stream's previous 427 * configuration. Deletes the integration activity and any 428 * versions created by the rebase operation that are not yet checked in. 429 * </p> 430 * <p> 431 * Preconditions: 432 * </p> 433 * <ul> 434 * <li>None of the versions created in the integration activity can be 435 * checked in.</li> 436 * </ul> 437 * 438 * @param integrationListener optional listener to get feedback on operation 439 * @param updateListener optional listener to get feedback on view update 440 * changes 441 * @param feedback optional property request 442 * @return new proxy to the view with requested properties 443 * @throws WvcmException if there is an error canceling the 444 * rebase operation 445 */ 446 public CcView doCancelRebase( 447 CcListener integrationListener, 448 CcListener updateListener, 449 Feedback feedback) throws WvcmException; 450 451 /** 452 * <p> 453 * The deliver command lets you deliver work from a source stream to a 454 * target stream in the same or a different project. This method delivers 455 * all activities in the stream that have changed since the last deliver 456 * operation from the stream. The target stream is determined by the 457 * <code>CcView</code> integration view passed to this method. 458 * </p> 459 * <p> 460 * Preconditions: 461 * </p> 462 * <ul> 463 * <li>A deliver operation is not currently in progress.</li> 464 * <li>A rebase operation is not currently in progress.</li> 465 * <li>The checkout states must match the project's UCM policies.</li> 466 * <li>Delivering to a non-default target stream is subject to 467 * restrictions. Refer to the ClearCase cleartool deliver man page 468 * for details.</li> 469 * </ul> 470 * <p> 471 * Postconditions: 472 * </p> 473 * <ul> 474 * <li>A deliver is started on the specified view. Use one of the other 475 * deliver methods to resume, complete, or cancel the deliver.</li> 476 * <li>The deliver operation creates a UCM integration activity and sets 477 * it as the current activity in the integration view. This activity 478 * records the change set for the deliver operation.</li> 479 * </ul> 480 * 481 * @param integrationView the target view to deliver to 482 * @param doAutoMerge tells the deliver operation to attempt auto merges 483 * @param integrationListener optional listener to get feedback on operation 484 * @param feedback optional property request 485 * @return new proxy to the view with requested properties 486 * @throws WvcmException if there is an error starting the deliver operation 487 */ 488 public CcView doStartDeliver( 489 CcView integrationView, 490 boolean doAutoMerge, 491 CcListener integrationListener, 492 Feedback feedback) throws WvcmException; 493 494 /** 495 * <p> 496 * Deliver the specified baselines from the source stream associated with 497 * this view to the target stream associated with the specified integration 498 * view. A development stream can deliver activities or baselines, but an 499 * integration stream can deliver only baselines. Refer to the ClearCase 500 * cleartool deliver man page for more details. 501 * </p> 502 * <p> 503 * Preconditions: 504 * </p> 505 * <ul> 506 * <li>A deliver operation is not currently in progress.</li> 507 * <li>A rebase operation is not currently in progress.</li> 508 * <li>The checkout states must match the project's UCM policies.</li> 509 * <li>Delivering to a non-default target stream is subject to 510 * restrictions. Refer to the ClearCase cleartool deliver man page 511 * for details.</li> 512 * </ul> 513 * <p> 514 * Postconditions: 515 * </p> 516 * <ul> 517 * <li>A deliver is started on the specified view. Use one of the other 518 * deliver methods to resume, complete, or cancel the deliver.</li> 519 * <li>The deliver operation creates a UCM integration activity and sets 520 * it as the current activity in the integration view. This activity 521 * records the change set for the deliver operation.</li> 522 * </ul> 523 * 524 * @param integrationView the target view to deliver to 525 * @param baselineList list of baselines to deliver 526 * @param doAutoMerge tells the deliver operation to attempt auto merges 527 * @param integrationListener optional listener to get feedback on operation 528 * @param feedback optional property request 529 * @return new proxy to the view with requested properties 530 * @throws WvcmException if there is an error starting the deliver operation 531 */ 532 public CcView doStartDeliverBaselines( 533 CcView integrationView, 534 ResourceList<CcBaseline> baselineList, 535 boolean doAutoMerge, 536 CcListener integrationListener, 537 Feedback feedback) throws WvcmException; 538 539 /** 540 * <p> 541 * Deliver the specified activities from the source stream associated with 542 * this view to the target stream associated with the specified integration 543 * view. The list of activities must be self-consistent: the 544 * activities specified must not depend on the inclusion of any unspecified 545 * activities. Refer to the ClearCase cleartool deliver man page for more 546 * details. 547 * </p> 548 * <p> 549 * Preconditions: 550 * </p> 551 * <ul> 552 * <li>A deliver operation is not currently in progress.</li> 553 * <li>A rebase operation is not currently in progress.</li> 554 * <li>The list of activities must be self-consistent.</li> 555 * <li>The checkout states must match the project's UCM policies.</li> 556 * <li>Delivering to a non-default target stream is subject to 557 * restrictions. Refer to the ClearCase cleartool deliver man page 558 * for details.</li> 559 * </ul> 560 * <p> 561 * Postconditions: 562 * </p> 563 * <ul> 564 * <li>A deliver is started on the specified view. Use one of the other 565 * deliver methods to resume, complete, or cancel the deliver.</li> 566 * <li>The deliver operation creates a UCM integration activity and sets 567 * it as the current activity in the integration view. This activity 568 * records the change set for the deliver operation.</li> 569 * </ul> 570 * 571 * @param integrationView the target view to deliver to 572 * @param activityList optional list of activities to deliver 573 * @param doAutoMerge tells the deliver operation to attempt auto merges 574 * @param integrationListener optional listener to get feedback on operation 575 * @param feedback optional property request 576 * @return new proxy to the view with requested properties 577 * @throws WvcmException if there is an error starting the deliver operation 578 * 579 */ 580 public CcView doStartDeliverActivities( 581 CcView integrationView, 582 ResourceList<CcActivity> activityList, 583 boolean doAutoMerge, 584 CcListener integrationListener, 585 Feedback feedback) throws WvcmException; 586 587 /** 588 * <p> 589 * In a MultiSite configuration where a team of developers works at a 590 * remote site, the project's integration stream may be mastered at a 591 * different replica than the developers' development streams. In this 592 * situation, the developers cannot complete deliver operations to the 593 * integration stream. When such a stream mastership situation is 594 * detected, the deliver operation starts but no versions are merged. 595 * Instead, the deliver operation is left in a posted state. You must 596 * periodically find and complete posted deliver operations. The post 597 * deliver command lets you do such the delivery work from a source 598 * stream to a target stream in the same or a different project. This 599 * method delivers all activities in the stream that have changed since 600 * the last deliver operation from the stream. The target stream is 601 * determined by the <code>Stream</code> targetStream passed to this 602 * method. 603 * </p> 604 * <p> 605 * Preconditions: 606 * </p> 607 * <ul> 608 * <li>A deliver operation is not currently in progress.</li> 609 * <li>A rebase operation is not currently in progress.</li> 610 * <li>The checkout states must match the project's UCM policies.</li> 611 * <li>Delivering to a non-default target stream is subject to 612 * restrictions. Refer to the ClearCase cleartool deliver man page 613 * for details.</li> 614 * </ul> 615 * <p> 616 * Postconditions: 617 * </p> 618 * <ul> 619 * <li>A deliver is started but no versions are merged. Instead, the 620 * deliver operation is left in a posted state. You must periodically find 621 * and complete posted deliver operations.</li> 622 * </ul> 623 * 624 * @param targetStream the target stream to deliver to 625 * @param integrationListener optional listener to get feedback on operation 626 * @param feedback optional property request 627 * @return new proxy to the view with requested properties 628 * @throws WvcmException if there is an error starting the deliver operation 629 */ 630 public CcView doStartPostDeliver( 631 Stream targetStream, 632 CcListener integrationListener, 633 Feedback feedback) throws WvcmException; 634 635 /** 636 * <p> 637 * Post deliver the specified baselines from the source stream associated 638 * with this view to the target stream. A development stream can deliver 639 * activities or baselines, but an integration stream can deliver only 640 * baselines. Refer to the ClearCase cleartool deliver man page for more 641 * details. 642 * </p> 643 * <p> 644 * Preconditions: 645 * </p> 646 * <ul> 647 * <li>A deliver operation is not currently in progress.</li> 648 * <li>A rebase operation is not currently in progress.</li> 649 * <li>The checkout states must match the project's UCM policies.</li> 650 * <li>Delivering to a non-default target stream is subject to 651 * restrictions. Refer to the ClearCase cleartool deliver man page 652 * for details.</li> 653 * </ul> 654 * <p> 655 * Postconditions: 656 * </p> 657 * <ul> 658 * <li>A deliver is started but no versions are merged. Instead, the 659 * deliver operation is left in a posted state. You must periodically find 660 * and complete posted deliver operations.</li> 661 * </ul> 662 * 663 * @param targetStream the target stream to deliver to 664 * @param baselineList list of baselines to deliver 665 * @param integrationListener optional listener to get feedback on operation 666 * @param feedback optional property request 667 * @return new proxy to the view with requested properties 668 * @throws WvcmException if there is an error starting the deliver operation 669 */ 670 public CcView doStartPostDeliverBaselines( 671 Stream targetStream, 672 ResourceList<CcBaseline> baselineList, 673 CcListener integrationListener, 674 Feedback feedback) throws WvcmException; 675 676 /** 677 * <p> 678 * Post deliver the specified activities from the source stream associated 679 * with this view to the target stream associated with the specified 680 * integration view. The list of activities must be self-consistent: the 681 * activities specified must not depend on the inclusion of any unspecified 682 * activities. Refer to the ClearCase cleartool deliver man page for more 683 * details. 684 * </p> 685 * <p> 686 * Preconditions: 687 * </p> 688 * <ul> 689 * <li>A deliver operation is not currently in progress.</li> 690 * <li>A rebase operation is not currently in progress.</li> 691 * <li>The list of activities must be self-consistent.</li> 692 * <li>The checkout states must match the project's UCM policies.</li> 693 * <li>Delivering to a non-default target stream is subject to 694 * restrictions. Refer to the ClearCase cleartool deliver man page 695 * for details.</li> 696 * </ul> 697 * <p> 698 * Postconditions: 699 * </p> 700 * <ul> 701 * <li>A deliver is started but no versions are merged. Instead, the 702 * deliver operation is left in a posted state. You must periodically find 703 * and complete posted deliver operations.</li> 704 * </ul> 705 * 706 * @param targetStream the target stream to deliver to 707 * @param activityList optional list of activities to deliver 708 * @param integrationListener optional listener to get feedback on operation 709 * @param feedback optional property request 710 * @return new proxy to the view with requested properties 711 * @throws WvcmException if there is an error starting the deliver operation 712 * 713 */ 714 public CcView doStartPostDeliverActivities( 715 Stream targetStream, 716 ResourceList<CcActivity> activityList, 717 CcListener integrationListener, 718 Feedback feedback) throws WvcmException; 719 720 /** 721 * <p> 722 * Resumes a deliver operation from the point at which it was suspended. 723 * </p> 724 * 725 * @param integrationView the target view to deliver to 726 * @param integrationListener optional listener to get feedback on operation 727 * @param feedback optional property request 728 * @return new proxy to the view with requested properties 729 * @throws WvcmException if there is an error resuming the deliver operation 730 */ 731 public CcView doResumeDeliver( 732 CcView integrationView, 733 CcListener integrationListener, 734 Feedback feedback) throws WvcmException; 735 736 /** 737 * <p> 738 * Resets a deliver operation in progress to use the new integration view 739 * </p> 740 * 741 * @param integrationView the new integration view 742 * @param integrationListener optional listener to get feedback on operation 743 * @param feedback optional property request 744 * @return new proxy to the view with requested properties 745 * @throws WvcmException if there is an error resuming the deliver operation 746 */ 747 public CcView doResetDeliver( 748 CcView integrationView, 749 CcListener integrationListener, 750 Feedback feedback) throws WvcmException; 751 752 /** 753 * <p> 754 * Complete in-progress deliver operation taking the following actions: 755 * </p> 756 * <ul> 757 * <li>Verify that all versions in the integration view have been 758 * successfully merged and that merge conflicts have been resolved.</li> 759 * <li>Check in resulting versions in the integration view.</li> 760 * <li>Unset the integration activity in the integration view.</li> 761 * </ul> 762 * <p> 763 * If unresolved merge conflicts exist, the deliver operation is suspended. 764 * </p> 765 * 766 * @param integrationView the target view to deliver to 767 * @param integrationListener optional listener to get feedback on operation 768 * @param mergeElements optional list of client maintained 769 * <code>CcMergeElement</code>s to allow the operation to cancel any 770 * checkouts 771 * @param feedback optional property request 772 * @return new proxy to the view with requested properties 773 * @throws WvcmException if there is an error completing the deliver 774 * operation 775 */ 776 public CcView doCompleteDeliver( 777 CcView integrationView, 778 CcListener integrationListener, 779 CcMergeElement[] mergeElements, 780 Feedback feedback) throws WvcmException; 781 782 /** 783 * <p> 784 * Halt a deliver operation in progress, returning the source and 785 * destination streams to their states before the deliver operation began. 786 * Note: This method cannot cancel a deliver operation after the completion 787 * phase has begun. See ClearCase cleartool deliver man page for details. 788 * </p> 789 * 790 * @param integrationView the target view to deliver to 791 * @param integrationListener optional listener to get feedback on operation 792 * @param mergeElements optional list of client maintained 793 * <code>CcMergeElement</code>s to allow the operation to cancel any 794 * checkouts 795 * @param feedback optional property request 796 * @return new proxy to the view with requested properties 797 * @throws WvcmException if there is an error cancelling the deliver 798 * operation 799 */ 800 public CcView doCancelDeliver( 801 CcView integrationView, 802 CcListener integrationListener, 803 CcMergeElement[] mergeElements, 804 Feedback feedback) throws WvcmException; 805 806 /** 807 * <p> 808 * Runs findmerge command in this view. Searches the specified elements for merge candidates using 809 * the specified VOB resource as a search criteria. The VOB resource can be either a branch type, or 810 * a label type, or a version. Flags further define the search criteria. 811 * Found merge candidates are returned through the listener. 812 * </p> 813 * 814 * @param listener optional listener to get feedback on operation. 815 * Note: although a listener is not required, that is the only way for a consumer of this method 816 * to receive the results of the findmerge operation. 817 * @param flags array of flags which specify the behavior of the operation 818 * @param fromVobResource VOB resource to use as a search criteria; Legal argument types include 819 * CcBranchType, CcLabelType and CcVersion 820 * @param feedback optional property request 821 * @return new proxy to the view with requested properties 822 * @throws WvcmException if there is an error completing the findmerge operation 823 * 824 * @return new proxy to the view with requested properties 825 * @throws WvcmException 826 */ 827 public CcView doFindMergeCandidates( 828 CcFindmergeListener listener, 829 FindmergeFlag []flags, 830 CcVobResource fromVobResource, 831 List<CcFile> elements, 832 Feedback feedback) throws WvcmException; 833 834 /** 835 * <p> 836 * Runs findmerge command in this view. Searches the specified elements for merge candidates using 837 * the specified View resource as a search criteria. Flags further define the search criteria. 838 * Found merge candidates are returned through the listener. 839 * </p> 840 * 841 * @param listener optional listener to get feedback on operation. 842 * Note: although a listener is not required, that is the only way for a consumer of this method 843 * to receive the results of the findmerge operation. 844 * @param flags array of flags which specify the behavior of the operation 845 * @param fromViewTag View tag to use as a search criteria; 846 * @param feedback optional property request 847 * @return new proxy to the view with requested properties 848 * @throws WvcmException if there is an error completing the findmerge operation 849 * 850 * @return new proxy to the view with requested properties 851 * @throws WvcmException 852 */ 853 public CcView doFindMergeCandidates( 854 CcFindmergeListener listener, 855 FindmergeFlag []flags, 856 CcViewTag fromViewTag, 857 List<CcFile> elements, 858 Feedback feedback) throws WvcmException; 859 860 /** 861 * <p> 862 * Runs findmerge command in this view. The specified activities are used as the search criteria. 863 * Flags further define the search criteria. Found merge candidates are returned through the listener. 864 * 865 * </p> 866 * 867 * @param listener optional listener to get feedback on operation. 868 * Note: although a listener is not required, that is the only way for a consumer of this method 869 * to receive the results of the findmerge operation. 870 * @param flags array of flags which specify the behavior of the operation 871 * @param activities list of activities whose change sets to search for merge candidates 872 * @param feedback optional property request 873 * @return new proxy to the view with requested properties 874 * @throws WvcmException if there is an error completing the findmerge operation 875 * 876 */ 877 public CcView doFindMergeCandidatesFromChangeSets( 878 CcFindmergeListener listener, 879 FindmergeFlag []flags, 880 List<CcActivity> activities, 881 Feedback feedback) throws WvcmException; 882 883 /** 884 * <p>Upgrade this web view's file area.</p> 885 * <p>Preconditions:</p> 886 * <ul> 887 * <li>This web view's file area schema version must be older than the 888 * version supported by the currently running CM API file area management 889 * code. 890 * </li> 891 * </ul> 892 * <p>Postconditions:</p> 893 * <ul> 894 * <li>This web view's file area schema will be upgraded to the currently 895 * supported version.</li> 896 * </ul> 897 * <p>This operation has no effect on non-web views, and on web views that 898 * are already compatible. 899 * </p> 900 * @throws WvcmException if the preconditions are not met, or if there is an 901 * error upgrading the file area. 902 */ 903 public CcView doUpgradeFileArea(Feedback feedback) throws WvcmException; 904 905 /** 906 * Work on the specified activity in this CC view. 907 * <code>act</code> can either be a CcActivity proxy or a CqRecord proxy. 908 * <p> 909 * If <code>act</code> is a CcActivity proxy and the associated project is 910 * not CQ enabled, this operation simply makes it the current activity 911 * in this view. If the project is CQ enabled, it additionally validates 912 * that the bound CQ record is in an active state. 913 * </p> 914 * <p> 915 * If <code>act</code> is a CqRecord proxy, this operation is more 916 * involved. First, <code>act</code> is automatically transitioned to an 917 * active state. If this transition involves required fields, the caller 918 * may be prompted to provide values for those fields. Next a CcActivity 919 * resource is created in this view's stream and is bound to 920 * <code>act</code>. Finally, it makes the new CC activity resource the 921 * current activity in this view. 922 * </p> 923 * @param act the activity to work on - either a CqRecord or CcActivity 924 * @param feedback optional property request 925 * @return new proxy for this view, with requested properties 926 * @see javax.wvcm.Workspace#CURRENT_ACTIVITY 927 * @see com.ibm.rational.wvcm.stp.StpActivity#BOUND_CC_ACTIVITY 928 * @see com.ibm.rational.wvcm.stp.StpActivity#BOUND_CQ_RECORD 929 */ 930 public CcView doWorkOnActivity(StpActivity act, Feedback feedback) throws WvcmException; 931 932 /** 933 * <p> 934 * Transitions the specified activity to the default completed state. 935 * <code>act</code> can either be a CcActivity proxy or a CqRecord proxy. 936 * </p> 937 * <p> 938 * NOTE: Unlike most API methods, the optional property request will be executed 939 * on the returned StpActivity, not the CcView proxy on which the method 940 * was invoked. 941 * </p> 942 * <p>Preconditions:</p> 943 * <ul> 944 * <li><code>act</code> is a bound CqRecord/CcActivity pair in a CQ-enabled 945 * context.</li> 946 * </ul> 947 * <p>Postconditions:</p> 948 * <ul> 949 * <li>If <code>act</code>'s CcActivity has checkouts, the operation is 950 * cancelled and there is no change to the activity.</li> 951 * <li>Transitions <code>act</code>'s CqRecord to the default completed state. 952 * If this transition involves required fields, the caller may be prompted 953 * to provide values for those fields.</li> 954 * <li>Unsets <code>act</code>'s CcActivity from all views' 955 * {@link javax.wvcm.Workspace#CURRENT_ACTIVITY} property.</li> 956 * </ul> 957 * @param act the activity to finish 958 * @param feedback optional property request for the activity 959 * @return new proxy for the activity, with requested properties 960 * @throws WvcmException if the preconditions are not met. 961 */ 962 public StpActivity doFinishActivity(StpActivity act, Feedback feedback) 963 throws WvcmException; 964 965 /** 966 * <p> 967 * Synchronize this web view file area's local databases to accurately reflect the 968 * current state of the file area. The databases available to synchronize are: 969 * </p> 970 * <ul> 971 * <li>VOB database: This contains the loaded vobs in the web view. A server connection 972 * is required to synchronize this database.</li> 973 * <li>Modified files database: This contains the checkouts and hijacks in the web view. 974 * A server connection <i>not</i> required to synchronize this database.</li> 975 * </ul> 976 * @param flags array of flags which specify the databases to synchronize. 977 * @param feedback optional property request for the view 978 * @return A new proxy for this resource, whose properties are specified by feedback. 979 * @throws WvcmException 980 */ 981 public CcView doSynchronizeFileAreaDb(SynchronizeFileAreaDbFlag[] flags, Feedback feedback) 982 throws WvcmException; 983 984 /** 985 * If this view type supports asynchronous refresh (currently only Automatic Views 986 * do this), check to see if a refresh is currently in progress for this view. 987 * This applies to any refresh, not just ones initiated by this client. 988 * @return {@code true} if a refresh is in progress for this view, {@code false} if one 989 * is not or the view does not support asynchronous refresh. 990 * @throws WvcmException 991 */ 992 public boolean isRefreshInProgress() throws WvcmException; 993 994 /** 995 * Register this local web view's file area in the local file area registry. 996 * Web views are registered automatically when created, but may need to be 997 * re-registered if the registry is accidentally deleted, etc. 998 */ 999 public void registerFileArea() throws WvcmException; 1000 1001 /** 1002 * Remove this local web view's file area from the local file area registry. 1003 * Once removed, this view will no longer show up when listing local views. 1004 * @see com.ibm.rational.wvcm.stp.cc.CcProvider#getClientViewList(javax.wvcm.PropertyRequestItem.PropertyRequest) 1005 */ 1006 public void unregisterFileArea() throws WvcmException; 1007 1008 /** 1009 * If this is a local web or automatic view, the URL of the CCRC WAN server where this 1010 * view's view database resides. 1011 */ 1012 PropertyName<String> SERVER_URL = 1013 new PropertyName<String>(PROPERTY_NAMESPACE, "server-url"); 1014 1015 /** 1016 * Get the value of this proxy's {@link #SERVER_URL} property. 1017 * @return this view's server URL 1018 * @throws WvcmException if this proxy doesn't define a value for this property. 1019 */ 1020 public String getServerUrl() throws WvcmException; 1021 1022 /** 1023 * Change the URL used to connect to the CCRC WAN server on which this view resides. 1024 * Note: Web and automatic views cannot be moved from one CCRC WAN server to another. 1025 * Use this method only to change the server URL, not to try to connect to 1026 * a different server. 1027 * <p> 1028 * This may be necessary if, for example: 1029 * <ul> 1030 * <li>The CCRC WAN server administrator changes the CCRC WAN server's port number</li> 1031 * <li>The client needs a secure HTTP connection to the CCRC WAN server: 1032 * "https://..." instead of "http://..."</li> 1033 * <li>The CCRC WAN server is moved to a different internet subdomain</li> 1034 * </ul> 1035 * Once this operation is completed, the existing view proxy instance (as well as any 1036 * proxies for other objects associated with this view) may no longer be usable. 1037 * In that case, a new provider instance (with the updated URL) will have to be created 1038 * and used to instantiate new proxies. This is especially likely for automatic views. 1039 * @param updatedUrl the updated URL of this view's CCRC WAN server 1040 * @throws WvcmException 1041 */ 1042 public void updateServerUrl(String updatedUrl) throws WvcmException; 1043 1044 /** 1045 * This view's uuid as a string. 1046 */ 1047 PropertyName<String> VIEW_UUID_STRING = 1048 new PropertyName<String>(PROPERTY_NAMESPACE, "view-uuid-string"); 1049 1050 /** 1051 * Get the value of this proxy's {@link #VIEW_UUID_STRING} property. 1052 * @return this view's uuid 1053 * @throws WvcmException if this proxy doesn't define a value for this property. 1054 */ 1055 public String getViewUuidString() throws WvcmException; 1056 1057 /** 1058 * This view's view tag as a string. 1059 */ 1060 PropertyName<String> VIEW_TAG_STRING = 1061 new PropertyName<String>(PROPERTY_NAMESPACE, "view-tag-string"); 1062 1063 /** 1064 * Get the value of this proxy's {@link #VIEW_TAG_STRING} property. 1065 * @return this view's view tag 1066 * @throws WvcmException if this proxy doesn't define a value for this property. 1067 */ 1068 public String getViewTagString() throws WvcmException; 1069 1070 /** 1071 * Set the value of this view's {@link #VIEW_TAG_STRING} property. 1072 * This property may only be set at view creation time. 1073 * @param viewTag the view tag for the new view 1074 */ 1075 void setViewTagString(String viewTag); 1076 1077 /** 1078 * This view's view tag as a {@link CcViewTag} resource. 1079 */ 1080 PropertyName<CcViewTag> VIEW_TAG = 1081 new PropertyName<CcViewTag>(PROPERTY_NAMESPACE, "view-tag"); 1082 1083 /** 1084 * Get the value of this proxy's {@link #VIEW_TAG} property. 1085 * @return this view's view tag 1086 * @throws WvcmException if this proxy doesn't define a value for this property. 1087 */ 1088 public CcViewTag getViewTag() throws WvcmException; 1089 1090 /** Kind of view to which this tag refers */ 1091 PropertyName<ViewType> VIEW_TYPE = 1092 new PropertyName<ViewType>(PROPERTY_NAMESPACE, 1093 "view-view-type"); 1094 1095 /** 1096 * Returns the value of this proxy's {@link #VIEW_TYPE} property. 1097 * 1098 * @return Kind of view this tag refers to. 1099 * @throws WvcmException 1100 * if this proxy doesn't define a value for this property. 1101 */ 1102 ViewType getViewType() throws WvcmException; 1103 1104 /** 1105 * Set the value of this view's {@link #VIEW_TYPE} property. 1106 * This property may only be set at view creation time and 1107 * is used by {@link #doCreateResource(Feedback)} to specify 1108 * the type of view to be created. If not view type has been set, 1109 * {@link #doCreateResource(Feedback)} will create a web 1110 * view by default. 1111 * 1112 * @param viewType the type of view to be created 1113 */ 1114 void setViewType(ViewType viewType); 1115 1116 /** 1117 * Whereas a CcView resource's {@link javax.wvcm.Folder#CHILD_MAP} property 1118 * returns the root directories of <i>all</i> VOBs, LOADED_CHILD_MAP only 1119 * returns the root directories of VOBs that are partially or fully loaded 1120 * in this view (if this is a web view or snapshot view) or mounted (if 1121 * this is a dynamic view or automatic view). In an automatic view, only 1122 * the mount state of a VOB is relevant, load state is ignored. 1123 */ 1124 PropertyName<Map<String,Resource>> LOADED_CHILD_MAP = 1125 new PropertyName<Map<String,Resource>>(PROPERTY_NAMESPACE, "loaded-child-map"); 1126 1127 /** 1128 * Get the value of this proxy's {@link #LOADED_CHILD_MAP} property. 1129 * @return this view's loaded child map 1130 * @throws WvcmException if this proxy doesn't define a value for this property. 1131 */ 1132 public Map<String,Resource> getLoadedChildMap() throws WvcmException; 1133 1134 /** 1135 * List of VOB tags representing VOBs which are currently mounted 1136 * in this view. 1137 * This property is only supported for automatic views. 1138 */ 1139 public static final PropertyName<ResourceList<CcVobTag>> MOUNTED_VOB_TAG_LIST = 1140 new PropertyName<ResourceList<CcVobTag>>(PROPERTY_NAMESPACE, "mounted-vob-tag-list"); 1141 1142 /** 1143 * Returns the value of this proxy's {@link #MOUNTED_VOB_TAG_LIST} property. 1144 * 1145 * @return list of VOB tags mounted in this view 1146 * @throws WvcmException 1147 * if this proxy doesn't define a value for this property. 1148 */ 1149 ResourceList<CcVobTag> getMountedVobTagList() throws WvcmException; 1150 1151 /** 1152 * This view's file area root directory on the local machine. 1153 * The value of this property will be null if it does not have 1154 * a file area on the local machine. 1155 * Only supported for web, snapshot and automatic views. 1156 */ 1157 PropertyName<File> FILE_AREA_ROOT_DIRECTORY = 1158 new PropertyName<File>(PROPERTY_NAMESPACE, "file-area-root-directory"); 1159 1160 /** 1161 * Returns the value of the {@link #FILE_AREA_ROOT_DIRECTORY} property. 1162 * @return This view's copy area root directory, or null if it has 1163 * no copy area on the local machine 1164 * @throws WvcmException if this property is not defined by this proxy. 1165 */ 1166 public File getFileAreaRootDirectory() throws WvcmException; 1167 1168 /** 1169 * For a UCM view, the list of root directories for all components 1170 * included in that view's stream. 1171 * Always an empty list for non-UCM views. 1172 */ 1173 PropertyName<ResourceList<CcDirectory>> COMPONENT_ROOT_DIRECTORY_LIST = 1174 new PropertyName<ResourceList<CcDirectory>>(PROPERTY_NAMESPACE, "component-root-directory-list"); 1175 1176 /** 1177 * Returns the value of the {@link #COMPONENT_ROOT_DIRECTORY_LIST} property. 1178 * @return List of the component root directories for this view's UCM stream, 1179 * or an empty list if this is not a UCM view. 1180 * @throws WvcmException if this property is not defined by this proxy. 1181 */ 1182 public ResourceList<CcDirectory> getComponentRootDirectoryList() throws WvcmException; 1183 1184 /** 1185 * Is this web view's local file area schema version older than the version 1186 * supported by the running CM API file management code? If so, the file 1187 * area needs to be upgraded before it can be used. 1188 * 1189 * @see com.ibm.rational.wvcm.stp.cc.CcView#doUpgradeFileArea(Feedback) 1190 */ 1191 PropertyName<Boolean> FILE_AREA_NEEDS_UPGRADE = 1192 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "file-area-needs-upgrade"); 1193 1194 /** 1195 * Get the value of this view's {@link #FILE_AREA_NEEDS_UPGRADE} property. 1196 * @return true if this view's local file area needs upgrading; false otherwise. 1197 * @throws WvcmException if this property is not defined by this proxy. 1198 */ 1199 boolean getFileAreaNeedsUpgrade() throws WvcmException; 1200 1201 /** 1202 * Is this view associated with a UCM stream?. 1203 */ 1204 PropertyName<Boolean> IS_UCM_VIEW = 1205 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-ucm-view"); 1206 1207 /** 1208 * Get the value of this view's {@link #IS_UCM_VIEW} property. 1209 * @return true if this view represents a UCM view; false otherwise. 1210 * @throws WvcmException if this property is not defined by this proxy. 1211 */ 1212 boolean getIsUcmView() throws WvcmException; 1213 1214 /** 1215 * This view's config spec. 1216 */ 1217 PropertyName<CcConfigSpec> CONFIG_SPEC = 1218 new PropertyName<CcConfigSpec>(PROPERTY_NAMESPACE, "config-spec"); 1219 1220 /** 1221 * Get the value of this view's {@link #CONFIG_SPEC} property. 1222 * @return this view's config spec as a CcConfigSpec instance 1223 */ 1224 CcConfigSpec getConfigSpec() throws WvcmException; 1225 1226 /** 1227 * Set the value of this view's {@link #CONFIG_SPEC} property. 1228 * @param configSpec the new config spec for this view 1229 */ 1230 void setConfigSpec(CcConfigSpec configSpec); 1231 1232 /** 1233 * Network region in which the dynamic view is registered. 1234 * Not supported for other view types. 1235 * This is a write only property; to determine the region for 1236 * an existing view, use the CcViewTag.REGISTRY_REGION property. 1237 */ 1238 PropertyName<CcRegistryRegion> REGION = 1239 new PropertyName<CcRegistryRegion>(PROPERTY_NAMESPACE, "view-region"); 1240 1241 /** 1242 * Set the value of this view's {@link #REGION} property. This 1243 * property may only be set at view creation time. 1244 * This is a write only property. 1245 * If unspecified, the local host's network region will be used. 1246 * @param region network region in which to register the view 1247 */ 1248 void setRegion(CcRegistryRegion region); 1249 1250 /** 1251 * Path to directory in which shared cleartext for an automatic view 1252 * is stored. Not valid for other view types. 1253 * Can be set only at creation time. If unspecified, the product 1254 * default directory is used. 1255 */ 1256 PropertyName<String> SHARED_CLEARTEXT_STORAGE_PATH = 1257 new PropertyName<String>(PROPERTY_NAMESPACE, "shared-cltxt-stg"); 1258 1259 /** 1260 * Get the value of this view's {@link #SHARED_CLEARTEXT_STORAGE_PATH} 1261 * property. 1262 * Only supported for automatic views 1263 * @return Path to the shared cleartext storage this view. 1264 */ 1265 String getSharedCleartextStoragePath() throws WvcmException; 1266 1267 /** 1268 * Set the value of this view's {@link #SHARED_CLEARTEXT_STORAGE_PATH} 1269 * property. This property may only be set at view creation time and 1270 * only for automatic views. 1271 * If unspecified, the product default directory is used. 1272 */ 1273 void setSharedCleartextStoragePath(String path); 1274 1275 /** 1276 * Should derived objects created in this view be shared and made 1277 * available for winkin by other views? 1278 * (Dynamic views only, not supported for other view types.) 1279 */ 1280 PropertyName<Boolean> SHARE_DERIVED_OBJECTS = 1281 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "shared-dos"); 1282 1283 /** 1284 * Get the value of this view's {@link #SHARE_DERIVED_OBJECTS} property. 1285 * @return true if view creates shared derived objects, false otherwise 1286 */ 1287 Boolean getShareDerivedObjects() throws WvcmException; 1288 1289 /** 1290 * Set the value of this view's {@link #SHARE_DERIVED_OBJECTS} property. This 1291 * property may only be set at view creation time. 1292 * If unspecified, site-wide default is used. 1293 * If unspecified and no site-wide default, derived objects will be shared. 1294 * @param shareDerivedObjects true to make derived objects available for winkin 1295 * by other views, otherwise false 1296 */ 1297 void setShareDerivedObjects(Boolean shareDerivedObjects); 1298 1299 /** 1300 * The text mode of the view. The text mode specifies the line 1301 * terminator sequence for text files in the view. If no value is 1302 * set upon view creation, defaults to {@link TextMode#TRANSPARENT}. 1303 */ 1304 PropertyName<TextMode> TEXT_MODE = 1305 new PropertyName<TextMode>(PROPERTY_NAMESPACE, "text-mode"); 1306 1307 /** 1308 * Get the value of this view's {@link #TEXT_MODE} property. 1309 * @return enumeration value representing this view's text mode. 1310 * @throws WvcmException if this proxy doesn't define a value for this property. 1311 */ 1312 TextMode getTextMode() throws WvcmException; 1313 1314 /** 1315 * Set the value of this view's {@link #TEXT_MODE} property. This 1316 * property may only be set at view creation time. 1317 * @param textMode the text mode of the view. 1318 */ 1319 void setTextMode(TextMode textMode); 1320 1321 /** 1322 * Break a file area lock on this web view with the given lock info. 1323 * @param lockInfo information about the lock 1324 * @return true if the lock was broken; false otherwise 1325 * @throws WvcmException if a problem occurred breaking the lock 1326 */ 1327 boolean breakFileAreaLock(CcFileAreaLockInfo lockInfo) throws WvcmException; 1328 1329 /** 1330 * CcViewAccessInfo object contains the supported view access properties. 1331 */ 1332 public static final PropertyName<CcViewAccessInfo> VIEW_ACCESS_INFO = 1333 new PropertyName<CcViewAccessInfo>(PROPERTY_NAMESPACE, "view-access-info"); 1334 1335 /** 1336 * Returns the value of this proxy's {@link #VIEW_ACCESS_INFO} property. 1337 * 1338 * @return the CcViewAccessInfo object. 1339 * @throws WvcmException 1340 * if this proxy doesn't define a value for this property. 1341 */ 1342 public CcViewAccessInfo getViewAccessInfo() throws WvcmException; 1343 1344 /** 1345 * The storage location for a dynamic or snapshot view, 1346 * not supported for other view types. 1347 */ 1348 public static final PropertyName<CcStorageLocation> VIEW_STORAGE_LOCATION = 1349 new PropertyName<CcStorageLocation>(PROPERTY_NAMESPACE, "view-stgloc"); 1350 1351 /** 1352 * Set the value of this view's {@link #VIEW_STORAGE_LOCATION} property. 1353 * This property may only be set at view creation time. 1354 * It is a write-only property. 1355 * @param viewStorageLocation the storage location for the new view 1356 */ 1357 void setViewStorageLocation(CcStorageLocation viewStorageLocation); 1358 1359 /** 1360 * The storage path for a dynamic or automatic or snapshot view, 1361 * not supported for other view types. 1362 */ 1363 public static final PropertyName<String> VIEW_STORAGE_PATH = 1364 new PropertyName<String>(PROPERTY_NAMESPACE, "view-storage-path"); 1365 1366 /** 1367 * Returns the value of this proxy's {@link #VIEW_STORAGE_PATH} property. 1368 * 1369 * @return path to the view storage 1370 * @throws WvcmException 1371 * if this proxy doesn't define a value for this property. 1372 */ 1373 public String getViewStoragePath() throws WvcmException; 1374 1375 /** 1376 * Set the value of this view's {@link #VIEW_STORAGE_PATH} property. 1377 * This property may only be set at view creation time. 1378 * @param viewStoragePath the storage path for the new view 1379 */ 1380 void setViewStoragePath(String viewStoragePath); 1381 1382 /** 1383 * <p> 1384 * The permissions applied to this resource. 1385 * </p> 1386 */ 1387 public static final PropertyName<CcPermissions> PERMISSIONS = 1388 new PropertyName<CcPermissions>(PROPERTY_NAMESPACE, "cc-permissions"); 1389 1390 /** 1391 * Returns the value of this proxy's {@link #PERMISSIONS} property. 1392 * 1393 * @return A permissions object from which specific permissions 1394 * information can be extracted. 1395 * @throws WvcmException 1396 * if this proxy doesn't define a value for this property. 1397 */ 1398 public CcPermissions getPermissions() throws WvcmException; 1399 1400 /** 1401 * Does this view have non-shareable derived objects? 1402 * This property is supported for dynamic views only. 1403 */ 1404 public static final PropertyName<Boolean> IS_EXPRESS = 1405 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-express"); 1406 1407 /** 1408 * Returns the value of this proxy's {@link #IS_EXPRESS} property. 1409 * 1410 * @return true if this view has non-shareable DOs; false otherwise. 1411 * @throws WvcmException 1412 * if this proxy doesn't define a value for this property. 1413 */ 1414 public Boolean getIsExpress() throws WvcmException; 1415 1416 /** 1417 * Are this view's permissions valid? 1418 */ 1419 public static final PropertyName<Boolean> ARE_PERMISSIONS_VALID = 1420 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "are-permissions-valid"); 1421 1422 /** 1423 * Returns the value of this proxy's {@link #ARE_PERMISSIONS_VALID} property. 1424 * 1425 * @return true if this view's permissions are valid; false otherwise. 1426 * @throws WvcmException 1427 * if this proxy doesn't define a value for this property. 1428 */ 1429 public Boolean getArePermissionsValid() throws WvcmException; 1430 1431 /** 1432 * Is this view read-only? 1433 */ 1434 public static final PropertyName<Boolean> IS_READ_ONLY = 1435 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-read-only"); 1436 1437 /** 1438 * Returns the value of this proxy's {@link #IS_READ_ONLY} property. 1439 * 1440 * @return true if this view is read-only; false otherwise. 1441 * @throws WvcmException 1442 * if this proxy doesn't define a value for this property. 1443 */ 1444 public Boolean getIsReadOnly() throws WvcmException; 1445 1446 /** 1447 * Set the {@link #STREAM} property. 1448 * 1449 * @param stream the {@link Stream} object that 1450 * identifies the {@link #STREAM} for this Workspace. 1451 * @see #getStream 1452 */ 1453 public void setStream(Stream stream); 1454 1455 /** 1456 * Colocate view's storage directory under snapshot view directory, 1457 * not supported for other view types. 1458 */ 1459 public static final PropertyName<Boolean> COLOCATED_STORAGE = 1460 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "colocated-storage"); 1461 1462 /** 1463 * Set the {@link #COLOCATED_STORAGE} property. 1464 * This property may only be set at view creation time and only for 1465 * snapshot views. 1466 * It is a write-only property. 1467 * 1468 * @param colocatedStorage true to create view's storage directory 1469 * as a subdirectory of the snapshot view directory, false otherwise. 1470 * The value will default to false if not set at view creation. 1471 */ 1472 public void setColocatedStorage(Boolean colocatedStorage); 1473 1474 /** 1475 * Indicates whether this view will preserve 1476 * the VOB modification time for files when copying them into 1477 * the view. 1478 * If {@code true}, time is preserved, if {@code false} the current 1479 * time is used. If unspecified, the default is {@code false}. 1480 * This property can only be set at creation time, and only for 1481 * automatic and snapshot views.<p> 1482 * 1483 * For automatic views, this setting persists for the lifetime of 1484 * the view.<p> 1485 * 1486 * For snapshot views, it is an initial setting that may be changed 1487 * depending on the flag for subsequent update operations. 1488 */ 1489 public static final PropertyName<Boolean> PRESERVE_VOB_MODIFIED_TIME = 1490 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "preserve-vob-modified-time"); 1491 1492 /** 1493 * Get the value of this view's {@link #PRESERVE_VOB_MODIFIED_TIME} property. 1494 * @return {@code true} if file time stamps copied into the view 1495 * will preserve the VOB modification time, {@code false} otherwise 1496 */ 1497 Boolean getPreserveVobModifiedTime() throws WvcmException; 1498 1499 /** 1500 * Set the {@link #PRESERVE_VOB_MODIFIED_TIME} property. 1501 * This property may only be set at view creation time and only for 1502 * automatic and snapshot views. 1503 * If unspecified, VOB modification time will <em>not</em> be used 1504 * when copying files to the view.<p> 1505 * 1506 * For automatic views, this setting persists for the lifetime of 1507 * the view.<p> 1508 * 1509 * For snapshot views, it is an initial setting that may be changed 1510 * depending on the flag for subsequent update operations.<p> 1511 * 1512 * @param preserveVobModifiedTime {@code true} to preserve the VOB modified 1513 * time when copying files to the view, {@code false} to use current time. 1514 */ 1515 public void setPreserveVobModifiedTime(Boolean preserveVobModifiedTime); 1516 1517 /** 1518 * Restore entire view or select paths in the view - for automatic views only 1519 */ 1520 public CcView doCcRestore (RefreshFlag[] flags, Vector<String> paths, Feedback feedback) 1521 throws WvcmException; 1522 }