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