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, 2012. 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>The rebase command reconfigures a stream by adding, dropping, or
237 * replacing one or more of the stream's foundation baselines. The file and
238 * directory versions selected by those new baselines (and thus their
239 * associated activities) then become visible in the stream's views.
240 * </p>
241 * <p>
242 * Preconditions:
243 * </p>
244 * <ul>
245 * <li>The baseline is not from the stream that is being rebased.</li>
246 * <li>The baseline is labeled. Baselines created by deliver operations are
247 * not labeled by default.</li>
248 * <li>Another rebase operation is not in progress.</li>
249 * <li>A deliver operation is not in progress.</li>
250 * </ul>
251 * Additional rules apply to integration streams and development
252 * streams in selecting a baseline:
253 * <ul>
254 * <li>An integration stream can be rebased only to a baseline created in
255 * another project or to an imported or initial baseline of that project.</li>
256 * <li>A development stream can be rebased to a baseline that meets one
257 * of the following criteria:
258 * <ul>
259 * <li>The baseline was created in its parent stream.</li>
260 * <li>The baseline is in its parent stream's foundation.</li>
261 * <li>The baseline is an ancestor of the development stream's parent
262 * foundation baseline and created on the same stream as the parent's
263 * foundation baseline.</li>
264 * <li>The baseline was created in a stream other than its parent
265 * stream and is contained in its parent stream. A baseline is
266 * contained in another baseline if all changes in the first baseline
267 * are included in the second baseline.</li>
268 * </ul>
269 * </li>
270 * </ul>
271 * <p>
272 * Postconditions:
273 * </p>
274 * <ul>
275 * <li>A rebase is started on the specified view. Use one of the other
276 * methods to resume, complete, or cancel the rebase.</li>
277 * <li>The activity is set to the rebase activity.</li>
278 * <li>If <code>baselineList</code> is specified and those baselines meet
279 * the preconditions above, the rebase will be started to those baselines.</li>
280 * <li>If <code>baselineList</code> is not specified, the rebase will be
281 * started to the source stream's recommended baselines.</li>
282 * <li>If <code>doAutoMerge</code> is true, elements needing merge will
283 * attempt to automatically merge on the server.</li>
284 * </ul>
285 *
286 * @param baselineList optional list of baselines to include
287 * @param doAutoMerge tells the rebase operation to attempt auto merges
288 * @param integrationListener optional listener to get feedback on operation
289 * @param updateListener optional listener to get feedback on view update
290 * changes
291 * @param feedback optional property request
292 * @return new proxy to the view with requested properties
293 *
294 * @throws WvcmException if there is an error starting the rebase operation
295 */
296 public CcView doStartRebase(
297 List<CcBaseline> baselineList,
298 boolean doAutoMerge,
299 CcListener integrationListener,
300 CcListener updateListener,
301 Feedback feedback) throws WvcmException;
302
303 /**
304 * <p>
305 * Restarts a rebase operation from the point at which it has been
306 * suspended. A rebase operation can be interrupted or when it encounters an
307 * external error or condition that requires more information. However, you
308 * cannot resume a rebase operation that has been successfully halted with
309 * the <code>CcView.doCancelRebase()</code> operation.
310 * </p>
311 *
312 * @param doAutoMerge tells the rebase operation to attempt auto merges
313 * @param integrationListener optional listener to get feedback on operation
314 * @param updateListener optional listener to get feedback on view update
315 * changes
316 * @param feedback optional property request
317 * @return new proxy to the view with requested properties
318 * @throws WvcmException if there is an error resuming the rebase operation
319 */
320 public CcView doResumeRebase(
321 boolean doAutoMerge,
322 CcListener integrationListener,
323 CcListener updateListener,
324 Feedback feedback) throws WvcmException;
325
326
327 /**
328 * <p>
329 * Completes a rebase operation taking the following actions:
330 * </p>
331 * <ul>
332 * <li>Resumes the rebase operation</li>
333 * <li>Verifies that needed merges were made</li>
334 * <li>Checks in any versions that are checked out</li>
335 * <li>Records changes in the change set for the rebase activity</li>
336 * </ul>
337 *
338 * @param integrationListener optional listener to get feedback on operation
339 * @param updateListener optional listener to get feedback on view update
340 * changes
341 * @param feedback optional property request
342 * @return new proxy to the view with requested properties
343 * @throws WvcmException if there is an error completing the
344 * rebase operation
345 */
346 public CcView doCompleteRebase(
347 CcListener integrationListener,
348 CcListener updateListener,
349 Feedback feedback) throws WvcmException;
350
351 /**
352 * <p>
353 * Cancels a rebase operation and restores the stream's previous
354 * configuration. Deletes the integration activity and any
355 * versions created by the rebase operation that are not yet checked in.
356 * </p>
357 * <p>
358 * Preconditions:
359 * </p>
360 * <ul>
361 * <li>None of the versions created in the integration activity can be
362 * checked in.</li>
363 * </ul>
364 *
365 * @param integrationListener optional listener to get feedback on operation
366 * @param updateListener optional listener to get feedback on view update
367 * changes
368 * @param feedback optional property request
369 * @return new proxy to the view with requested properties
370 * @throws WvcmException if there is an error canceling the
371 * rebase operation
372 */
373 public CcView doCancelRebase(
374 CcListener integrationListener,
375 CcListener updateListener,
376 Feedback feedback) throws WvcmException;
377
378 /**
379 * <p>
380 * The deliver command lets you deliver work from a source stream to a
381 * target stream in the same or a different project. This method delivers
382 * all activities in the stream that have changed since the last deliver
383 * operation from the stream. The target stream is determined by the
384 * <code>CcView</code> integration view passed to this method.
385 * </p>
386 * <p>
387 * Preconditions:
388 * </p>
389 * <ul>
390 * <li>A deliver operation is not currently in progress.</li>
391 * <li>A rebase operation is not currently in progress.</li>
392 * <li>The checkout states must match the project's UCM policies.</li>
393 * <li>Delivering to a non-default target stream is subject to
394 * restrictions. Refer to the ClearCase cleartool deliver man page
395 * for details.</li>
396 * </ul>
397 * <p>
398 * Postconditions:
399 * </p>
400 * <ul>
401 * <li>A deliver is started on the specified view. Use one of the other
402 * deliver methods to resume, complete, or cancel the deliver.</li>
403 * <li>The deliver operation creates a UCM integration activity and sets
404 * it as the current activity in the integration view. This activity
405 * records the change set for the deliver operation.</li>
406 * </ul>
407 *
408 * @param integrationView the target view to deliver to
409 * @param doAutoMerge tells the deliver operation to attempt auto merges
410 * @param integrationListener optional listener to get feedback on operation
411 * @param feedback optional property request
412 * @return new proxy to the view with requested properties
413 * @throws WvcmException if there is an error starting the deliver operation
414 */
415 public CcView doStartDeliver(
416 CcView integrationView,
417 boolean doAutoMerge,
418 CcListener integrationListener,
419 Feedback feedback) throws WvcmException;
420
421 /**
422 * <p>
423 * Deliver the specified baselines from the source stream associated with
424 * this view to the target stream associated with the specified integration
425 * view. A development stream can deliver activities or baselines, but an
426 * integration stream can deliver only baselines. Refer to the ClearCase
427 * cleartool deliver man page for more details.
428 * </p>
429 * <p>
430 * Preconditions:
431 * </p>
432 * <ul>
433 * <li>A deliver operation is not currently in progress.</li>
434 * <li>A rebase operation is not currently in progress.</li>
435 * <li>The checkout states must match the project's UCM policies.</li>
436 * <li>Delivering to a non-default target stream is subject to
437 * restrictions. Refer to the ClearCase cleartool deliver man page
438 * for details.</li>
439 * </ul>
440 * <p>
441 * Postconditions:
442 * </p>
443 * <ul>
444 * <li>A deliver is started on the specified view. Use one of the other
445 * deliver methods to resume, complete, or cancel the deliver.</li>
446 * <li>The deliver operation creates a UCM integration activity and sets
447 * it as the current activity in the integration view. This activity
448 * records the change set for the deliver operation.</li>
449 * </ul>
450 *
451 * @param integrationView the target view to deliver to
452 * @param baselineList list of baselines to deliver
453 * @param doAutoMerge tells the deliver operation to attempt auto merges
454 * @param integrationListener optional listener to get feedback on operation
455 * @param feedback optional property request
456 * @return new proxy to the view with requested properties
457 * @throws WvcmException if there is an error starting the deliver operation
458 */
459 public CcView doStartDeliverBaselines(
460 CcView integrationView,
461 ResourceList<CcBaseline> baselineList,
462 boolean doAutoMerge,
463 CcListener integrationListener,
464 Feedback feedback) throws WvcmException;
465
466 /**
467 * <p>
468 * Deliver the specified activities from the source stream associated with
469 * this view to the target stream associated with the specified integration
470 * view. The list of activities must be self-consistent: the
471 * activities specified must not depend on the inclusion of any unspecified
472 * activities. Refer to the ClearCase cleartool deliver man page for more
473 * details.
474 * </p>
475 * <p>
476 * Preconditions:
477 * </p>
478 * <ul>
479 * <li>A deliver operation is not currently in progress.</li>
480 * <li>A rebase operation is not currently in progress.</li>
481 * <li>The list of activities must be self-consistent.</li>
482 * <li>The checkout states must match the project's UCM policies.</li>
483 * <li>Delivering to a non-default target stream is subject to
484 * restrictions. Refer to the ClearCase cleartool deliver man page
485 * for details.</li>
486 * </ul>
487 * <p>
488 * Postconditions:
489 * </p>
490 * <ul>
491 * <li>A deliver is started on the specified view. Use one of the other
492 * deliver methods to resume, complete, or cancel the deliver.</li>
493 * <li>The deliver operation creates a UCM integration activity and sets
494 * it as the current activity in the integration view. This activity
495 * records the change set for the deliver operation.</li>
496 * </ul>
497 *
498 * @param integrationView the target view to deliver to
499 * @param activityList optional list of activities to deliver
500 * @param doAutoMerge tells the deliver operation to attempt auto merges
501 * @param integrationListener optional listener to get feedback on operation
502 * @param feedback optional property request
503 * @return new proxy to the view with requested properties
504 * @throws WvcmException if there is an error starting the deliver operation
505 *
506 */
507 public CcView doStartDeliverActivities(
508 CcView integrationView,
509 ResourceList<CcActivity> activityList,
510 boolean doAutoMerge,
511 CcListener integrationListener,
512 Feedback feedback) throws WvcmException;
513
514 /**
515 * <p>
516 * In a MultiSite configuration where a team of developers works at a
517 * remote site, the project's integration stream may be mastered at a
518 * different replica than the developers' development streams. In this
519 * situation, the developers cannot complete deliver operations to the
520 * integration stream. When such a stream mastership situation is
521 * detected, the deliver operation starts but no versions are merged.
522 * Instead, the deliver operation is left in a posted state. You must
523 * periodically find and complete posted deliver operations. The post
524 * deliver command lets you do such the delivery work from a source
525 * stream to a target stream in the same or a different project. This
526 * method delivers all activities in the stream that have changed since
527 * the last deliver operation from the stream. The target stream is
528 * determined by the <code>Stream</code> targetStream passed to this
529 * method.
530 * </p>
531 * <p>
532 * Preconditions:
533 * </p>
534 * <ul>
535 * <li>A deliver operation is not currently in progress.</li>
536 * <li>A rebase operation is not currently in progress.</li>
537 * <li>The checkout states must match the project's UCM policies.</li>
538 * <li>Delivering to a non-default target stream is subject to
539 * restrictions. Refer to the ClearCase cleartool deliver man page
540 * for details.</li>
541 * </ul>
542 * <p>
543 * Postconditions:
544 * </p>
545 * <ul>
546 * <li>A deliver is started but no versions are merged. Instead, the
547 * deliver operation is left in a posted state. You must periodically find
548 * and complete posted deliver operations.</li>
549 * </ul>
550 *
551 * @param targetStream the target stream to deliver to
552 * @param integrationListener optional listener to get feedback on operation
553 * @param feedback optional property request
554 * @return new proxy to the view with requested properties
555 * @throws WvcmException if there is an error starting the deliver operation
556 */
557 public CcView doStartPostDeliver(
558 Stream targetStream,
559 CcListener integrationListener,
560 Feedback feedback) throws WvcmException;
561
562 /**
563 * <p>
564 * Post deliver the specified baselines from the source stream associated
565 * with this view to the target stream. A development stream can deliver
566 * activities or baselines, but an integration stream can deliver only
567 * baselines. Refer to the ClearCase cleartool deliver man page for more
568 * details.
569 * </p>
570 * <p>
571 * Preconditions:
572 * </p>
573 * <ul>
574 * <li>A deliver operation is not currently in progress.</li>
575 * <li>A rebase operation is not currently in progress.</li>
576 * <li>The checkout states must match the project's UCM policies.</li>
577 * <li>Delivering to a non-default target stream is subject to
578 * restrictions. Refer to the ClearCase cleartool deliver man page
579 * for details.</li>
580 * </ul>
581 * <p>
582 * Postconditions:
583 * </p>
584 * <ul>
585 * <li>A deliver is started but no versions are merged. Instead, the
586 * deliver operation is left in a posted state. You must periodically find
587 * and complete posted deliver operations.</li>
588 * </ul>
589 *
590 * @param targetStream the target stream to deliver to
591 * @param baselineList list of baselines to deliver
592 * @param integrationListener optional listener to get feedback on operation
593 * @param feedback optional property request
594 * @return new proxy to the view with requested properties
595 * @throws WvcmException if there is an error starting the deliver operation
596 */
597 public CcView doStartPostDeliverBaselines(
598 Stream targetStream,
599 ResourceList<CcBaseline> baselineList,
600 CcListener integrationListener,
601 Feedback feedback) throws WvcmException;
602
603 /**
604 * <p>
605 * Post deliver the specified activities from the source stream associated
606 * with this view to the target stream associated with the specified
607 * integration view. The list of activities must be self-consistent: the
608 * activities specified must not depend on the inclusion of any unspecified
609 * activities. Refer to the ClearCase cleartool deliver man page for more
610 * details.
611 * </p>
612 * <p>
613 * Preconditions:
614 * </p>
615 * <ul>
616 * <li>A deliver operation is not currently in progress.</li>
617 * <li>A rebase operation is not currently in progress.</li>
618 * <li>The list of activities must be self-consistent.</li>
619 * <li>The checkout states must match the project's UCM policies.</li>
620 * <li>Delivering to a non-default target stream is subject to
621 * restrictions. Refer to the ClearCase cleartool deliver man page
622 * for details.</li>
623 * </ul>
624 * <p>
625 * Postconditions:
626 * </p>
627 * <ul>
628 * <li>A deliver is started but no versions are merged. Instead, the
629 * deliver operation is left in a posted state. You must periodically find
630 * and complete posted deliver operations.</li>
631 * </ul>
632 *
633 * @param targetStream the target stream to deliver to
634 * @param activityList optional list of activities to deliver
635 * @param integrationListener optional listener to get feedback on operation
636 * @param feedback optional property request
637 * @return new proxy to the view with requested properties
638 * @throws WvcmException if there is an error starting the deliver operation
639 *
640 */
641 public CcView doStartPostDeliverActivities(
642 Stream targetStream,
643 ResourceList<CcActivity> activityList,
644 CcListener integrationListener,
645 Feedback feedback) throws WvcmException;
646
647 /**
648 * <p>
649 * Resumes a deliver operation from the point at which it was suspended.
650 * </p>
651 *
652 * @param integrationView the target view to deliver to
653 * @param integrationListener optional listener to get feedback on operation
654 * @param feedback optional property request
655 * @return new proxy to the view with requested properties
656 * @throws WvcmException if there is an error resuming the deliver operation
657 */
658 public CcView doResumeDeliver(
659 CcView integrationView,
660 CcListener integrationListener,
661 Feedback feedback) throws WvcmException;
662
663 /**
664 * <p>
665 * Resets a deliver operation in progress to use the new integration view
666 * </p>
667 *
668 * @param integrationView the new integration view
669 * @param integrationListener optional listener to get feedback on operation
670 * @param feedback optional property request
671 * @return new proxy to the view with requested properties
672 * @throws WvcmException if there is an error resuming the deliver operation
673 */
674 public CcView doResetDeliver(
675 CcView integrationView,
676 CcListener integrationListener,
677 Feedback feedback) throws WvcmException;
678
679 /**
680 * <p>
681 * Complete in-progress deliver operation taking the following actions:
682 * </p>
683 * <ul>
684 * <li>Verify that all versions in the integration view have been
685 * successfully merged and that merge conflicts have been resolved.</li>
686 * <li>Check in resulting versions in the integration view.</li>
687 * <li>Unset the integration activity in the integration view.</li>
688 * </ul>
689 * <p>
690 * If unresolved merge conflicts exist, the deliver operation is suspended.
691 * </p>
692 *
693 * @param integrationView the target view to deliver to
694 * @param integrationListener optional listener to get feedback on operation
695 * @param mergeElements optional list of client maintained
696 * <code>CcMergeElement</code>s to allow the operation to cancel any
697 * checkouts
698 * @param feedback optional property request
699 * @return new proxy to the view with requested properties
700 * @throws WvcmException if there is an error completing the deliver
701 * operation
702 */
703 public CcView doCompleteDeliver(
704 CcView integrationView,
705 CcListener integrationListener,
706 CcMergeElement[] mergeElements,
707 Feedback feedback) throws WvcmException;
708
709 /**
710 * <p>
711 * Halt a deliver operation in progress, returning the source and
712 * destination streams to their states before the deliver operation began.
713 * Note: This method cannot cancel a deliver operation after the completion
714 * phase has begun. See ClearCase cleartool deliver man page for details.
715 * </p>
716 *
717 * @param integrationView the target view to deliver to
718 * @param integrationListener optional listener to get feedback on operation
719 * @param mergeElements optional list of client maintained
720 * <code>CcMergeElement</code>s to allow the operation to cancel any
721 * checkouts
722 * @param feedback optional property request
723 * @return new proxy to the view with requested properties
724 * @throws WvcmException if there is an error cancelling the deliver
725 * operation
726 */
727 public CcView doCancelDeliver(
728 CcView integrationView,
729 CcListener integrationListener,
730 CcMergeElement[] mergeElements,
731 Feedback feedback) throws WvcmException;
732
733 /**
734 * <p>
735 * Runs findmerge command in this view. Searches the specified elements for merge candidates using
736 * the specified VOB resource as a search criteria. The VOB resource can be either a branch type, or
737 * a label type, or a version. Flags further define the search criteria.
738 * Found merge candidates are returned through the listener.
739 * </p>
740 *
741 * @param listener optional listener to get feedback on operation.
742 * Note: although a listener is not required, that is the only way for a consumer of this method
743 * to receive the results of the findmerge operation.
744 * @param flags array of flags which specify the behavior of the operation
745 * @param fromVobResource VOB resource to use as a search criteria; Legal argument types include
746 * CcBranchType, CcLabelType and CcVersion
747 * @param feedback optional property request
748 * @return new proxy to the view with requested properties
749 * @throws WvcmException if there is an error completing the findmerge operation
750 *
751 * @return new proxy to the view with requested properties
752 * @throws WvcmException
753 */
754 public CcView doFindMergeCandidates(
755 CcFindmergeListener listener,
756 FindmergeFlag []flags,
757 CcVobResource fromVobResource,
758 List<CcFile> elements,
759 Feedback feedback) throws WvcmException;
760
761 /**
762 * <p>
763 * Runs findmerge command in this view. Searches the specified elements for merge candidates using
764 * the specified View resource as a search criteria. Flags further define the search criteria.
765 * Found merge candidates are returned through the listener.
766 * </p>
767 *
768 * @param listener optional listener to get feedback on operation.
769 * Note: although a listener is not required, that is the only way for a consumer of this method
770 * to receive the results of the findmerge operation.
771 * @param flags array of flags which specify the behavior of the operation
772 * @param fromViewTag View tag to use as a search criteria;
773 * @param feedback optional property request
774 * @return new proxy to the view with requested properties
775 * @throws WvcmException if there is an error completing the findmerge operation
776 *
777 * @return new proxy to the view with requested properties
778 * @throws WvcmException
779 */
780 public CcView doFindMergeCandidates(
781 CcFindmergeListener listener,
782 FindmergeFlag []flags,
783 CcViewTag fromViewTag,
784 List<CcFile> elements,
785 Feedback feedback) throws WvcmException;
786
787 /**
788 * <p>
789 * Runs findmerge command in this view. The specified activities are used as the search criteria.
790 * Flags further define the search criteria. Found merge candidates are returned through the listener.
791 *
792 * </p>
793 *
794 * @param listener optional listener to get feedback on operation.
795 * Note: although a listener is not required, that is the only way for a consumer of this method
796 * to receive the results of the findmerge operation.
797 * @param flags array of flags which specify the behavior of the operation
798 * @param activities list of activities whose change sets to search for merge candidates
799 * @param feedback optional property request
800 * @return new proxy to the view with requested properties
801 * @throws WvcmException if there is an error completing the findmerge operation
802 *
803 */
804 public CcView doFindMergeCandidatesFromChangeSets(
805 CcFindmergeListener listener,
806 FindmergeFlag []flags,
807 List<CcActivity> activities,
808 Feedback feedback) throws WvcmException;
809
810 /**
811 * <p>Upgrade this web view's file area.</p>
812 * <p>Preconditions:</p>
813 * <ul>
814 * <li>This web view's file area schema version must be older than the
815 * version supported by the currently running CM API file area management
816 * code.
817 * </li>
818 * </ul>
819 * <p>Postconditions:</p>
820 * <ul>
821 * <li>This web view's file area schema will be upgraded to the currently
822 * supported version.</li>
823 * </ul>
824 * <p>This operation has no effect on non-web views, and on web views that
825 * are already compatible.
826 * </p>
827 * @throws WvcmException if the preconditions are not met, or if there is an
828 * error upgrading the file area.
829 */
830 public CcView doUpgradeFileArea(Feedback feedback) throws WvcmException;
831
832 /**
833 * Work on the specified activity in this CC view.
834 * <code>act</code> can either be a CcActivity proxy or a CqRecord proxy.
835 * <p>
836 * If <code>act</code> is a CcActivity proxy and the associated project is
837 * not CQ enabled, this operation simply makes it the current activity
838 * in this view. If the project is CQ enabled, it additionally validates
839 * that the bound CQ record is in an active state.
840 * </p>
841 * <p>
842 * If <code>act</code> is a CqRecord proxy, this operation is more
843 * involved. First, <code>act</code> is automatically transitioned to an
844 * active state. If this transition involves required fields, the caller
845 * may be prompted to provide values for those fields. Next a CcActivity
846 * resource is created in this view's stream and is bound to
847 * <code>act</code>. Finally, it makes the new CC activity resource the
848 * current activity in this view.
849 * </p>
850 * @param act the activity to work on - either a CqRecord or CcActivity
851 * @param feedback optional property request
852 * @return new proxy for this view, with requested properties
853 * @see javax.wvcm.Workspace#CURRENT_ACTIVITY
854 * @see com.ibm.rational.wvcm.stp.StpActivity#BOUND_CC_ACTIVITY
855 * @see com.ibm.rational.wvcm.stp.StpActivity#BOUND_CQ_RECORD
856 */
857 public CcView doWorkOnActivity(StpActivity act, Feedback feedback) throws WvcmException;
858
859 /**
860 * <p>
861 * Transitions the specified activity to the default completed state.
862 * <code>act</code> can either be a CcActivity proxy or a CqRecord proxy.
863 * </p>
864 * <p>
865 * NOTE: Unlike most API methods, the optional property request will be executed
866 * on the returned StpActivity, not the CcView proxy on which the method
867 * was invoked.
868 * </p>
869 * <p>Preconditions:</p>
870 * <ul>
871 * <li><code>act</code> is a bound CqRecord/CcActivity pair in a CQ-enabled
872 * context.</li>
873 * </ul>
874 * <p>Postconditions:</p>
875 * <ul>
876 * <li>If <code>act</code>'s CcActivity has checkouts, the operation is
877 * cancelled and there is no change to the activity.</li>
878 * <li>Transitions <code>act</code>'s CqRecord to the default completed state.
879 * If this transition involves required fields, the caller may be prompted
880 * to provide values for those fields.</li>
881 * <li>Unsets <code>act</code>'s CcActivity from all views'
882 * {@link javax.wvcm.Workspace#CURRENT_ACTIVITY} property.</li>
883 * </ul>
884 * @param act the activity to finish
885 * @param feedback optional property request for the activity
886 * @return new proxy for the activity, with requested properties
887 * @throws WvcmException if the preconditions are not met.
888 */
889 public StpActivity doFinishActivity(StpActivity act, Feedback feedback)
890 throws WvcmException;
891
892 /**
893 * <p>
894 * Synchronize this web view file area's local databases to accurately reflect the
895 * current state of the file area. The databases available to synchronize are:
896 * </p>
897 * <ul>
898 * <li>VOB database: This contains the loaded vobs in the web view. A server connection
899 * is required to synchronize this database.</li>
900 * <li>Modified files database: This contains the checkouts and hijacks in the web view.
901 * A server connection <i>not</i> required to synchronize this database.</li>
902 * </ul>
903 * @param flags array of flags which specify the databases to synchronize.
904 * @param feedback optional property request for the view
905 * @return A new proxy for this resource, whose properties are specified by feedback.
906 * @throws WvcmException
907 */
908 public CcView doSynchronizeFileAreaDb(SynchronizeFileAreaDbFlag[] flags, Feedback feedback)
909 throws WvcmException;
910
911 /**
912 * Register this local web view's file area in the local file area registry.
913 * Web views are registered automatically when created, but may need to be
914 * re-registered if the registry is accidentally deleted, etc.
915 */
916 public void registerFileArea() throws WvcmException;
917
918 /**
919 * Remove this local web view's file area from the local file area registry.
920 * Once removed, this view will no longer show up when listing local views.
921 * @see com.ibm.rational.wvcm.stp.cc.CcProvider#getClientViewList(javax.wvcm.PropertyRequestItem.PropertyRequest)
922 */
923 public void unregisterFileArea() throws WvcmException;
924
925 /**
926 * If this is a local web view, the URL of the CCRC WAN server where this
927 * web view's view database resides.
928 */
929 PropertyName<String> SERVER_URL =
930 new PropertyName<String>(PROPERTY_NAMESPACE, "server-url");
931
932 /**
933 * Get the value of this proxy's {@link #SERVER_URL} property.
934 * @return this view's server URL
935 * @throws WvcmException if this proxy doesn't define a value for this property.
936 */
937 public String getServerUrl() throws WvcmException;
938
939 /**
940 * Change the URL used to connect to the CCRC WAN server on which this web view resides.
941 * Note: Web views cannot be moved from one CCRC WAN server to another.
942 * Use this method only to change the server URL, not to try to connect to
943 * a different server.
944 * <p>
945 * This may be necessary if, for example:
946 * <ul>
947 * <li>The CCRC WAN server administrator changes the CCRC WAN server's port number</li>
948 * <li>The client needs a secure HTTP connection to the CCRC WAN server:
949 * "https://..." instead of "http://..."</li>
950 * <li>The CCRC WAN server is moved to a different internet subdomain</li>
951 * </ul>
952 * @param updatedUrl the updated URL of this web view's CCRC WAN server
953 * @throws WvcmException
954 */
955 public void updateServerUrl(String updatedUrl) throws WvcmException;
956
957 /**
958 * This view's uuid as a string.
959 */
960 PropertyName<String> VIEW_UUID_STRING =
961 new PropertyName<String>(PROPERTY_NAMESPACE, "view-uuid-string");
962
963 /**
964 * Get the value of this proxy's {@link #VIEW_UUID_STRING} property.
965 * @return this view's uuid
966 * @throws WvcmException if this proxy doesn't define a value for this property.
967 */
968 public String getViewUuidString() throws WvcmException;
969
970 /**
971 * This view's view tag as a string.
972 */
973 PropertyName<String> VIEW_TAG_STRING =
974 new PropertyName<String>(PROPERTY_NAMESPACE, "view-tag-string");
975
976 /**
977 * Get the value of this proxy's {@link #VIEW_TAG_STRING} property.
978 * @return this view's view tag
979 * @throws WvcmException if this proxy doesn't define a value for this property.
980 */
981 public String getViewTagString() throws WvcmException;
982
983 /**
984 * Set the value of this view's {@link #VIEW_TAG_STRING} property.
985 * This property may only be set at view creation time.
986 * @param viewTag the view tag for the new view
987 */
988 void setViewTagString(String viewTag);
989
990 /**
991 * This view's view tag as a {@link CcViewTag} resource.
992 */
993 PropertyName<CcViewTag> VIEW_TAG =
994 new PropertyName<CcViewTag>(PROPERTY_NAMESPACE, "view-tag");
995
996 /**
997 * Get the value of this proxy's {@link #VIEW_TAG} property.
998 * @return this view's view tag
999 * @throws WvcmException if this proxy doesn't define a value for this property.
1000 */
1001 public CcViewTag getViewTag() throws WvcmException;
1002
1003 /** Kind of view to which this tag refers */
1004 PropertyName<ViewType> VIEW_TYPE =
1005 new PropertyName<ViewType>(PROPERTY_NAMESPACE,
1006 "view-view-type");
1007
1008 /**
1009 * Returns the value of this proxy's {@link #VIEW_TYPE} property.
1010 *
1011 * @return Kind of view this tag refers to.
1012 * @throws WvcmException
1013 * if this proxy doesn't define a value for this property.
1014 */
1015 ViewType getViewType() throws WvcmException;
1016
1017 /**
1018 * Whereas a CcView resource's {@link javax.wvcm.Folder#CHILD_MAP} property
1019 * returns the root directories of <i>all</i> VOBs, LOADED_CHILD_MAP only
1020 * returns the root directories of VOBs that are partially or fully loaded
1021 * in this view (if this is a web view) or mounted (if this is a dynamic view).
1022 */
1023 PropertyName<Map<String,Resource>> LOADED_CHILD_MAP =
1024 new PropertyName<Map<String,Resource>>(PROPERTY_NAMESPACE, "loaded-child-map");
1025
1026 /**
1027 * Get the value of this proxy's {@link #LOADED_CHILD_MAP} property.
1028 * @return this view's loaded child map
1029 * @throws WvcmException if this proxy doesn't define a value for this property.
1030 */
1031 public Map<String,Resource> getLoadedChildMap() throws WvcmException;
1032
1033 /**
1034 * This web view's file area root directory on the local machine.
1035 * The value of this property will be null if it does not have
1036 * a file area on the local machine.
1037 * Only supported for web views.
1038 */
1039 PropertyName<File> FILE_AREA_ROOT_DIRECTORY =
1040 new PropertyName<File>(PROPERTY_NAMESPACE, "file-area-root-directory");
1041
1042 /**
1043 * Returns the value of the {@link #FILE_AREA_ROOT_DIRECTORY} property.
1044 * @return This view's copy area root directory, or null if it has
1045 * no copy area on the local machine
1046 * @throws WvcmException if this property is not defined by this proxy.
1047 */
1048 public File getFileAreaRootDirectory() throws WvcmException;
1049
1050 /**
1051 * For a UCM view, the list of root directories for all components
1052 * included in that view's stream.
1053 * Always an empty list for non-UCM views.
1054 */
1055 PropertyName<ResourceList<CcDirectory>> COMPONENT_ROOT_DIRECTORY_LIST =
1056 new PropertyName<ResourceList<CcDirectory>>(PROPERTY_NAMESPACE, "component-root-directory-list");
1057
1058 /**
1059 * Returns the value of the {@link #COMPONENT_ROOT_DIRECTORY_LIST} property.
1060 * @return List of the component root directories for this view's UCM stream,
1061 * or an empty list if this is not a UCM view.
1062 * @throws WvcmException if this property is not defined by this proxy.
1063 */
1064 public ResourceList<CcDirectory> getComponentRootDirectoryList() throws WvcmException;
1065
1066 /**
1067 * Is this web view's local file area schema version older than the version
1068 * supported by the running CM API file management code? If so, the file
1069 * area needs to be upgraded before it can be used.
1070 *
1071 * @see com.ibm.rational.wvcm.stp.cc.CcView#doUpgradeFileArea(Feedback)
1072 */
1073 PropertyName<Boolean> FILE_AREA_NEEDS_UPGRADE =
1074 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "file-area-needs-upgrade");
1075
1076 /**
1077 * Get the value of this view's {@link #FILE_AREA_NEEDS_UPGRADE} property.
1078 * @return true if this view's local file area needs upgrading; false otherwise.
1079 * @throws WvcmException if this property is not defined by this proxy.
1080 */
1081 boolean getFileAreaNeedsUpgrade() throws WvcmException;
1082
1083 /**
1084 * Is this view associated with a UCM stream?.
1085 */
1086 PropertyName<Boolean> IS_UCM_VIEW =
1087 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-ucm-view");
1088
1089 /**
1090 * Get the value of this view's {@link #IS_UCM_VIEW} property.
1091 * @return true if this view represents a UCM view; false otherwise.
1092 * @throws WvcmException if this property is not defined by this proxy.
1093 */
1094 boolean getIsUcmView() throws WvcmException;
1095
1096 /**
1097 * This view's config spec.
1098 */
1099 PropertyName<CcConfigSpec> CONFIG_SPEC =
1100 new PropertyName<CcConfigSpec>(PROPERTY_NAMESPACE, "config-spec");
1101
1102 /**
1103 * Get the value of this view's {@link #CONFIG_SPEC} property.
1104 * @return this view's config spec as a CcConfigSpec instance
1105 */
1106 CcConfigSpec getConfigSpec() throws WvcmException;
1107
1108 /**
1109 * Set the value of this view's {@link #CONFIG_SPEC} property.
1110 * @param configSpec the new config spec for this view
1111 */
1112 void setConfigSpec(CcConfigSpec configSpec);
1113
1114 /**
1115 * Network region in which the dynamic view is registered.
1116 * Not supported for other view types.
1117 * This is a write only property; to determine the region for
1118 * an existing view, use the CcViewTag.REGISTRY_REGION property.
1119 */
1120 PropertyName<CcRegistryRegion> REGION =
1121 new PropertyName<CcRegistryRegion>(PROPERTY_NAMESPACE, "view-region");
1122
1123 /**
1124 * Set the value of this view's {@link #REGION} property. This
1125 * property may only be set at view creation time.
1126 * This is a write only property.
1127 * If unspecified, the local host's network region will be used.
1128 * @param region network region in which to register the view
1129 */
1130 void setRegion(CcRegistryRegion region);
1131
1132 /**
1133 * Should derived objects created in this view be shared and made
1134 * available for winkin by other views?
1135 * (Dynamic views only, not supported for other view types.)
1136 */
1137 PropertyName<Boolean> SHARE_DERIVED_OBJECTS =
1138 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "shared-dos");
1139
1140 /**
1141 * Get the value of this view's {@link #SHARE_DERIVED_OBJECTS} property.
1142 * @return true if view creates shared derived objects, false otherwise
1143 */
1144 Boolean getShareDerivedObjects() throws WvcmException;
1145
1146 /**
1147 * Set the value of this view's {@link #SHARE_DERIVED_OBJECTS} property. This
1148 * property may only be set at view creation time.
1149 * If unspecified, site-wide default is used.
1150 * If unspecified and no site-wide default, derived objects will be shared.
1151 * @param shareDerivedObjects true to make derived objects available for winkin
1152 * by other views, otherwise false
1153 */
1154 void setShareDerivedObjects(Boolean shareDerivedObjects);
1155
1156 /**
1157 * The text mode of the view. The text mode specifies the line
1158 * terminator sequence for text files in the view. If no value is
1159 * set upon view creation, defaults to {@link TextMode#TRANSPARENT}.
1160 */
1161 PropertyName<TextMode> TEXT_MODE =
1162 new PropertyName<TextMode>(PROPERTY_NAMESPACE, "text-mode");
1163
1164 /**
1165 * Get the value of this view's {@link #TEXT_MODE} property.
1166 * @return enumeration value representing this view's text mode.
1167 * @throws WvcmException if this proxy doesn't define a value for this property.
1168 */
1169 TextMode getTextMode() throws WvcmException;
1170
1171 /**
1172 * Set the value of this view's {@link #TEXT_MODE} property. This
1173 * property may only be set at view creation time.
1174 * @param textMode the text mode of the view.
1175 */
1176 void setTextMode(TextMode textMode);
1177
1178 /**
1179 * Break a file area lock on this web view with the given lock info.
1180 * @param lockInfo information about the lock
1181 * @return true if the lock was broken; false otherwise
1182 * @throws WvcmException if a problem occurred breaking the lock
1183 */
1184 boolean breakFileAreaLock(CcFileAreaLockInfo lockInfo) throws WvcmException;
1185
1186 /**
1187 * CcViewAccessInfo object contains the supported view access properties.
1188 */
1189 public static final PropertyName<CcViewAccessInfo> VIEW_ACCESS_INFO =
1190 new PropertyName<CcViewAccessInfo>(PROPERTY_NAMESPACE, "view-access-info");
1191
1192 /**
1193 * Returns the value of this proxy's {@link #VIEW_ACCESS_INFO} property.
1194 *
1195 * @return the CcViewAccessInfo object.
1196 * @throws WvcmException
1197 * if this proxy doesn't define a value for this property.
1198 */
1199 public CcViewAccessInfo getViewAccessInfo() throws WvcmException;
1200
1201 /**
1202 * The storage location for a dynamic view, not supported for other
1203 * view types.
1204 */
1205 public static final PropertyName<CcStorageLocation> VIEW_STORAGE_LOCATION =
1206 new PropertyName<CcStorageLocation>(PROPERTY_NAMESPACE, "view-stgloc");
1207
1208 /**
1209 * Set the value of this view's {@link #VIEW_STORAGE_LOCATION} property.
1210 * This property may only be set at view creation time.
1211 * It is a write-only property.
1212 * @param viewStorageLocation the storage location for the new view
1213 */
1214 void setViewStorageLocation(CcStorageLocation viewStorageLocation);
1215
1216 /**
1217 * The storage path for a dynamic view, not supported for other
1218 * view types.
1219 */
1220 public static final PropertyName<String> VIEW_STORAGE_PATH =
1221 new PropertyName<String>(PROPERTY_NAMESPACE, "view-storage-path");
1222
1223 /**
1224 * Returns the value of this proxy's {@link #VIEW_STORAGE_PATH} property.
1225 *
1226 * @return path to the view storage
1227 * @throws WvcmException
1228 * if this proxy doesn't define a value for this property.
1229 */
1230 public String getViewStoragePath() throws WvcmException;
1231
1232 /**
1233 * Set the value of this view's {@link #VIEW_STORAGE_PATH} property.
1234 * This property may only be set at view creation time.
1235 * @param viewStoragePath the storage path for the new view
1236 */
1237 void setViewStoragePath(String viewStoragePath);
1238
1239 /**
1240 * <p>
1241 * The permissions applied to this resource.
1242 * </p>
1243 */
1244 public static final PropertyName<CcPermissions> PERMISSIONS =
1245 new PropertyName<CcPermissions>(PROPERTY_NAMESPACE, "cc-permissions");
1246
1247 /**
1248 * Returns the value of this proxy's {@link #PERMISSIONS} property.
1249 *
1250 * @return A permissions object from which specific permissions
1251 * information can be extracted.
1252 * @throws WvcmException
1253 * if this proxy doesn't define a value for this property.
1254 */
1255 public CcPermissions getPermissions() throws WvcmException;
1256
1257 /**
1258 * Does this view have non-shareable derived objects?
1259 * This property is supported for dynamic views only.
1260 */
1261 public static final PropertyName<Boolean> IS_EXPRESS =
1262 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-express");
1263
1264 /**
1265 * Returns the value of this proxy's {@link #IS_EXPRESS} property.
1266 *
1267 * @return true if this view has non-shareable DOs; false otherwise.
1268 * @throws WvcmException
1269 * if this proxy doesn't define a value for this property.
1270 */
1271 public Boolean getIsExpress() throws WvcmException;
1272
1273 /**
1274 * Are this view's permissions valid?
1275 */
1276 public static final PropertyName<Boolean> ARE_PERMISSIONS_VALID =
1277 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "are-permissions-valid");
1278
1279 /**
1280 * Returns the value of this proxy's {@link #ARE_PERMISSIONS_VALID} property.
1281 *
1282 * @return true if this view's permissions are valid; false otherwise.
1283 * @throws WvcmException
1284 * if this proxy doesn't define a value for this property.
1285 */
1286 public Boolean getArePermissionsValid() throws WvcmException;
1287
1288 /**
1289 * Is this view read-only?
1290 */
1291 public static final PropertyName<Boolean> IS_READ_ONLY =
1292 new PropertyName<Boolean>(PROPERTY_NAMESPACE, "is-read-only");
1293
1294 /**
1295 * Returns the value of this proxy's {@link #IS_READ_ONLY} property.
1296 *
1297 * @return true if this view is read-only; false otherwise.
1298 * @throws WvcmException
1299 * if this proxy doesn't define a value for this property.
1300 */
1301 public Boolean getIsReadOnly() throws WvcmException;
1302
1303 /**
1304 * Set the {@link #STREAM} property.
1305 *
1306 * @param stream the {@link Stream} object that
1307 * identifies the {@link #STREAM} for this Workspace.
1308 * @see #getStream
1309 */
1310 public void setStream(Stream stream);
1311
1312 }