001    /*
002    * file CcLockInfo.java
003    *
004    * Licensed Materials - Property of IBM
005    * Restricted Materials of IBM
006    * 
007    * com.ibm.rational.wvcm.stp.cc.CcLockInfo
008    *
009    * (C) Copyright IBM Corporation 2007, 2008.  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 java.util.Date;
017    import java.util.List;
018    
019    
020    /**
021     * Locks can be set on most Clearcase objects.  CcLockInfo
022     * is an object that holds the properties that a lock
023     * can have.  Note that two of the properties: LockedByUser
024     * and LockedOnDate, are set by Clearcase, so only getters
025     * are available in this interface.
026     */
027    public interface CcLockInfo {
028        
029        /** 
030         * Get the name of the user who set the lock.
031         * @return String containing the name of the locking user.
032         */
033        public String getLockedByUser();
034        
035        /** 
036         * Get list of excluded users. 
037         * @return List of user names to whom the lock does not apply. 
038         */
039        public List<String> getExcludedUserList();
040        
041        /** 
042         * Set the list of excluded users.
043         * If providing an excluded user list, obsolete may not be set <code>true</code>. 
044         * @param nusers List of user names to whom the lock does not apply
045         */
046        public void setExcludedUserList(List<String> nusers);
047        
048        /** 
049         * Get the description of the lock.  This is not symmetric
050         * with the input to setLockDescription, because Clearcase
051         * adds its own information to the description.
052         * @return String containing the lock description. 
053         */
054        public String getLockDescription();
055         
056        /** 
057         * Set the description of the lock.
058         * @param description Comment to be applied/displayed with the lock. 
059         */
060        public void setLockDescription(String description);
061        
062        /** 
063         * Get the date object was locked.
064         * @return Date the lock was applied. 
065         */
066        public Date getLockedOnDate();
067        
068        /**
069         * Check if this is an obsolete lock (should be hidden from most operations).
070         * @return <code>true</code> if the lock is obsolete, <code>false</code> otherwise
071         */
072        public boolean getObsolete();
073        
074        /**
075         * Set the obsolete state of the lock.  If not specified, default is <code>false</code>.
076         * If setting obsolete to <code>true</code>, an excluded user list may not be provided. 
077         * @param obsolete <code>true</code> if the lock is obsolete, <code>false</code> otherwise
078         */
079        public void setObsolete(boolean obsolete);
080        
081    }