001    /*
002    * file CcMergeHandlingCallback.java
003    *
004    * Licensed Materials - Property of IBM
005    * Restricted Materials of IBM
006    * 
007    * com.ibm.rational.wvcm.stp.cc.CcMergeHandlingCallback
008    *
009    * (C) Copyright IBM Corporation 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 javax.wvcm.WvcmException;
017    
018    import com.ibm.rational.wvcm.stpex.StpExEnumeration;
019    import com.ibm.rational.wvcm.stpex.StpExEnumerationBase;
020    
021    /**
022     * Interface to let the GUI deal with merge operations on checkin.
023     */
024    public interface CcMergeHandlingCallback {
025        
026        /** 
027         * Enumeration to specify how to deal with the checkin
028         * after a merge. 
029         */
030        enum CheckinMergeHandling {
031            
032            /** Don't do anything else */
033            LEAVE_CHECKED_OUT("leave-checked-out"),
034            
035            /** Retry the checkin */
036            RETRY_CHECKIN("retry-checkin"),
037            
038            /** Fail remaining checkins */
039            CANCEL_REMAINING_CHECKINS("cancel-remaining-checkins");
040            
041            private String m_name;
042    
043            private CheckinMergeHandling(String name) { m_name = name; }
044    
045            /* (non-Javadoc)
046             * @see java.lang.Object#toString()
047             */
048            public String toString() { return m_name; }
049        }
050        
051    
052        /**
053         * This method is called when a manual merge from LATEST is needed.
054         * @param file the file we're merging
055         * @param fromVersion the base version
056         * @param toVersion the version we're merging with
057         * @return CheckinMergeHandling enumeration specifying how the checkin 
058         *         is to be handled after the merge
059         */
060        CheckinMergeHandling performManualMerge(
061                CcFile file,
062                CcVersion fromVersion,
063                CcVersion toVersion) throws WvcmException;
064    
065    }