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