001    /*
002     * file CcBranch.java
003     *
004     *
005     * Licensed Materials - Property of IBM 
006     * Restricted Materials of IBM  
007     * 
008     * com.ibm.rational.wvcm.stp.cc.CcBranch
009     * 
010     * (C) Copyright IBM Corporation 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 static com.ibm.rational.wvcm.stpex.StpExBase.PROPERTY_NAMESPACE;
019    
020    import javax.wvcm.Feedback;
021    import javax.wvcm.WvcmException;
022    import javax.wvcm.PropertyNameList.PropertyName;
023    
024    import com.ibm.rational.wvcm.stp.cc.CcTypeBase.TypeCreateFlag;
025    
026    /**
027     * <p>
028     * A proxy for a ClearCase branch.
029     * </p>
030     * <p>
031     * Branches are used in base ClearCase to enable parallel development. 
032     * A branch is an object that specifies a linear sequence of versions of an element. 
033     * Every element has one <b>main</b> branch, which represents the principal line of development, 
034     * and may have multiple subbranches, each of which represents a separate line of development. 
035     * For example, a project team may use the <b>main</b> branch for new development work while using a 
036     * subbranch simultaneously for fixing a bug.
037     * </p>
038     * <p>
039     * For more branch information, see the ClearCase "Guide to Managing Software Projects"
040     * manual, and the cleartool man pages "mkbrtype" and "mkbranch".
041     * </p>
042     */
043    public interface CcBranch extends CcVobResource
044    {
045        /**
046         * The branch type of which this branch is an instance.
047         * */
048        PropertyName<CcBranchType> TYPE =
049            new PropertyName<CcBranchType>(PROPERTY_NAMESPACE,
050                                           "branch-type");
051    
052        /**
053         * Get the value of this branch instance's {@link #TYPE} property.
054         * 
055         * @return branch instance's branch type
056         * @throws WvcmException
057         *             if this proxy doesn't define a value for this property.
058         */
059        CcBranchType getType() throws WvcmException;
060    }