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 * @param updatedUrl the updated URL of this view's CCRC WAN server 1036 * @throws WvcmException 1037 */ 1038 public void updateServerUrl(String updatedUrl) throws WvcmException; 1039 1040 /** 1041 * This view's uuid as a string. 1042 */ 1043 PropertyName<String> VIEW_UUID_STRING = 1044 new PropertyName<String>(PROPERTY_NAMESPACE, "view-uuid-string"); 1045 1046 /** 1047 * Get the value of this proxy's {@link #VIEW_UUID_STRING} property. 1048 * @return this view's uuid 1049 * @throws WvcmException if this proxy doesn't define a value for this property. 1050 */ 1051 public String getViewUuidString() throws WvcmException; 1052 1053 /** 1054 * This view's view tag as a string. 1055 */ 1056 PropertyName<String> VIEW_TAG_STRING = 1057 new PropertyName<String>(PROPERTY_NAMESPACE, "view-tag-string"); 1058 1059 /** 1060 * Get the value of this proxy's {@link #VIEW_TAG_STRING} property. 1061 * @return this view's view tag 1062 * @throws WvcmException if this proxy doesn't define a value for this property. 1063 */ 1064 public String getViewTagString() throws WvcmException; 1065 1066 /** 1067 * Set the value of this view's {@link #VIEW_TAG_STRING} property. 1068 * This property may only be set at view creation time. 1069 * @param viewTag the view tag for the new view 1070 */ 1071 void setViewTagString(String viewTag); 1072 1073 /** 1074 * This view's view tag as a {@link CcViewTag} resource. 1075 */ 1076 PropertyName<CcViewTag> VIEW_TAG = 1077 new PropertyName<CcViewTag>(PROPERTY_NAMESPACE, "view-tag"); 1078 1079 /** 1080 * Get the value of this proxy's {@link #VIEW_TAG} property. 1081 * @return this view's view tag 1082 * @throws WvcmException if this proxy doesn't define a value for this property. 1083 */ 1084 public CcViewTag getViewTag() throws WvcmException; 1085 1086 /** Kind of view to which this tag refers */ 1087 PropertyName<ViewType> VIEW_TYPE = 1088 new PropertyName<ViewType>(PROPERTY_NAMESPACE, 1089 "view-view-type"); 1090 1091 /** 1092 * Returns the value of this proxy's {@link #VIEW_TYPE} property. 1093 * 1094 * @return Kind of view this tag refers to. 1095 * @throws WvcmException 1096 * if this proxy doesn't define a value for this property. 1097 */ 1098 ViewType getViewType() throws WvcmException; 1099 1100 /** 1101 * Set the value of this view's {@link #VIEW_TYPE} property. 1102 * This property may only be set at view creation time and 1103 * is used by {@link #doCreateResource(Feedback)} to specify 1104 * the type of view to be created. If not view type has been set, 1105 * {@link #doCreateResource(Feedback)} will create a web 1106 * view by default. 1107 * 1108 * @param viewType the type of view to be created 1109 */ 1110 void setViewType(ViewType viewType); 1111 1112 /** 1113 * Whereas a CcView resource's {@link javax.wvcm.Folder#CHILD_MAP} property 1114 * returns the root directories of <i>all</i> VOBs, LOADED_CHILD_MAP only 1115 * returns the root directories of VOBs that are partially or fully loaded 1116 * in this view (if this is a web view or snapshot view) or mounted (if 1117 * this is a dynamic view or automatic view). In an automatic view, only 1118 * the mount state of a VOB is relevant, load state is ignored. 1119 */ 1120 PropertyName<Map<String,Resource>> LOADED_CHILD_MAP = 1121 new PropertyName<Map<String,Resource>>(PROPERTY_NAMESPACE, "loaded-child-map"); 1122 1123 /** 1124 * Get the value of this proxy's {@link #LOADED_CHILD_MAP} property. 1125 * @return this view's loaded child map 1126 * @throws WvcmException if this proxy doesn't define a value for this property. 1127 */ 1128 public Map<String,Resource> getLoadedChildMap() throws WvcmException; 1129 1130 /** 1131 * List of VOB tags representing VOBs which are currently mounted 1132 * in this view. 1133 * This property is only supported for automatic views. 1134 */ 1135 public static final PropertyName<ResourceList<CcVobTag>> MOUNTED_VOB_TAG_LIST = 1136 new PropertyName<ResourceList<CcVobTag>>(PROPERTY_NAMESPACE, "mounted-vob-tag-list"); 1137 1138 /** 1139 * Returns the value of this proxy's {@link #MOUNTED_VOB_TAG_LIST} property. 1140 * 1141 * @return list of VOB tags mounted in this view 1142 * @throws WvcmException 1143 * if this proxy doesn't define a value for this property. 1144 */ 1145 ResourceList<CcVobTag> getMountedVobTagList() throws WvcmException; 1146 1147 /** 1148 * This view's file area root directory on the local machine. 1149 * The value of this property will be null if it does not have 1150 * a file area on the local machine. 1151 * Only supported for web, snapshot and automatic views. 1152 */ 1153 PropertyName<File> FILE_AREA_ROOT_DIRECTORY = 1154 new PropertyName<File>(PROPERTY_NAMESPACE, "file-area-root-directory"); 1155 1156 /** 1157 * Returns the value of the {@link #FILE_AREA_ROOT_DIRECTORY} property. 1158 * @return This view's copy area root directory, or null if it has 1159 * no copy area on the local machine 1160 * @throws WvcmException if this property is not defined by this proxy. 1161 */ 1162 public File getFileAreaRootDirectory() throws WvcmException; 1163 1164 /** 1165 * For a UCM view, the list of root directories for all components 1166 * included in that view's stream. 1167 * Always an empty list for non-UCM views. 1168 */ 1169 PropertyName<ResourceList<CcDirectory>> COMPONENT_ROOT_DIRECTORY_LIST = 1170 new PropertyName<ResourceList<CcDirectory>>(PROPERTY_NAMESPACE, "component-root-directory-list"); 1171 1172 /** 1173 * Returns the value of the {@link #COMPONENT_ROOT_DIRECTORY_LIST} property. 1174 * @return List of the component root directories for this view's UCM stream, 1175 * or an empty list if this is not a UCM view. 1176 * @throws WvcmException if this property is not defined by this proxy. 1177 */ 1178 public ResourceList<CcDirectory> getComponentRootDirectoryList() throws WvcmException; 1179 1180 /** 1181 * Is this web view's local file area schema version older than the version 1182 * supported by the running CM API file management code? If so, the file 1183 * area needs to be upgraded before it can be used. 1184 * 1185 * @see com.ibm.rational.wvcm.stp.cc.CcView#doUpgradeFileArea(Feedback) 1186 */ 1187 PropertyName<Boolean> FILE_AREA_NEEDS_UPGRADE = 1188 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "file-area-needs-upgrade"); 1189 1190 /** 1191 * Get the value of this view's {@link #FILE_AREA_NEEDS_UPGRADE} property. 1192 * @return true if this view's local file area needs upgrading; false otherwise. 1193 * @throws WvcmException if this property is not defined by this proxy. 1194 */ 1195 boolean getFileAreaNeedsUpgrade() throws WvcmException; 1196 1197 /** 1198 * Is this view associated with a UCM stream?. 1199 */ 1200 PropertyName<Boolean> IS_UCM_VIEW = 1201 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-ucm-view"); 1202 1203 /** 1204 * Get the value of this view's {@link #IS_UCM_VIEW} property. 1205 * @return true if this view represents a UCM view; false otherwise. 1206 * @throws WvcmException if this property is not defined by this proxy. 1207 */ 1208 boolean getIsUcmView() throws WvcmException; 1209 1210 /** 1211 * This view's config spec. 1212 */ 1213 PropertyName<CcConfigSpec> CONFIG_SPEC = 1214 new PropertyName<CcConfigSpec>(PROPERTY_NAMESPACE, "config-spec"); 1215 1216 /** 1217 * Get the value of this view's {@link #CONFIG_SPEC} property. 1218 * @return this view's config spec as a CcConfigSpec instance 1219 */ 1220 CcConfigSpec getConfigSpec() throws WvcmException; 1221 1222 /** 1223 * Set the value of this view's {@link #CONFIG_SPEC} property. 1224 * @param configSpec the new config spec for this view 1225 */ 1226 void setConfigSpec(CcConfigSpec configSpec); 1227 1228 /** 1229 * Network region in which the dynamic view is registered. 1230 * Not supported for other view types. 1231 * This is a write only property; to determine the region for 1232 * an existing view, use the CcViewTag.REGISTRY_REGION property. 1233 */ 1234 PropertyName<CcRegistryRegion> REGION = 1235 new PropertyName<CcRegistryRegion>(PROPERTY_NAMESPACE, "view-region"); 1236 1237 /** 1238 * Set the value of this view's {@link #REGION} property. This 1239 * property may only be set at view creation time. 1240 * This is a write only property. 1241 * If unspecified, the local host's network region will be used. 1242 * @param region network region in which to register the view 1243 */ 1244 void setRegion(CcRegistryRegion region); 1245 1246 /** 1247 * Path to directory in which shared cleartext for an automatic view 1248 * is stored. Not valid for other view types. 1249 * Can be set only at creation time. If unspecified, the product 1250 * default directory is used. 1251 */ 1252 PropertyName<String> SHARED_CLEARTEXT_STORAGE_PATH = 1253 new PropertyName<String>(PROPERTY_NAMESPACE, "shared-cltxt-stg"); 1254 1255 /** 1256 * Get the value of this view's {@link #SHARED_CLEARTEXT_STORAGE_PATH} 1257 * property. 1258 * Only supported for automatic views 1259 * @return Path to the shared cleartext storage this view. 1260 */ 1261 String getSharedCleartextStoragePath() throws WvcmException; 1262 1263 /** 1264 * Set the value of this view's {@link #SHARED_CLEARTEXT_STORAGE_PATH} 1265 * property. This property may only be set at view creation time and 1266 * only for automatic views. 1267 * If unspecified, the product default directory is used. 1268 */ 1269 void setSharedCleartextStoragePath(String path); 1270 1271 /** 1272 * Should derived objects created in this view be shared and made 1273 * available for winkin by other views? 1274 * (Dynamic views only, not supported for other view types.) 1275 */ 1276 PropertyName<Boolean> SHARE_DERIVED_OBJECTS = 1277 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "shared-dos"); 1278 1279 /** 1280 * Get the value of this view's {@link #SHARE_DERIVED_OBJECTS} property. 1281 * @return true if view creates shared derived objects, false otherwise 1282 */ 1283 Boolean getShareDerivedObjects() throws WvcmException; 1284 1285 /** 1286 * Set the value of this view's {@link #SHARE_DERIVED_OBJECTS} property. This 1287 * property may only be set at view creation time. 1288 * If unspecified, site-wide default is used. 1289 * If unspecified and no site-wide default, derived objects will be shared. 1290 * @param shareDerivedObjects true to make derived objects available for winkin 1291 * by other views, otherwise false 1292 */ 1293 void setShareDerivedObjects(Boolean shareDerivedObjects); 1294 1295 /** 1296 * The text mode of the view. The text mode specifies the line 1297 * terminator sequence for text files in the view. If no value is 1298 * set upon view creation, defaults to {@link TextMode#TRANSPARENT}. 1299 */ 1300 PropertyName<TextMode> TEXT_MODE = 1301 new PropertyName<TextMode>(PROPERTY_NAMESPACE, "text-mode"); 1302 1303 /** 1304 * Get the value of this view's {@link #TEXT_MODE} property. 1305 * @return enumeration value representing this view's text mode. 1306 * @throws WvcmException if this proxy doesn't define a value for this property. 1307 */ 1308 TextMode getTextMode() throws WvcmException; 1309 1310 /** 1311 * Set the value of this view's {@link #TEXT_MODE} property. This 1312 * property may only be set at view creation time. 1313 * @param textMode the text mode of the view. 1314 */ 1315 void setTextMode(TextMode textMode); 1316 1317 /** 1318 * Break a file area lock on this web view with the given lock info. 1319 * @param lockInfo information about the lock 1320 * @return true if the lock was broken; false otherwise 1321 * @throws WvcmException if a problem occurred breaking the lock 1322 */ 1323 boolean breakFileAreaLock(CcFileAreaLockInfo lockInfo) throws WvcmException; 1324 1325 /** 1326 * CcViewAccessInfo object contains the supported view access properties. 1327 */ 1328 public static final PropertyName<CcViewAccessInfo> VIEW_ACCESS_INFO = 1329 new PropertyName<CcViewAccessInfo>(PROPERTY_NAMESPACE, "view-access-info"); 1330 1331 /** 1332 * Returns the value of this proxy's {@link #VIEW_ACCESS_INFO} property. 1333 * 1334 * @return the CcViewAccessInfo object. 1335 * @throws WvcmException 1336 * if this proxy doesn't define a value for this property. 1337 */ 1338 public CcViewAccessInfo getViewAccessInfo() throws WvcmException; 1339 1340 /** 1341 * The storage location for a dynamic or snapshot view, 1342 * not supported for other view types. 1343 */ 1344 public static final PropertyName<CcStorageLocation> VIEW_STORAGE_LOCATION = 1345 new PropertyName<CcStorageLocation>(PROPERTY_NAMESPACE, "view-stgloc"); 1346 1347 /** 1348 * Set the value of this view's {@link #VIEW_STORAGE_LOCATION} property. 1349 * This property may only be set at view creation time. 1350 * It is a write-only property. 1351 * @param viewStorageLocation the storage location for the new view 1352 */ 1353 void setViewStorageLocation(CcStorageLocation viewStorageLocation); 1354 1355 /** 1356 * The storage path for a dynamic or automatic or snapshot view, 1357 * not supported for other view types. 1358 */ 1359 public static final PropertyName<String> VIEW_STORAGE_PATH = 1360 new PropertyName<String>(PROPERTY_NAMESPACE, "view-storage-path"); 1361 1362 /** 1363 * Returns the value of this proxy's {@link #VIEW_STORAGE_PATH} property. 1364 * 1365 * @return path to the view storage 1366 * @throws WvcmException 1367 * if this proxy doesn't define a value for this property. 1368 */ 1369 public String getViewStoragePath() throws WvcmException; 1370 1371 /** 1372 * Set the value of this view's {@link #VIEW_STORAGE_PATH} property. 1373 * This property may only be set at view creation time. 1374 * @param viewStoragePath the storage path for the new view 1375 */ 1376 void setViewStoragePath(String viewStoragePath); 1377 1378 /** 1379 * <p> 1380 * The permissions applied to this resource. 1381 * </p> 1382 */ 1383 public static final PropertyName<CcPermissions> PERMISSIONS = 1384 new PropertyName<CcPermissions>(PROPERTY_NAMESPACE, "cc-permissions"); 1385 1386 /** 1387 * Returns the value of this proxy's {@link #PERMISSIONS} property. 1388 * 1389 * @return A permissions object from which specific permissions 1390 * information can be extracted. 1391 * @throws WvcmException 1392 * if this proxy doesn't define a value for this property. 1393 */ 1394 public CcPermissions getPermissions() throws WvcmException; 1395 1396 /** 1397 * Does this view have non-shareable derived objects? 1398 * This property is supported for dynamic views only. 1399 */ 1400 public static final PropertyName<Boolean> IS_EXPRESS = 1401 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-express"); 1402 1403 /** 1404 * Returns the value of this proxy's {@link #IS_EXPRESS} property. 1405 * 1406 * @return true if this view has non-shareable DOs; false otherwise. 1407 * @throws WvcmException 1408 * if this proxy doesn't define a value for this property. 1409 */ 1410 public Boolean getIsExpress() throws WvcmException; 1411 1412 /** 1413 * Are this view's permissions valid? 1414 */ 1415 public static final PropertyName<Boolean> ARE_PERMISSIONS_VALID = 1416 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "are-permissions-valid"); 1417 1418 /** 1419 * Returns the value of this proxy's {@link #ARE_PERMISSIONS_VALID} property. 1420 * 1421 * @return true if this view's permissions are valid; false otherwise. 1422 * @throws WvcmException 1423 * if this proxy doesn't define a value for this property. 1424 */ 1425 public Boolean getArePermissionsValid() throws WvcmException; 1426 1427 /** 1428 * Is this view read-only? 1429 */ 1430 public static final PropertyName<Boolean> IS_READ_ONLY = 1431 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-read-only"); 1432 1433 /** 1434 * Returns the value of this proxy's {@link #IS_READ_ONLY} property. 1435 * 1436 * @return true if this view is read-only; false otherwise. 1437 * @throws WvcmException 1438 * if this proxy doesn't define a value for this property. 1439 */ 1440 public Boolean getIsReadOnly() throws WvcmException; 1441 1442 /** 1443 * Set the {@link #STREAM} property. 1444 * 1445 * @param stream the {@link Stream} object that 1446 * identifies the {@link #STREAM} for this Workspace. 1447 * @see #getStream 1448 */ 1449 public void setStream(Stream stream); 1450 1451 /** 1452 * Colocate view's storage directory under snapshot view directory, 1453 * not supported for other view types. 1454 */ 1455 public static final PropertyName<Boolean> COLOCATED_STORAGE = 1456 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "colocated-storage"); 1457 1458 /** 1459 * Set the {@link #COLOCATED_STORAGE} property. 1460 * This property may only be set at view creation time and only for 1461 * snapshot views. 1462 * It is a write-only property. 1463 * 1464 * @param colocatedStorage true to create view's storage directory 1465 * as a subdirectory of the snapshot view directory, false otherwise. 1466 * The value will default to false if not set at view creation. 1467 */ 1468 public void setColocatedStorage(Boolean colocatedStorage); 1469 1470 /** 1471 * Indicates whether this view will preserve 1472 * the VOB modification time for files when copying them into 1473 * the view. 1474 * If {@code true}, time is preserved, if {@code false} the current 1475 * time is used. If unspecified, the default is {@code false}. 1476 * This property can only be set at creation time, and only for 1477 * automatic and snapshot views.<p> 1478 * 1479 * For automatic views, this setting persists for the lifetime of 1480 * the view.<p> 1481 * 1482 * For snapshot views, it is an initial setting that may be changed 1483 * depending on the flag for subsequent update operations. 1484 */ 1485 public static final PropertyName<Boolean> PRESERVE_VOB_MODIFIED_TIME = 1486 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "preserve-vob-modified-time"); 1487 1488 /** 1489 * Get the value of this view's {@link #PRESERVE_VOB_MODIFIED_TIME} property. 1490 * @return {@code true} if file time stamps copied into the view 1491 * will preserve the VOB modification time, {@code false} otherwise 1492 */ 1493 Boolean getPreserveVobModifiedTime() throws WvcmException; 1494 1495 /** 1496 * Set the {@link #PRESERVE_VOB_MODIFIED_TIME} property. 1497 * This property may only be set at view creation time and only for 1498 * automatic and snapshot views. 1499 * If unspecified, VOB modification time will <em>not</em> be used 1500 * when copying files to the view.<p> 1501 * 1502 * For automatic views, this setting persists for the lifetime of 1503 * the view.<p> 1504 * 1505 * For snapshot views, it is an initial setting that may be changed 1506 * depending on the flag for subsequent update operations.<p> 1507 * 1508 * @param preserveVobModifiedTime {@code true} to preserve the VOB modified 1509 * time when copying files to the view, {@code false} to use current time. 1510 */ 1511 public void setPreserveVobModifiedTime(Boolean preserveVobModifiedTime); 1512 1513 /** 1514 * Restore entire view or select paths in the view - for automatic views only 1515 */ 1516 public CcView doCcRestore (RefreshFlag[] flags, Vector<String> paths, Feedback feedback) 1517 throws WvcmException; 1518 }