001    /*
002     * file CcBranchType.java
003     *
004     *
005     * Licensed Materials - Property of IBM 
006     * Restricted Materials of IBM  
007     * 
008     * com.ibm.rational.wvcm.stp.cc.CcBranchType
009     * 
010     * © Copyright IBM Corporation 2004, 2008.  All Rights Reserved. 
011     * Note to U.S. Government Users Restricted Rights:  Use, duplication or  
012     * disclosure restricted by GSA ADP  Schedule Contract with IBM Corp. 
013     */
014    
015    
016    package com.ibm.rational.wvcm.stp.cc;
017    
018    import javax.wvcm.Feedback;
019    import javax.wvcm.WvcmException;
020    
021    import com.ibm.rational.wvcm.stp.cc.CcTypeBase.TypeCreateFlag;
022    
023    /**
024     * <p>
025     * A proxy for a ClearCase branch type.
026     * </p>
027     * <p>
028     * Branches are used in base ClearCase to enable parallel development. 
029     * A branch is an object that specifies a linear sequence of versions of an element. 
030     * Every element has one <b>main</b> branch, which represents the principal line of development, 
031     * and may have multiple subbranches, each of which represents a separate line of development. 
032     * For example, a project team may use the <b>main</b> branch for new development work while using a 
033     * subbranch simultaneously for fixing a bug.
034     * </p>
035     * <p>
036     * For more branch information, see the ClearCase "Guide to Managing Software Projects"
037     * manual, and the cleartool man pages "mkbrtype" and "mkbranch".
038     * </p>
039     */
040    public interface CcBranchType extends CcTypeBase
041    {
042        /**
043         * <p>Create a new branch type at the location identified by this proxy. The
044         * location should be an object name selector specifying the branch type's name
045         * and the repository (VOB) in which to create it.
046         * </p>
047         * <p>Set the {@link CcTypeBase#SCOPE} property to specify the new type's global scope.
048         * If no scope is set, a scope of NONE (ordinary scope) is used.
049         * </p>
050         * <p>Set the {@link CcTypeBase#INSTANCE_CONSTRAINT} property to determine where the new type
051         * may be applied.  Valid values for branch types are BRANCH and ELEMENT.  If no constraint
052         * is set the default is ELEMENT.
053         * </p>
054         * @param flags Resource-specific creation flags.
055         */
056        public CcBranchType doCreateCcBranchType(TypeCreateFlag[] flags, Feedback feedback) throws WvcmException;
057    }