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 }