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    }