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