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
014package com.ibm.rational.wvcm.stp.cc;
015
016import javax.wvcm.WvcmException;
017
018/**
019 * Interface to let the GUI deal with merge operations on checkin.
020 */
021public 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}