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     * (C) Copyright IBM Corporation 2004, 2009.  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    /**
022     * <p>
023     * A proxy for a ClearCase branch type.
024     * </p>
025     * <p>
026     * Branches are used in base ClearCase to enable parallel development. 
027     * A branch is an object that specifies a linear sequence of versions of an element. 
028     * Every element has one <b>main</b> branch, which represents the principal line of development, 
029     * and may have multiple subbranches, each of which represents a separate line of development. 
030     * For example, a project team may use the <b>main</b> branch for new development work while using a 
031     * subbranch simultaneously for fixing a bug.
032     * </p>
033     * <p>
034     * For more branch information, see the ClearCase "Guide to Managing Software Projects"
035     * manual, and the cleartool man pages "mkbrtype" and "mkbranch".
036     * </p>
037     */
038    public interface CcBranchType extends CcTypeBase
039    {
040        /**
041         * <p>Create a new branch type at the location identified by this proxy. The
042         * location should be an object name selector specifying the branch type's name
043         * and the repository (VOB) in which to create it.
044         * </p>
045         * <p>Set the {@link CcTypeBase#SCOPE} property to specify the new type's global scope.
046         * If no scope is set, a scope of NONE (ordinary scope) is used.
047         * </p>
048         * <p>Set the {@link CcTypeBase#INSTANCE_CONSTRAINT} property to determine where the new type
049         * may be applied.  Valid values for branch types are BRANCH and ELEMENT.  If no constraint
050         * is set the default is ELEMENT.
051         * </p>
052         * @param flags Resource-specific creation flags.
053         */
054        public CcBranchType doCreateCcBranchType(TypeCreateFlag[] flags, Feedback feedback) throws WvcmException;
055    }